一、最近总看见项目中直接在代码里面写sql,而不是使用mapper配置文件,感觉对于轻量级的查询,没有多少查询语句的话,咱就不集成mybatis了,直接写sql不也很好么,于是大概研究了一下,怎么使用。

看,下面的代码就是开发常用的sql写法

 @Query(value = "select recon_roll_result from pay_asset_result where  date = ?1 and type = ?2 and is_deprecated = '0' limit 1", nativeQuery = true)String findReconRollResultByReconDateAndType(String reconDate, String type);

二、讲一下这种sql的搭建过程

1、导入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version>
</dependency>
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version>
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version>
</dependency>

2.yml配置文件

# 应用名称
spring:application:name: demodatasource:url: jdbc:mysql://hhhhh.mysql.rds.aliyuncs.com:3306/testone?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf-8&useSSL=truetype: com.alibaba.druid.pool.DruidDataSourceusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverjpa:hibernate:ddl-auto: updateshow-sql: true
server:port : 9999

3)写实体类

注:启动工程后,会根据类的里面的属性创建表,name是创建的表名

package com.fourg.testone.db.autotest.entity.jourtestcase;import lombok.Getter;
import lombok.Setter;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;/*** ** @author * @date   2022/04/08*/
@Getter
@Setter
@Entity
@Table(name ="test_case")
public class TestCase {/*** */@Id@Columnprivate Integer id;/*** 作者*/@Columnprivate String author;/*** 用例编号*/@Columnprivate String caseno;/*** 用例描述*/@Columnprivate String casedesc;/*** 是否成功*/@Columnprivate String issuccess;/*** 错误信息*/@Columnprivate String errormsg;/*** 交易类型*/@Columnprivate String casetradetype;/*** 产品*/@Columnprivate String productname;/*** 是否执行*/@Columnprivate String caseenable;/*** 前置条件*/@Columnprivate String casepreset;/*** 参数*/@Columnprivate String caseparam;/*** 断言模板*/@Columnprivate String asserttemplate;/*** 预期断言*/@Columnprivate String exceptasset;/*** 实际结果断言*/@Columnprivate String realresultasset;/*** 借据号*/@Columnprivate String loaninvoiceid;}

4)respository接口编写

package com.fourg.testone.db.autotest.repository.jourtestcase;import com.fourg.testone.db.autotest.entity.jourtestcase.TestCase;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;/*** @Author: * @Date: 2022/4/8 下午4:47*/
public interface JourTestCaseRepository extends JpaRepository<TestCase, Integer> , JpaSpecificationExecutor<TestCase> {@Query(value = "select * from test_case  where author = ?1",nativeQuery = true)List<TestCase> findCaseByAuthor(String Author);
}

5)写controller

package com.fourg.testone.controller;import com.fourg.testone.db.autotest.entity.jourtestcase.TestCase;
import com.fourg.testone.db.autotest.repository.jourtestcase.JourTestCaseRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;/*** @Author: * @Date: 2022/4/8 下午4:51*/
@Slf4j
@RequestMapping(value = "casemanage", produces = "application/json")
@RestController
public class CaseController {@Autowiredprivate JourTestCaseRepository jourTestCaseRepository;@GetMapping(path = "getAll")public List<TestCase> getAllCase() {List<TestCase> testCaseList=new ArrayList<>();return testCaseList=jourTestCaseRepository.findCaseByAuthor("钱大郎");
//       return testCaseList=jourTestCaseRepository.findAll();}
}

6)启动项目,会自动在testone库中创建表test_case

访问接口get http://localhost:9999/casemanage/getAll可以获取到数据库里面的数据

把pom文件所有内容贴到下面

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.fourg</groupId><artifactId>testone</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><aliyun-spring-boot.version>1.0.0</aliyun-spring-boot.version><spring-boot.version>2.3.7.RELEASE</spring-boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-redis-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><artifactId>jboss-logging</artifactId><groupId>org.jboss.logging</groupId></exclusion><exclusion><artifactId>hibernate-validator</artifactId><groupId>org.hibernate.validator</groupId></exclusion></exclusions></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--druid数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-spring-boot-dependencies</artifactId><version>${aliyun-spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.7.RELEASE</version><configuration><mainClass>com.fourg.testone.DemoApplication</mainClass></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

很多内容都参考了这篇文章

Spring Data JPA使用:看这一篇就够了 - SegmentFault 思否

springboot jpa链接数据库相关推荐

  1. 全网最全精析破解 Springboot+Jpa 对数据库增删改查

    前言: 昨天做的是springboot+mybatis 对数据库进行增删改查 但是我感觉配置文件太多了 很麻烦 繁琐 今天搞一下springboot+Jpa对数据库进行增删改查, 感觉很好用 ,所以记 ...

  2. springboot jpa 创建数据库以及rabbitMQ分模块扫描问题

    在使用jpa过程中,如果没有在配置中加入自动创建实体对于的sql,则需要提前创建建表语句 spring.jpa.properties.hibernate.show_sql=true spring.jp ...

  3. springboot JPA整合国产神通数据库(神州通用数据库)

    当前国产软件比较流行,就最近做过的springboot +JPA+神通数据库的项目做下记录供有需要的同学参考. 神通数据库在springboot中的配置和大多关系型数据库基本一样的,只是由于驱动jar ...

  4. Springboot 系列(十)使用 Spring data jpa 访问数据库

    前言 Springboot data jpa 和 Spring jdbc 同属于 Spring开源组织,在 Spring jdbc 之后又开发了持久层框架,很明显 Spring data jpa 相对 ...

  5. springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出错的解决办法

    springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出错的解决办法 参考文章: (1)springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出 ...

  6. SpringBoot JPA 配置多个数据库

    SpringBoot JPA 配置多个数据库 一.application.yml : 二.创建一个SpringBoot配置类 三.primary数据源的JPA配置 四.secondary数据源的JPA ...

  7. springboot+jpa 实现不同数据库的多数据源配置(坑整理)

    在搭建springboot+jpa 实现不同数据库的多数据源配置过程中会遇到很多坑, SpringBoot引入mysql源的pom.xml等的配置:https://www.jianshu.com/p/ ...

  8. springboot+jpa+mybatis 多数据源支持

    springboot+jpa+mybatis 多数据源支持 配置dataSource import org.springframework.beans.factory.annotation.Quali ...

  9. springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离

    相关代码:github OSCchina JPA是什么 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具 来管理 ...

最新文章

  1. (int)a和(int)a的区别
  2. 来电通java版_我的世界基岩版1.19正式版下载-我的世界基岩版1.19下载手机版v1.19...
  3. android镊 姩瀹夎 apk,用java写的jodconverter借用openoffice来转换office成pdf的示例代码...
  4. JZOJ 5701. 【gdoi2018 day2】第一题 谈笑风生(magic)
  5. Docker 容器互联 --link 和 自定义网络
  6. RGB-D dataset
  7. Bootstrapbutton组
  8. zookeeper运维
  9. mac sudo: /etc/sudoers is world writable
  10. 别再苦恼电脑录屏软件哪个免费了,试试这几款吧
  11. B方法-拓展你形式化方法的视野
  12. 计算机桌面显示器,电脑安装多显示器方法图文教程
  13. 英语语法——万法归宗
  14. 代数结构与有限域之 群
  15. MATLAB De_Pcode Mex 求助
  16. kzzi k980 三模键盘 说明书
  17. 计算机概念知识点,计算机知识点最全版概念.doc
  18. T-S型模糊算法简述及FPGA的实现
  19. 腾讯翻译自然语言处理实习经验贴
  20. python中turtle画小草_python

热门文章

  1. Kindle3之中文乱码问题
  2. 【N32G457】基于RT-Thread和N32G457的可控电流源
  3. 帆软中的日期函数,当月第一天,当年第一天,当月最后一天等
  4. 渐渐逝去的青春---老男孩
  5. 设计师必备的导航网站
  6. python虚拟数字人直播间带货
  7. 波特兰 计算机专业,波特兰州立大学工程学院和计算机科学专业水平考试流程2012017.pdf...
  8. Android q索尼手机相机算法,手机厂商套路太多!竟在手机摄像头上玩“掩眼法”?...
  9. 开源之道给您拜年啦~~
  10. Conda太慢 试试这个加速工具