本文将详细介绍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