Hibernate 环境搭建
Hibernate 框架的环境搭建
Hibernate是 现在流行的SSH框架之一,ORM框架(Object Relation Mapping) 对象关系映射
主要作用是解决了JDBC与数据库的模型不匹配将实体类与数据库进行关系映射 缺点是反应速度没有JDBC快 (博主是初学者写此博客是为了加深理解希望大佬们多多担待)
配置框架第一步
下载Hibernate的Jar包集合
Hibernate官网:www.hibernate.org 可以下载到集合包或者到别的资源网站也可以下载
在hibernate3中,需要将目录/hibernate.jar 和lib下面所需要的包加入classpath中主要包括: antlr.jar
Cglib.jar
asm.jar commons-collection.jar
commons-logging.jar
Jta.jar
dom4j.jar
在hibernate4中只需要将lib/required 目录的所以的包导入项目即可
配置框架第二步
配置文件hibernate.cfg.xml
在xml的配置中,主要可以配置:
数据库的URL,用户名,密码, JDBC驱动,方言等等。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 数据库的运行路径 --> <property name="connection.url">jdbc:mysql:///play</property> <!-- 数据库的账号 --> <property name="connection.username">root</property> <!-- 数据库的密码 --> <property name="connection.password">123456</property> <!-- 数据库的驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 数据库方言 识别哪种数据库 例如Mysql --> <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- 如果没有数据表 自动创建数据表 --> <property name="hibernate.hbm2ddl.auto">create</property> <!-- 关联 实体类 的hbm.xml --> <mapping resource="BookBean/Book.hbm.xml" /> </session-factory> </hibernate-configuration>
映射文件(hbm.xml,对象模型和关系型模型的映射)
在集合包中的project 的etc目录下面可以找到配置文件的例子
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="BookBean"> <class name="Book"> <id name="bookid"> <generator class="native"/> </id> <property name="bookName" /> <property name="money" /> </class> </hibernate-mapping>
将映射文件配置进hibernate.cfg.xml中
编写一个Add方法
public void add(){ Session s = null; Transaction tr = null; try{ s = HibernateUtil.getSession(); tr = s.beginTransaction(); Book b = new Book(); b.setbookName("JAva");
b.setMoney(10); s.save(b); tr.commit(); }finally{ if(s != null){ s.close(); } } }