springboot整合hibernate,gradle,达梦8数据库,实现增删改查的功能

news2024/11/26 16:23:52

1.新建一个springboot项目,选择gradle管理

 2.gradle添加以下依赖,gradle版本7.4

 dependencies {
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
        implementation 'org.springframework.boot:spring-boot-starter-web:2.6.6'
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter
        implementation 'org.springframework.boot:spring-boot-starter:2.6.3'
        implementation 'org.projectlombok:lombok:1.18.12'
        annotationProcessor 'org.projectlombok:lombok:1.18.12'
        implementation 'com.dameng:DmJdbcDriver18:8.1.1.193'
        implementation 'com.dameng:DmDialect-for-hibernate5.3:8.1.1.193'
        // https://mvnrepository.com/artifact/org.hibernate/hibernate-core
        implementation 'org.hibernate:hibernate-core:5.4.21.Final'
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.7.5'
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test
        testImplementation 'org.springframework.boot:spring-boot-starter-test:2.6.3'
        // https://mvnrepository.com/artifact/junit/junit
        testImplementation 'junit:junit:4.12'
    }

 3.application.yml配置文件

server:
  port: 8085
spring:
  datasource:
    driver-class-name: dm.jdbc.driver.DmDriver
    url: jdbc:dm://localhost:5236/FDW?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    username: FDW
    password: FDW
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.DmDialect
    show-sql: true
    hibernate:
      ddl-auto: none

4.达梦数据库新建表空间FDWSPACE,新建用户FDW绑定FDWSPACE

5.在FDW模式下新建一张表test 

CREATE TABLE "FDW"."test"
(
"ID" INTEGER,
"stu_name" VARCHAR(50),
"stu_age" INTEGER) ;

6.新建实体类Student

package com.fdw.study.bean;

import lombok.Data;

import javax.persistence.*;

@Entity
@Table(name = "test")
@Data
public class Student {
    @Id
    @Column(name = "ID")
    private Integer ID;

    @Column(name = "stu_name")
    private String name;

    @Column(name = "stu_age")
    private Integer age;

}

7.DAO接口类StuDao  

package com.fdw.study.dao;

import com.fdw.study.bean.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface StuDao  extends JpaRepository<Student,Integer> {
    List<Student> getByNameAndAge(String name, int age);
    List<Student> getByName(String name);
    @Query(value = "select * from test where stu_age > 1 and stu_name like %:keyword%", nativeQuery = true)
    List<Student> findUserListByAgeAndNameLike(@Param("keyword") String keyword);
}

8.Service接口类StudentService 

package com.fdw.study.service;

import com.fdw.study.bean.Student;


public interface StudentService {

    void saveStudent(Student student);

    void queryAll();

    void getByNameAndAge(String name, int age);

    void getByName(String name);

    void findUserListByAgeAndNameLike(String keyword);

}

9.Service接口实现类StudentServiceImpl 

package com.fdw.study.service;

import com.fdw.study.bean.Student;
import com.fdw.study.dao.StuDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceImpl implements StudentService{
    @Autowired
    StuDao stuDao;


    @Override
    public void saveStudent(Student student) {
        Student save = stuDao.save(student);
        System.out.println("新增或更新一条数据");
        System.out.println(save);
    }

    @Override
    public void queryAll() {
        List<Student> all = stuDao.findAll();
        for (Student s : all) {
            System.out.println(s);
        }
    }

    @Override
    public void getByNameAndAge(String name, int age) {
        List<Student> byNameAndAge = stuDao.getByNameAndAge(name, age);
        for (Student s : byNameAndAge) {
            System.out.println(s);
        }
    }

    @Override
    public void getByName(String name) {
        List<Student> byName = stuDao.getByName(name);
        for (Student s : byName) {
            System.out.println(s);
        }
    }

    public void findUserListByAgeAndNameLike(String keyword){
        List<Student> byName = stuDao.findUserListByAgeAndNameLike(keyword);
        for (Student s : byName) {
            System.out.println(s);
        }
    }
}

10.单元测试

package com.fdw;

import com.fdw.study.bean.Student;
import com.fdw.study.dao.StuDao;
import com.fdw.study.service.StudentServiceImpl;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest(classes = MyApplication.class)
@RunWith(SpringRunner.class)
@ComponentScan("com.fdw.study")
class StudyApplicationTests {
    @Autowired
    StudentServiceImpl studentService;

    @Test
    void contextLoads() {
        Student student = new Student();
        student.setID(3);
        student.setAge(10);
        student.setName("aaa");
        studentService.saveStudent(student);
    }


    @Test
    void contextLoads1() {
        studentService.queryAll();
    }

    @Test
    void contextLoads2() {
        studentService.getByNameAndAge("bbb", 10);
    }

    @Test
    void contextLoads3() {
        studentService.getByName("bbb");
    }

    @Test
    void contextLoads4() {
        studentService.findUserListByAgeAndNameLike("b");
    }
}

结果展示

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch深度强化学习1-3:策略评估与贝尔曼期望方程详细推导

目录 0 专栏介绍1 从一个例子出发2 回报与奖赏3 策略评估函数4 贝尔曼期望方程5 收敛性证明 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见的强化学习算法、案例进行实现&#xff0c;帮助读者理解并快速上手开发。同时&#xff0c;辅…

ZUH-ACDM-网络-网闸-根据论坛的案例进行分析

H3C技术论坛&#xff1a;https://zhiliao.h3c.com/Theme/details/64343 文章目录 需求&#xff1a;源地址&#xff1a;172.16.1.33访问目的地址&#xff1a;192.168.4.233确认确定是主机确认外端机连接地址172.16.1.254确认内端机到源地址172.16.1.33是通的确认流量走向/路由第…

基于matlab使用高斯混合模型检测和计数视频序列中的汽车(附源码)

一、前言 此示例演示如何使用基于高斯混合模型 &#xff08;GMM&#xff09; 的前景检测器检测和计数视频序列中的汽车。 检测和计数汽车可用于分析交通模式。检测也是执行更复杂的任务&#xff08;例如按类型跟踪或分类车辆&#xff09;之前的第一步。 此示例演示如何使用前…

prometheus描点原理

大家好&#xff0c;我是蓝胖子&#xff0c;关于prometheus的入门教程有很多&#xff0c;拿我之前学prometheus的经历来讲&#xff0c;看了很多教程&#xff0c;还是会对prometheus的描点以及背后的统计原理感到迷惑&#xff0c;所以今天我们就来分析下这部分&#xff0c;来揭开…

AIGC - Stable Diffusion 的 墨幽人造人 模型与 Tag 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131565068 Stable Diffusion的模型网站 LiblibAI&#xff1a;https://www.liblibai.com 墨幽人造人网址&#xff1a;https://www.liblibai.com/m…

BUU [vnctf2023]电子木鱼

BUU [vnctf2023]电子木鱼 先看看题目&#xff0c;点不了。 看看源码。Rust整数溢出。 在 Rust 中&#xff0c;整数类型默认是有符号整数类型&#xff0c;意味着这些整数类型可以表示正数和负数。对于有符号整数类型&#xff0c;最高位用来表示符号&#xff0c;0 表示正数&…

如何在Microsoft Excel中快速创建等比序列

Excel 中的填充句柄允许你通过拖动句柄自动填充行或列中的数据列表&#xff08;数字或文本&#xff09;。这可以在大型工作表中输入顺序数据时节省大量时间&#xff0c;并提高工作效率。 如果数据遵循某个模式或基于其他单元格中的数据&#xff0c;则可以使用“自动填充”功能…

TiDB(7):技术内幕之存储

1 引言 数据库、操作系统和编译器并称为三大系统&#xff0c;可以说是整个计算机软件的基石。其中数据库更靠近应用层&#xff0c;是很多业务的支撑。这一领域经过了几十年的发展&#xff0c;不断的有新的进展。 很多人用过数据库&#xff0c;但是很少有人实现过一个数据库&a…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习三)

设备节点功能模块设计 在本文节点功能设计中&#xff0c;拥有用于检测温度的温度传感器、监测湿度的湿度传感器以及 调节空调温度的IR红外发射器&#xff0c;另留有部分外接扩展串口&#xff0c;因此可能会在实际使用中扩展更多的设备模块与功能。 可见&#xff0c;如何高效地…

2023年03月份青少年软件编程Python等级考试试卷三级真题(含答案)

2023-03 Python三级真题 分数&#xff1a;100 题数&#xff1a;38 测试时长&#xff1a;60min 一、单选题(共25题&#xff0c;共50分) 1.十进制数111转换成二进制数是&#xff1f;&#xff08; &#xff09;&#xff08;2分&#xff09; A.111 B.1111011 C.101111 D…

青岛大学_王卓老师【数据结构与算法】Week04_10_线性表的应用3_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

Spring Boot中的度量指标及使用方法

Spring Boot中的度量指标及使用方法 简介 Spring Boot是目前流行的Java后端框架之一&#xff0c;它提供了许多有用的功能&#xff0c;其中包括度量指标。度量指标可以帮助我们监测应用程序的性能、稳定性和可靠性&#xff0c;以便及时发现并解决问题。本文将介绍Spring Boot中…

使用Jetpack Compose集成WebView

在Android开发中&#xff0c;WebView是一个非常重要的组件&#xff0c;它可以用来显示网页或加载在线内容。然而&#xff0c;在Jetpack Compose&#xff08;Google推出的新的UI工具包&#xff09;中&#xff0c;目前没有内置的WebView Composable。但不必担心&#xff0c;你可以…

【数据算法与结构】栈和队列课后习题

题目&#xff08;共两道&#xff09; 题目1 Qestion: 根据下面代码片段写出运行下列程序段的输出结果(元素类型为char) 题目代码片段 void main() {Stack S; char x,y; InitStack(S); // 初始化栈x ‘e ‘; y ‘c’; Push(S, ‘h‘); Push(S, ‘r‘); Push(S,y);Pop(S,x);…

了解Java可见性的本质

作者&#xff1a;早恒 前一段时间重温了伪共享&#xff08;false sharing&#xff09;问题&#xff0c;了解到深处有几个问题一直想不明白&#xff0c;加上开发过程中遇到volatile时总觉得理解不够透彻&#xff0c;借着这次脑子里这几个问题&#xff0c;探究下Java可见性的本质…

【C语言】深入学习函数(万字)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在回炉重造C语言&#xff08;2023暑假&#xff09; ✈️专栏&#xff1a;【C语言航路】 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你…

文件上传+文件包含组合式getshell

实验目的 通过本实验&#xff0c;了解文件包含的特点&#xff0c;掌握图片马的执行方法&#xff0c;文件上传文件包含组合式getshell。 实验环境 操作机&#xff1a;kali 靶机&#xff1a;Windows 2007 用户名/密码&#xff1a;college/360College 实验地址&#xff1a;http…

jenkins部署springboot项目

jenkins部署springboot项目 1、创建一个项目 上传到gitee 1、创建项目 2、上传到git 2、jenkins创建一个pipeline项目 Pipeline简介 1&#xff09;概念 Pipeline&#xff0c;简单来说&#xff0c;一套运行在 Jenkins 上的工作流框架&#xff0c;将原来独立运行于单个或者…

优化chatGPT提示词的Prompts

你扮演一个专业的chatGPT提示词工程师&#xff0c;我将为您提供我的提示词&#xff0c;它用三个反引号分隔&#xff0c;请根据openai发布的提示词标准和优化技巧&#xff0c;改进和优化我的提示词&#xff0c;让chatGPT能够更好的理解。 我的第一个提示词是&#xff1a;“”“……

【UI设计】新拟态风格

新拟态风格 1.有且只有一个光源照射 那作者在追波上按钮也好还是卡片处理也好&#xff0c;仔细观察不难发现&#xff0c;它定了一个光源&#xff0c;是从左上向右下照射的&#xff0c;所以&#xff0c;越靠近光源的部分&#xff0c;越亮&#xff0c;远离光源的越暗&#xff08;…