Hibernate简介
Posted RocketMan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate简介相关的知识,希望对你有一定的参考价值。
1、ORM(Object/Relationship Mapping)对象/关系 映射
2、那么些sql有啥不好的呢?
1、不同的数据库使用的sql语句不同,比如plsql(oracle)、tlsql(微软)
2、相同的功能在不同的数据库中有不同的实现方式,比如分页功能
3、程序过分的依赖sql语句会使程序的可移植行不好
3、什么是Hibernate?
Hibernate是Java领域的一款ORM框架
Hibernate对JDBC进行了轻量的对象封装
Hibernate处于业务逻辑层和数据存储层之间,称为持久化层
4、其他的一些ORM框架?
Mybatis、Toplink、EJB
5、使用Hibernate所用的工具?
eclipse+Hibernate Tools for Eclipse Plugins(JBoss Tools中的一个)
或者Myeclipse
6、使用Hibernate的步骤?
创建Hibernate的配置文件
创建持久化类
创建对象-关系映射
通过Hibernate API编写访问数据库的代码
7、使用Hibernate需要的jar包?
hibernate的jar包:hibernate-relase-.../lib/required
mysql数据库jdbc驱动的jar包:mysql-connector-java.jar
JUnit的jar包:Junit-....jar
在eclipse中添加这3个User Librarles用户类库,导入到项目中(Myeclipse可不用)
8、Hibernate配置文件
<?xml version=‘1.0‘ encoding=‘gb2312‘?> 标准的XML文件的起始行,version=‘1.0‘表明XML的版本,encoding=‘gb2312‘表明XML文件的编码方式
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 表明解析本XML文件的DTD文档位置
<hibernate-configuration> 声明Hibernate配置文件的开始
<session-factory> 表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,保存HIbernate的配置信息,以及对Session的操作
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver </property> 配置数据库的驱动程序
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</hibernate>设置数据库的连接url
(?userUnicode=ture&characterEncodieng=utf-8)
<property name="hibernate.connection.username">root </property>连接数据库是用户名
<property name="hibernate.connection.password">123456 </property>连接数据库是密码
<property name="hibernate.connection.pool.size">20 </property> 数据库连接池的大小
<property name="hibernate.show_sql">true </property> 程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句
<property name="hibernate.format_sql">true(update)</property> sql语句的格式
<property name="hibernate.hbm2ddl.auto">create </property> java代码对数据库表修改
<property name="jdbc.fetch_size">50 </property> Hibernate每次从数据库中取出并放到JDBC的Statement中的记录条数
<property name="jdbc.batch_size">23 </property> Hibernate批量插入,删除和更新时每次操作的记录数
<property name="jdbc.use_scrollable_resultset">false </property> t是否允许Hibernate用JDBC的可滚动的结果集
<property name="Connection.useUnicode">true </property> 连接数据库时是否使用Unicode编码
<property name="connection.characterEncoding">gbk </property> 连接数据库时数据的传输字符集编码方式
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property> Hibernate使用的数据库方言
<mapping resource="org/mxg/UserInfo.hbm.xml"> 指定映射文件
</session-factory>
</hibernate-configuration>
9、持久化类的写法
属性私有
属性提供setter和getter放法
提供不带参数的构造方法
即封装
10、对象关系映射文件
对象属性名映射数据表的字段
11、Junit测试
@Before 初始方法
Configuration cfg = new Configuration().configure(); 创建配置对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry();创建服务注册对象
SessionFactory sf=cfg.buildSessionFactory(serviceRegistry); 创建Session工厂
Session sess = sf.openSession(); 创建Session对象,打开对话
Transaction tx = sess.beginTransaction(); 开启事务
@Test 测试方法
sess进行数据操作
@After 销毁方法
tx.commit() 事务提交
sess.commit() session会话关闭
sf.commit() session工厂关闭
以上是关于Hibernate简介的主要内容,如果未能解决你的问题,请参考以下文章