美文网首页
hibernate4--01初识

hibernate4--01初识

作者: marjorie叶子 | 来源:发表于2018-12-17 11:02 被阅读0次

    1. 持久化

    • 侠义概念:数据存储在物理存储介质不会丢失。
    • 广义概念:也就是对数据的crud操作都叫持久化。
    • 加载:hibernate里的,数据从数据库中加载到session。

    2. ORM(object relation mapping)

    image

    解决阻抗不匹配(对象和关系数据库不匹配)问题。
    没有侵入性:在代码中不用去继承hibernate类或实现hibernate提供接口
    Hibernate:是一个orm的轻量级框架;解决持久化操作,使得程序员可以从编写繁复的jdbc工作中解放出来。专注于业务。提高程序员开发效率。移植性。

    image

    3. 编写配置文件hibernate.cfg.xml文件,放入到项目中src下:

    <hibernate-configuration>
        <session-factory>
            <!-- 配置数据库连接信息 -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/hibernate4</property>
            <property name="connection.username">root</property>
            <property name="connection.password">root</property>
            <!-- 设置方言,hibernate会根据数据库的类型相应生成SQL语句  -->
            <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        </session-factory>
    </hibernate-configuration>
    

    4. 创建数据库表,以及对应的pojo对象

    public class User {
        private int id;
        private String name;
        private String pwd;
        }
    

    5. 编辑*.hbm.xml文件,文件名一般为pojo类的名称User.hbm.xml,放在pojo类所在的包下

    <hibernate-mapping>
        <class name="cn.siggy.pojo.User" table="user">
            <id name="id">
                <!-- 主键生成策略 -->
                <generator class="native"></generator>
            </id>
            <!-- 实体类的属性 -->
            <property name="name"/> 
            <property name="pwd"/>  
        </class>
    </hibernate-mapping>
    

    6. 测试:将*.hbm.xml配置文件加入到hibernate.cfg.xml中

    public static void main(String[] args) {
            //1.新建Configuration对象
            Configuration cfg = new Configuration().configure();
            //2.通过Configuration创建SessionFactory对象
                //在hibernate3.x中是这种写法
                //SessionFactory sf = cfg.buildSessionFactory();
            //hibernate4.3之前~hibernate4.0
    //      ServiceRegistry sr = new ServiceRegistryBuilder()
    //                          .applySettings(cfg.getProperties())
    //                          .buildServiceRegistry();
            //hibernate4.3
            ServiceRegistry registry = new StandardServiceRegistryBuilder()
                                .applySettings(cfg.getProperties())
                                .build();
            SessionFactory sf = cfg.buildSessionFactory(registry);
                    //或者
                    //SessionFactory sf = cfg.buildSessionFactory();
            //3.通过SessionFactory得到Session
            Session session = sf.openSession();
            //4.通过session对象 得到Transaction对象
            //开启事务
            Transaction tx = session.beginTransaction();
            //5.保存数据
            User user = new User();
            user.setName("张三疯");
            user.setPwd("1111");
            session.save(user);
            //6.提交事务
            tx.commit();
            //7.关闭session
            session.close();
        }
    

    相关文章

      网友评论

          本文标题:hibernate4--01初识

          本文链接:https://www.haomeiwen.com/subject/zlsqkqtx.html