1.hibernate框架使用的准备工作
1.1导入jar包
1.2向eclipse导入dtd文件
uri在dtd文件中有
2.hibernate框架的配置
2.1首先先创建一个实体类
package cn.domain.demo; public class Users { private Integer id; private String username; private Integer age; private String gender; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } //用于测试 @Override public String toString() { return "Users [id=" + id + ", username=" + username + ", age=" + age + ", gender=" + gender + "]"; } }
2.2配置*.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"> <!-- package如果配置在下面要用全包名的可以使用类名 --> <hibernate-mapping package="cn.domain.demo"> <!-- bean类与数据表关联 --> <class name="cn.domain.demo.Users" table="users"> <!-- 主键映射 --> <id name="id" column="id"> <!-- 主键生成策略 --> <generator class="native"/> </id> <!-- 其他键的映射 --> <property name="username" column="username"/> <property name="age" column="age"/> <property name="gender" column="gender"/> </class> </hibernate-mapping>
2.2配置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.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 配置数据库驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 配置数据库的URL --> <property name="hibernate.connection.url">jdbc:mysql:///test</property> <!-- 配置数据库的用户名 --> <property name="hibernate.connection.username">root</property> <!-- 配置数据库的密码 --> <property name="hibernate.connection.password">root</property> <!-- 可选配置 --> <!-- 配置是否显示SQL语句 --> <property name="hibernate.show_sql">true</property> <!-- 配置是否格式化SQL语句 --> <property name="hibernate.format_sql">true</property> <!-- 配置session绑定的对象 jta--> <property name="hibernate.current_session_context_class">thread</property> <!-- 配置对数据库自动建表 ## auto schema export #hibernate.hbm2ddl.auto create-drop ---自动建表当程序结束时删除表,不留痕迹 #hibernate.hbm2ddl.auto create ---自动建表每次创建启动都会建表,覆盖数据 #hibernate.hbm2ddl.auto update ---自动建表没有表时新建,不会对原来的表结构进行修改(推荐) #hibernate.hbm2ddl.auto validate ---不自动建表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 关联hbm文件 --> <mapping resource="cn/domain/demo/Users.hbm.xml"/> </session-factory> </hibernate-configuration>
3.测试配置的hibernate是否正确
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import cn.domain.demo.Users; public class Test { @org.junit.Test public void hibernateTest() { //创建configuration对象并加载hibernate.cfg.xml文件默认加载src下的文件 Configuration config = new Configuration().configure(); //获取session工厂,该对象属于重量级 SessionFactory sessionFactory = config.buildSessionFactory(); //获取session对象 Session session = sessionFactory.getCurrentSession(); //开启事务 Transaction tx = session.beginTransaction(); Users user = new Users(); user.setUsername("zjj"); user.setAge(18); user.setGender("男"); //更新数据,将瞬时态转换为持久态 session.save(user); //提交事务 tx.commit(); session.close(); sessionFactory.close(); } }