第一步:引入所需的jar包
第二步:创建实体类,配置实体类与数据表的映射关系
创建实体类
User.java
package cn.hao.entity; public class User { /* hibernate要求实体类有一个唯一标识的属性 */ private int uid; private String username; private String password; private String address; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
配置实体类与数据表映射关系
方式1:使用xml配置文件完成
User.hbm.xml,该文件的位置和名称没有固定要求。
<?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> <!-- 1、配置类与表的映射 class标签 name属性:实体类全路径 table属性:数据表名称 --> <class name="cn.itcast.entity.User" table="t_user"> <!-- 2、配置实体类id和表id对应 hibernate要求实体类有一个属性唯一值 hibernate要求表有字段作为唯一值 --> <!-- id标签 name属性:实体类里面id属性名称 column属性:生成的表字段名称 --> <id name="uid" column="uid"> <!-- 设置数据表id增长策略 native:生成表id值就是主键自动增长 --> <generator class="native"></generator> </id> <!-- 3、配置其他属性和字段对应 name属性:实体类属性名称 column属性:生成表字段名称 --> <property name="username" column="username"></property> <property name="password" column="password"></property> <property name="address" column="address"></property> </class> </hibernate-mapping>
第三步:创建Hibernate核心配置文件
核心配置文件的位置和名称必须是:src下hibernate.cfg.xml
<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">mysqladmin</property> <!-- 第二部分:配置hibernate信息(非必须的) --> <!-- 在控制台输出底层sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 在控制台输出sql语句格式 --> <property name="hibernate.format_sql">true</property> <!-- hibernate自动创建表 update:如果表已经存在,则更新;如果表不存在,则创建出表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 配置数据库方言 在mysql里面实现分页 关键字limit,该关键字只能在mysql中使用 而在Oracle数据库使用rownum关键实现分页操作 让hibernate框架识别不同数据库的语句 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 第三那部分:把映射文件放到核心配置文件中(必须的) --> <mapping resource="cn/itcast/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration>
以上就完成的Hibernate框架基本使用环境的搭建。
测试代码
package cn.hao.hibernatetest; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import cn.hao.entity.User; public class HibernateDemo { @Test public void testAdd() { // 第一步 加载hibernate核心配置文件 // 到src下面找到名称为hibernate.cfg.xml // 在hibernate里面封装对象 Configuration cfg = new Configuration(); cfg.configure(); // 第二步 创建SessionFactory对象 // 读取hibernate核心配置文件内容,创建SessionFactory // 在该过程中,根据映射关系,创建数据表 SessionFactory sessionFactory = cfg.buildSessionFactory(); // 第三步 使用SessionFactory创建Session // 类似于连接 Session session = sessionFactory.openSession(); // 第四步 开启事务 Transaction tx = session.beginTransaction(); // 第五步 写具体crud操作 User user = new User(); user.setUsername("小明"); user.setPassword("131415"); user.setAddress("上海"); // 调用session的方法实现添加 session.save(user); // 第六步 提交事务 tx.commit(); // 第七步 关闭资源 session.close(); sessionFactory.close(); } }