本文将详细介绍Java中的Hibernate框架,包括框架的配置、映射以及持久化操作,旨在为编程小白提供易于学习的教学文章。
Hibernate是一个Java持久化框架,它解决了Java中对象关系映射(ORM)的问题。ORM是一种编程技术,将面向对象的类与关系型数据库中的表建立映射关系。Hibernate可以将Java对象映射到数据库表中,提供了面向对象的持久化方式,以及自动化的数据库查询和存储。
在使用Hibernate框架之前,需要进行配置。配置文件名称为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://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
</session-factory>
</hibernate-configuration>
在Hibernate框架中,使用映射文件将Java类映射到数据库表中。映射文件名称为*.hbm.xml,其中*表示Java类的名称。下面是一个简单的映射文件示例:
<?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>
<class name="com.example.User" table="user">
<id name="id">
<column name="id"/>
</id>
<property name="name">
<column name="name"/>
</property>
<property name="age">
<column name="age"/>
</property>
</class>
</hibernate-mapping>
在Hibernate框架中,使用Session对象进行数据库的增删改查操作。Session对象由SessionFactory对象创建,同时也可以通过getCurrentSession()方法获取当前线程中的Session对象。下面是一个简单的增删改查操作示例:
// 获取SessionFactory对象
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
// 获取Session对象
Session session = sessionFactory.openSession();
Transaction transaction = null;
try {
// 开启事务
transaction = session.beginTransaction();
// 新增
User user = new User();
user.setName("张三");
user.setAge(18);
session.save(user);
// 删除
User user = session.get(User.class, 1);
session.delete(user);
// 修改
User user = session.get(User.class, 1);
user.setAge(19);
session.update(user);
// 查询
List<User> userList = session.createQuery("from User").list();
for (User user : userList) {
System.out.println(user.getName() + "," + user.getAge());
}
// 提交事务
transaction.commit();
} catch (Exception e) {
// 回滚事务
if (transaction != null) {
transaction.rollback();
}
} finally {
// 关闭Session
session.close();
}本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
