Hibernate初探之单表映射

ORM(Object/Relationship  Mapping):对象 / 关系映射

利用面向对象映射编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编写很多和底层数据库相关的SQL语句

Hibernate是Java领域的一款开源的ORM框架技术

Hibernate对JDBC进行了非常轻量级的对象封装

  持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

Hibernate Tools是由JBoss推出的一个Eclipse综合开发工具插件,该插件可以简化ORM框架Hibernate

编写第一个Hibernate例子

创建Hibernate的配置文件(hibernate.cfg.xml)

创建持久化类

创建对象-关系映射文件

通过Hibernate API编写访问数据库的代码


导入Hibernate必须的jar包(hibernate-release-4.2.4.Final\lib\required)

导入Mysql的JDBC驱动

导入Junit4的jar包

第一步:创建Hibernate的配置文件(hibernate.cfg.xml)

root(表示要连接的数据库的用户名)

cao123(密码)

com.mysql.jdbc.Driver(指定数据库的jdbc驱动)

jdbc:mysql://localhost/hibernate?useUnicode=true&characterEncoding=UTF-8(访问数据库的地址)(数据库是本地)(问号后面是避免中文乱码问题)

org.hibernate.dialect.MySQLDialect(指定方言)

一般还要加上:

true
 true
 create

 hibernate.show显示SQL语句
hibernate.format——sql排版
hbmddl.auto表结构生成策略   create先删除表再建   update只更新
hibernate.dialect数据库方言

第二步:创建持久化类

javabeans设计原则
  1.公有的类
  2.提供公有的不带参数的默认的构造方法
 3.属性私有
  4.属性setter/getter封装

第三步:创建对象-关系映射文件


session可以理解为操作数据库的对象

session与connection,是多对一关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用

把对象保存在关系型数据库中需要调用session的各种方法,如:save(),update(),delete(),等

hibernate的执行流程:

@Before

public void init() {

       Configuration config = new Configuration().configure();

       sessionFactory = config.buildSessionFactory();

       session = sessionFactory.openSession();

        transaction = session.beginTransaction();

}

@After

public void destroy() {

         transaction.commit();//提交事务

         session.close();//关闭会话

         sessionFactory.close();//关闭会话工厂

}

@Test

         public void testSaveStudents() {//生成学生对象

        Students s = new Students(3, "张三丰", "男", new Date(), "武当山");

         session.save(s);//保存对象进入数据库

}

配置对象:Configuration    读取配置文档(hibernate.cfg.xml)

Configuration创建sessionFactory  加载关系映射文件

sessionFactory创建session对象:类似于jdbc中的connection

session开启事务:执行数据库操作

Hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中

你可能感兴趣的:(Hibernate初探之单表映射)