美文网首页
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初识

    1. 持久化 侠义概念:数据存储在物理存储介质不会丢失。 广义概念:也就是对数据的crud操作都叫持久化。 加载:...

  • 初识flutter

    初识flutter 初识flutter

  • JS原型、原型链深入理解

    目录 原型介绍 初识原型 创建规则 初识Object 初识Function "prototype"和"_proto...

  • 初识四段戏

    一月初识最是干净 二月初识上了颜色 三月初识开始斑驳 四月初识便是褪去

  • HTML之初识HTML

    一、初识HTML 目录:初识HTML、网页基本信息、网页基本标签 1.初识HTML 1)什么是HTML?Hyper...

  • vue核心

    初识Vue 搭建基础框架 初识Vue