一,第一个例子
1,导入Hibernate必须的开发Jar包和数据库驱动Jar包
Ø antlr-2.7.7.jar - Hql解析工具
Ø dom4j-1.6.1.jar - XML配置文件读取工具
Ø hibernate-commons-annotations-4.0.2.Final.jar - Hibernate 注解包
Ø hibernate-core-4.2.4.Final.jar - Hibernate核心包
Ø hibernate-jpa-2.0-api-1.0.1.Final.jar - 完成javaBean影射表 的依赖包
Ø javassist-3.15.0-GA.ja -代码生成包,运行时扩展 Java类和实现
Ø jboss-logging-3.1.0.GA.jar -日志工具
Ø jboss-transaction-api_1.1_spec-1.0.1.Final.jar -事务工具
Ø mysql-connector-java-5.1.7-bin.jar -mysql驱动
2,建立和hibernate.cfg.xml配置文件
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 用来指定数据库连接驱动的类的路径和名称 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 用来指定连接数据库的url地址 --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property> <!-- 连接数据库的用户名 --> <property name="hibernate.connection.username">root</property> <!-- 连接数据库的密码 --> <property name="hibernate.connection.password">root</property> <!-- 连接数据库的时候使用SQL语句的方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- HIbernate框架在工作的时候是否会自动的按照映射文件来建立数据库的表单或者是修改表单 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 为了方便我们观察HIBERNATE工作,那么我们还需要手动的增加以下两个配置 --> <!-- 自动的输出SQL语句 --> <property name="show_sql">true</property> <!-- 格式化的输出sql --> <property name="format_sql">true</property> <!-- 向hibernate中注册映射文件 --> <mapping resource="com/hibernate/domain/User.hbm.xml"/> </session-factory> </hibernate-configuration>
3,创建数据库表
CREATE TABLE user_infor ( id int(11) unsigned NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL, code varchar(20) NOT NULL, age int(3) DEFAULT NULL, PRIMARY KEY (id) )
4,建立数据库表的实体对象
public class UserInfor { private Integer id; private String name; private String code; private Integer age; public UserInfor() { } public UserInfor(String name, String code,Integer age) { super(); this.name = name; this.code = code; this.age=age; } }
5,建立实体类和数据库表之间的映射文件
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.hibernate.demo.pojo.UserInfor" table="user_infor" catalog="hibernate"> <id name="id" type="integer" column="id"> <generator class="native" /> </id> <property name="name" type="string" column="name" /> <property name="code" type="string" column="code" /> <property name="age" type="integer" column="age" /> </class> </hibernate-mapping>6,在hibernate.cfg.xml文件中将第五步的映射文件注册进去
<hibernate-configuration> <session-factory> 。。。。 <!-- 向hibernate中注册映射文件 --> <mapping resource="com/hibernate/demo/pojo/UserInfor.hbm.xml"/> </session-factory> </hibernate-configuration>
7,建立测试类
public class TestUser { @Test public void testAdd(){ //1.加载配置hibernate.cfg.xml Configuration cfg = (new Configuration()).configure(); //2.创建工厂类 SessionFactory SessionFactory factory = cfg.buildSessionFactory(); //3.创建一个用于操作的session对象 Session session = factory.openSession(); //4.创建一个实体类 UserInfor user = new UserInfor("zhangsan","0011",12); //5.开始事务 Transaction tx = session.beginTransaction(); //6.保存数据 session.save(user); //7.提交事务. tx.commit(); //8.关闭连接 session.close(); } }