hibernate5 增加、修改、删除和执行SQL

简介: hibernate5 增加、修改、删除和执行SQL

一、环境

1、hibernate 5.3.1.Final

Maven POM格式

<!-- hibernate -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.3.1.Final</version>
    </dependency>

2、IDE IntelliJ IDEA 2020

版本很关键,不写版本号发技术文章就是耍流氓

二、新增、修改、删除和执行SQL语句

2.1 User实体类,使用注解就可以了不用创建表对应的*.hbm.xml文件了。减少维护和出错率。使用

Lombok减少代码量,Lombok的POM格式

<!-- lombok from repository 简化实体类代码-->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
package com.yadinghao.entity.po;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
@Data
@Entity(name = "user")
public class User {
    public  String age;
    @Id
    public String name;
}

2.2 实际代码

package com.yadinghao.demo;
import com.yadinghao.entity.po.User;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.NativeQuery;
import org.hibernate.query.Query;
import org.hibernate.service.ServiceRegistry;
import javax.jws.soap.SOAPBinding;
import java.sql.SQLException;
import java.util.List;
public class hibernatedemo {
    //POJO 创建数据库表
    public static void main(String[] args) {
        Configuration config = new Configuration();
        //config.configure("hibernate.cfg.xml");
        // 创建工厂
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
        SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
        // creating session object
        Session session = sessionFactory.openSession();
        User user= new User();
        user.setAge("41");
        user.setName("张渔歌");
        session.beginTransaction();
        session.save(user); //新增
        session.update(user);//修改
        session.delete(user);//删除
        session.getTransaction().commit();
        String sql = "select name,age from user";
        Query<User> query = session.createNativeQuery(sql,User.class);
        //session.get("name");
        // 3)获得结果
        List<User> list = query.list();
        System.out.println(list.size());
        for(User u : list){
            System.out.println(u.getName()+":"+u.getAge());
        }
    }
}

session.save(user); //新增

session.update(user);//修改

session.delete(user);//删除

这组方法应该通

执行SQL语句就不通用了。之前的SQLQuery、addEntity都废弃了。

好了就写到这吧

目录
相关文章
|
3月前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
181 0
|
3月前
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age &gt; 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
57 0
|
3月前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
120 0
|
3月前
|
SQL Java 数据库连接
|
3月前
|
SQL 缓存 Java
如何在 Hibernate 中启用 SQL 日志记录?
【8月更文挑战第21天】
121 0
|
6月前
|
SQL Java 数据库连接
Hibernate - QBC和本地SQL对象检索详解
Hibernate - QBC和本地SQL对象检索详解
63 0
|
6月前
|
SQL Java 关系型数据库
Hibernate - Java 类型, Hibernate 映射类型及 SQL 类型之间的对应关系
Hibernate - Java 类型, Hibernate 映射类型及 SQL 类型之间的对应关系
63 0
|
SQL 存储 安全
Mybatis和Hibernate:防止SQL注入
Mybatis和Hibernate:防止SQL注入
927 0
Mybatis和Hibernate:防止SQL注入
|
SQL Java 数据库连接
hibernate自定义sql关联查询结果组装为对象
hibernate自定义sql关联查询后没有对应的entity,如何映射为对应的bean
251 0