您现在的位置是:首页 > 文章详情

Hibernate通过createSQLQuery( )方法实现增删改查

日期:2018-04-15点击:393

Hibernate通过createSQLQuery( )方法实现增删改查

Hibernate的三种实现方式之一:createSQLQuery( )

一、项目结构

二、hibernate核心配置文件:   hibernate.cfg.xml

[java] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4.     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  5.     <!-- 配置hibernate核心配置文件 -->
  6.     <hibernate-configuration>
  7.         <!-- 配置hibernate数据源连接 -->
  8.         <session-factory>
  9.             <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  10.             <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
  11.             <property name="hibernate.connection.username">wzf</property>
  12.             <property name="hibernate.connection.password">1234</property>
  13.             <!-- 配置数据库方言 -->
  14.             <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  15.             <!-- 配置sql打印、格式化 -->
  16.             <property name="hibernate.show_sql">true</property>
  17.             <property name="hibernate.format_sql">true</property>
  18.             <!-- 配置hibernate映射文件位置 -->
  19.             <mapping resource="com/gomai/pojo/student.hbm.xml"/>
  20.         </session-factory>
  21.     </hibernate-configuration>

 

三、hrbernate的映射文件

[java] view plain copy

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4.     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5.     <!-- 配置hibernate映射文件 -->
  6.     <hibernate-mapping>
  7.         <class name="com.gomai.pojo.Student" table="student">
  8.             <!-- 配置主键生成策略 -->
  9.             <id name="student_id" column="STUID">
  10.                 <generator class="sequence">
  11.                     <param name="sequence">SQ_STUDENT</param>
  12.                 </generator>
  13.             </id>
  14.             <!-- 配置表与属性 -->
  15.             <property name="student_name" column="stuname"></property>
  16.             <property name="student_age" column="stuage"></property>
  17.             <property name="student_sex" column="stusex"></property>
  18.             <property name="student_no" column="stuno"></property>
  19.         </class>
  20.     </hibernate-mapping>

四、测试类(该类包括增删改查四个方法的实现,下面依次介绍)

新增:

[java] view plain copy

  1.     /**
  2.      * 添加:通过序列生成主键自增
  3.          */
  4.     @Test
  5.     public void insertStu(){
  6.         Configuration configure = new Configuration().configure("hibernate.cfg.xml");
  7.         SessionFactory sessionFactory = configure.buildSessionFactory();
  8.         Session session = sessionFactory.openSession();
  9.         //开启事务
  10.         Transaction tr = session.beginTransaction();
  11.         int i = session.createSQLQuery("insert into student values(SQ_STUDENT.nextval,?,?,?,?)")
  12.             .setParameter(02)
  13.             .setParameter(1"露娜")
  14.             .setParameter(223)
  15.             .setParameter(3"女")
  16.             .setParameter(41003)
  17.             .executeUpdate();
  18.         System.out.println(i);
  19.         try {
  20.             tr.commit();
  21.         } catch (HibernateException e) {
  22.             tr.rollback();
  23.             e.printStackTrace();
  24.         }finally{
  25.             session.close();
  26.         }
  27.     }

删除:

[java] view plain copy

  1. /**
  2.      * 删除
  3.      */
  4.     @Test
  5.     public void deleteStu(){
  6.         Configuration configure = new Configuration().configure("hibernate.cfg.xml");
  7.         SessionFactory sessionFactory = configure.buildSessionFactory();
  8.         Session session = sessionFactory.openSession();
  9.         //开启事务
  10.         Transaction tr = session.beginTransaction();
  11.         int i = session.createSQLQuery("delete from student where stuid = ?")
  12.                 .setParameter(0100)
  13.                 .executeUpdate();
  14.         System.out.println("TestSQL.deleteStu()" + i);
  15.         //事务回滚、关流
  16.         try {
  17.             tr.commit();
  18.         } catch (Exception e) {
  19.             tr.rollback();
  20.             e.printStackTrace();
  21.         }finally{
  22.             session.close();
  23.         }
  24.     }

 

更新:

[java] view plain copy

  1. /**
  2.  * 更新
  3.  */
  4. @Test
  5. public void updateStu(){
  6.     Configuration configure = new Configuration().configure("hibernate.cfg.xml");
  7.     SessionFactory sessionFactory = configure.buildSessionFactory();
  8.     Session session = sessionFactory.openSession();
  9.     Transaction tr = session.beginTransaction();
  10.     int i = session.createSQLQuery("update student set stuname = ?,stusex = ? where stuid = ? ")
  11.         .setParameter(0"公孙离")
  12.         .setParameter(1"女")
  13.         .setParameter(29)
  14.         .executeUpdate();
  15.     System.out.println(i);
  16.     //事务回滚、关流
  17.     try {
  18.         tr.commit();
  19.     } catch (Exception e) {
  20.         tr.rollback();
  21.         e.printStackTrace();
  22.     }finally{
  23.         session.close();
  24.     }
  25. }

查询:

[java] view plain copy

  1. /**
  2.  * 查询
  3.  */
  4. @Test
  5. public void searchStu(){
  6.     Configuration configure = new Configuration().configure("hibernate.cfg.xml");
  7.     SessionFactory sessionFactory = configure.buildSessionFactory();
  8.     Session session = sessionFactory.openSession();
  9.     List<Student> list = session.createSQLQuery("select * from student")
  10.             <span style="color:#FF0000;">.addEntity(Student.class)</span>
  11.             .list();
  12.     for (Student student : list) {
  13.         System.out.println(student);
  14.     }
  15.     session.close();
  16. }

好了,以上就是hibernate中通过createSQLQuery( )方法实现增删改查,本人目前刚开始接触hibernate,为了学习所以才记录到博客中。说的不对的地方麻烦各位朋友指出。

原文地址http://www.bieryun.com/3112.html

原文链接:https://yq.aliyun.com/articles/581848
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章