Hibernate
是什么?
Hibernate是一种ORM(对象关系映射)框架,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象。
Hibernate是关于Java对象和关系数据库之间的联系
为什么?
如果不使用Hibernate,DAO层中的代码编写规律如下:
- 当插入数据的时候,就将JavaBean对象拆分,拼装成SQL语句
- 当查询数据的时候,用SQL把数据库表中的列组合,拼装成JavaBean对象
也就是说:javaBean对象和数据表中的列存在映射关系!
Hibernate就实现了自动生成SQL语句的功能,使用Hibernate框架就不用写很多繁琐的SQL语句,从而简化我们的开发
怎么用?
-
导入jar包
mysql-connector-java-3.0.14-production-bin.jar
jta.jar
hibernate2.jar
cglib-full-2.0.2.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.4.jar
ehcache-0.9.jar
log4j-1.2.8.jar
odmg-3.0.jar -
配置相关的XML文件
- 编写一个User对象->User.java
- 编写对象映射:User.hbm.xml。一般和JavaBean对象放在同一目录下
- 编写主配置文件:hibernate.cfg.xml。主要包括: 数据库的信息、其他参数、加载映射文件
- 数据库信息:常用的配置信息都可以在hibernate.properties文件中找到
- 其他参数:常用的几个:
<!-- 2. 其他相关配置 --> <!-- 2.1 显示hibernate在运行时候执行的sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 2.2 格式化sql --> <property name="hibernate.format_sql">true</property> <!-- 2.3 自动建表 --> <property name="hibernate.hbm2ddl.auto">update</property>
- 映射文件:在Configuration对象中提供了addClass()的方法
- 编写执行程序,执行完程序后,Hibernate就为我们创建对应的表,并把数据存进了数据库
- 熟悉API
Mybatis
是什么
MyBatis,是一个基于Java的持久层框架,也是ORM的一种实现框架,是对JDBC的一种封装
为什么
Mybatis、jdbc和Hibernate都是持久层的技术。Mybatis就是jdbc和Hibernate之间的一个平衡点。
jdbc的SQL语句都要程序员写,太麻烦,而Hibernate的SQL都不用程序员写,很简便但是开发复杂程序时灵活度差。所以现在Mybatis很流行
怎么用
先准备一张表、一个实体类
- 导入jar包
mybatis-3.1.1.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
cglib-2.2.2.jar
asm-3.3.1.jar
mysql-connector-java-5.1.7-bin.jar //导入mysql开发包 - 创建mybatis配置文件:配置数据库的信息
- 编写工具类测试是否获取到连接:使用Mybatis的API来创建一个工具类,通过mybatis配置文件与数据库的信息,得到Connection对象
- 创建实体与映射关系文件
- 编写DAO
- 编写SQL指令:Mybatis实体与表的映射文件中提供了insert标签【SQL代码片段】
Mybatis工作流程
通过Reader对象读取Mybatis配置文件
通过SqlSessionFactoryBuilder对象创建SqlSessionFactory对象
获取当前线程的SQLSession
事务默认开启
通过SQLSession读取映射文件中的操作编号,从而读取SQL语句
提交事务
关闭资源