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

简介: Hibernate通过createSQLQuery( )方法实现增删改查http://www.bieryun.com/3112.html Hibernate的三种实现方式之一:createSQLQuery( ) 一、项目结构 二、hibernate核心配置文件:   hibernate.

Hibernate通过createSQLQuery( )方法实现增删改查http://www.bieryun.com/3112.html

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.             <!-- 配置数据库方言 -->
  15.             <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  16.             <!-- 配置sql打印、格式化 -->
  17.             <property name="hibernate.show_sql">true</property>
  18.             <property name="hibernate.format_sql">true</property>
  19.  
  20.             <!-- 配置hibernate映射文件位置 -->
  21.             <mapping resource="com/gomai/pojo/student.hbm.xml"/>
  22.         </session-factory>
  23.     </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.  
  12.         int i = session.createSQLQuery("insert into student values(SQ_STUDENT.nextval,?,?,?,?)")
  13.             .setParameter(02)
  14.             .setParameter(1"露娜")
  15.             .setParameter(223)
  16.             .setParameter(3"女")
  17.             .setParameter(41003)
  18.             .executeUpdate();
  19.  
  20.         System.out.println(i);
  21.         try {
  22.             tr.commit();
  23.         } catch (HibernateException e) {
  24.             tr.rollback();
  25.             e.printStackTrace();
  26.         }finally{
  27.             session.close();
  28.         }
  29.     }

删除:

[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.  
  12.         int i = session.createSQLQuery("delete from student where stuid = ?")
  13.                 .setParameter(0100)
  14.                 .executeUpdate();
  15.         System.out.println("TestSQL.deleteStu()" + i);
  16.  
  17.         //事务回滚、关流
  18.         try {
  19.             tr.commit();
  20.         } catch (Exception e) {
  21.             tr.rollback();
  22.             e.printStackTrace();
  23.         }finally{
  24.             session.close();
  25.         }
  26.     }
  27.  

 

更新:

[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.  
  16.     System.out.println(i);
  17.  
  18.     //事务回滚、关流
  19.     try {
  20.         tr.commit();
  21.     } catch (Exception 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 searchStu(){
  6.     Configuration configure = new Configuration().configure("hibernate.cfg.xml");
  7.     SessionFactory sessionFactory = configure.buildSessionFactory();
  8.     Session session = sessionFactory.openSession();
  9.  
  10.     List<Student> list = session.createSQLQuery("select * from student")
  11.             <span style="color:#FF0000;">.addEntity(Student.class)</span>
  12.             .list();
  13.  
  14.     for (Student student : list) {
  15.         System.out.println(student);
  16.     }
  17.     session.close();
  18.  
  19. }

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

相关文章
|
Java 数据库连接
hibernate validator】(三)声明和验证方法约束
hibernate validator】(三)声明和验证方法约束
|
3月前
|
Java 数据库连接 数据库
|
3月前
|
缓存 Java 数据库连接
|
3月前
|
Java 数据库连接 API
|
3月前
|
Java 数据库连接 应用服务中间件
|
6月前
|
存储 缓存 Java
Hibernate - Session方法与持久化对象详解
Hibernate - Session方法与持久化对象详解
148 0
|
存储 Oracle Java
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
|
Java 数据库连接
Hibernate中的主键生成方法native与assigned
Hibernate中的主键生成方法native与assigned
74 0
|
Java 数据库连接 数据库
Hibernate的方法获取对象后,对象调用set后会自动更新数据库内容的解决办法
Hibernate的方法获取对象后,对象调用set后会自动更新数据库内容的解决办法
790 0