Hibernate内容详解
Posted mqflive81
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate内容详解相关的知识,希望对你有一定的参考价值。
一:引入Hibernate的jar包
二:配置Hibernate的核心配置文件hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <!-- hibernate的根标签 --> <hibernate-configuration> <!-- session工厂 --> <session-factory> <!-- 配置数据属性 --> <!-- 配置数据库驱动 --> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <!--配置数据库连接--> <property name="connection.url"> jdbc:mysql://localhost:3306/test06?characterEncoding=UTF-8 </property> <!-- 配置数据库用户名 --> <property name="connection.username"> root </property> <!-- 配置数据库密码 --> <property name="connection.password"> root </property> <!-- 配置数据库方言 --> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <!-- 配置SQL语句的生成格式 --> <property name="show_sql">true</property> <property name="format_sql">true</property> <!-- 配置生成策略update、create、drop --> <property name="hbm2ddl.auto">update</property> <!-- 配置hibernate的映射文件 --> <mapping resource="com/baidu/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration>
三:创建Hibernate的映射实体类User类
View Code
四:创建Hibernate的实体类映射文件User.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- hibernate的根映射文件 --> <hibernate-mapping> <!-- 映射的实体类 --> <class name="com.baidu.entity.User" table="users"> <!-- 配置主键生成策略 --> <id name="uid"> <generator class="native"></generator> </id> <!-- 配置实体类中相应的属性字段 --> <property name="uname"></property> <property name="usex"></property> <property name="uaddress"></property> </class> </hibernate-mapping>
五:Hibernate的测试类TestHibernate
public class TestHibernate { public static void main(String[] args) { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //获取sessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //关闭连接 session.close(); } }
六:用Hibernate对数据库进行增、删、查、改操作
public class TestCurd { /** * 增加用户信息 */ @Test public void saveUser() { try { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //创建SessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //开启事务 Transaction tx = session.beginTransaction(); //实例化User对象 User user = new User(); user.setUname("Jack"); user.setUsex(‘男‘); user.setUaddress("北京"); //添加用户信息 session.save(user); tx.commit(); //关闭连接 session.close(); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("有异常!"); e.printStackTrace(); } } /** * 查询单个用户信息 */ @Test public void queryUserByUid() { try { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //创建SessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //查询用户 User user = (User) session.get(User.class, 4); System.out.println(user+"========================"); //关闭连接 session.close(); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("有异常!"); e.printStackTrace(); } } /** * 查询所有用户信息 */ @Test public void queryAllUser() { try { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //创建SessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //查询用户(获取query对象) Criteria criteria = session.createCriteria(User.class); List<User> list = criteria.list(); if (list.size()>0 && null!=list) { for (User user : list) { System.out.println(user+"============================"); } } //关闭连接 session.close(); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("有异常!"); e.printStackTrace(); } } /** * 修改用户信息 */ @Test public void updateUserByUid() { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //创建SessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //开启事务 Transaction tx = session.beginTransaction(); //获取要修改的用户(先查询要修改的用户) User user = (User) session.get(User.class, 4); user.setUname("Tom"); user.setUsex(‘女‘); user.setUaddress("郑州"); //提交用户 session.update(user); //提交事务 tx.commit(); //关闭session连接 session.close(); } /** * 删除用户信息 */ @Test public void deleteUserByUid() { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //创建SessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //开启事务 Transaction tx = session.beginTransaction(); //获取要修改的用户(先查询要修改的用户) User user = (User) session.get(User.class, 4); //提交用户 session.delete(user); //提交事务 tx.commit(); //关闭session连接 session.close(); } /** * 分页功能 */ @Test public void pageHelper() { //加载hibernate的核心配置文件 Configuration configuration = new Configuration().configure(); //创建SessionFactory SessionFactory sessionFactory = configuration.buildSessionFactory(); //获取session Session session = sessionFactory.openSession(); //定义hql语句 String hql = "from User"; //查询所有数据 Query query = session.createQuery(hql); //执行分页 query.setFirstResult(0); query.setMaxResults(3); //查询分页列表 List<User> list = query.list(); //判断User是否为空 if (list.size()>0 && null!=list) { for (User user : list) { System.out.println(user); } } } }
以上是关于Hibernate内容详解的主要内容,如果未能解决你的问题,请参考以下文章
具有运行时 pojos 的带有 Hibernate 的 OSGi 片段包
Hibernate映射文件详解(News***.hbm.xml)二
hibernate中的映射文件xxx.hbm.xml详解总结