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通过createSQLQuery( )方法实现增删改查
Hibernate通过createSQLQuery( )方法实现增删改查 Hibernate的三种实现方式之一:createSQLQuery( ) 一、项目结构 二、hibernate核心配置文件:   hibernate.
3028 0
|
安全 Java 应用服务中间件
Java 近期新闻:Hibernate 6.0、JobRunr 5.0、JHipster 7.8.0、Spring CVEs、JReleaser 1.0-RC2
本期 Java 近期新闻综述内容涉及 JDK 19、Spring Boot、Spring CVEs、Apache Tomcat 点版本、Quarkus Tools for Visual Studio Code、Micronaut 3.4.1、JetBrains 加入 Micronaut 基金会、Open Liberty Paketo Liberty Buildpack、Hibernate 6.0、JobRunr 5.0、WildFly 26.1 Beta S2I 镜像、JReleaser 1.0-RC2、MicroStream 7.0-M2、JHipster 7.8.0、JMH 1.35。
782 0
|
16天前
|
SQL Java 数据库连接
jpa、hibernate、spring-data-jpa、jdbcTemplate
jpa、hibernate、spring-data-jpa、jdbcTemplate
|
4月前
|
存储 Java 数据库连接
Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析
Spring Boot 的嵌入式服务器功能是一项方便而强大的功能,它允许你在应用程序中直接运行 Web 服务器,无需将其部署到单独的独立 Web 服务器中。这使得开发、测试和部署 Web 应用程序变得容易,而且它还是轻量级的、易于启动和停止的,易于配置。
65 0
|
4月前
|
XML Java 数据库连接
Hibernate与Spring整合实践实例
Hibernate与Spring整合实践实例
40 0
|
7月前
|
存储 Oracle Java
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
|
9月前
|
Java 数据库连接 数据库
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
48 0
|
XML Java 关系型数据库
Spring 项目快速整合 Hibernate
前言 Hibernate 作为前些年广为流行的 ORM 框架,Spring 在诞生之初也进行了支持,并且抽象出一个 spring-orm 模块。
426 0
|
JavaScript Java 数据库连接
spring对hibernate的集成中的回调(CallBack)机制
spring对hibernate的集成中的回调(CallBack)机制
166 0
spring对hibernate的集成中的回调(CallBack)机制
|
Java 数据库连接 API
Spring整合Hibernate JPA
Spring整合Hibernate JPA
79 0