热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(七)Java版接口自动化使用Springboot整合MybatisPlus对MySQL进行数据操作

一、在pom.xml文件中添加要用到的包,代码如下:com.baomi

一、在pom.xml文件中添加要用到的包,代码如下:


<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.2.0version>
dependency>

<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>

<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>

自动生成Entity+Dao+Mapper的插件

<plugin>
<groupId>org.mybatis.generatorgroupId>
<artifactId>mybatis-generator-maven-pluginartifactId>
<version>1.4.0version>
plugin>

二、数据库配置信息

D:\github\interface-test\interfacetest\src\test\resources\application.yml

spring:
datasource:
url: jdbc:mysql://rm-2vcgyh64om3x3bd2beo.mysql.cn-chengdu.rds.aliyuncs.com:3306/pre_test?useUnicode=true
&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
username: pre_hxgy
password: XHZYJuiRyJqWO*4v
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: studb
server:
port: 8080
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.studb.entity

三、自动生成mapper,dao,entity的文件

xml version="1.0" encoding="UTF-8"?>
DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"
>
<generatorConfiguration>

<classPathEntry location="D:\maven\.m2\repository\mysql\mysql-connector-java\8.0.25\mysql-connector-java-8.0.25.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>

<property name="suppressAllComments" value="true"/>
commentGenerator>

<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL
="jdbc:mysql://rm-2vcgyh64om3x3bd2beo.mysql.cn-chengdu.rds.aliyuncs.com:3306/pre_test?serverTimezOne=UTC&useSSL=false"
userId
="pre_hxgy"
password
="XHZYJuiRyJqWO*4v">
jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
javaTypeResolver>

<javaModelGenerator targetPackage="com.automation.interfacetest.entity" targetProject="\github\interface-test\interfacetest\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
javaModelGenerator>

<sqlMapGenerator targetPackage="mapper" targetProject="\github\interface-test\interfacetest\src\test\resources">
<property name="enableSubPackages" value="true" />
sqlMapGenerator>

<javaClientGenerator type="XMLMAPPER" targetPackage="com.automation.interfacetest.dao" targetProject="\github\interface-test\interfacetest\src\main\java">
<property name="enableSubPackages" value="true" />
javaClientGenerator>

<table tableName="auto_test_date" domainObjectName="AutoTestDate"
enableCountByExample
="false"
enableUpdateByExample
="false"
enableDeleteByExample
="false"
enableSelectByExample
="false"
selectByExampleQueryId
="false" />
context>
generatorConfiguration>

 四、测试

 数据库对应的表结构:

CREATE TABLE `auto_test_date` (
`id`
bigint(20) NOT NULL,
`loginPhone`
varchar(20) DEFAULT NULL,
`name`
varchar(32) DEFAULT NULL,
`idCard`
varchar(32) DEFAULT NULL,
`addTime`
datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE
=InnoDB DEFAULT CHARSET=utf8;

 

 

 

启动类添加MapperScan注解。指定mapper扫描路径。指定后就不要在mapper层写@Mapper注解了

@MapperScan("com.automation.interfacetest.dao")

package com.automation.interfacetest;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(
"com.automation.interfacetest.dao")
public class InterfacetestApplication {
public static void main(String[] args) {
SpringApplication.run(InterfacetestApplication.
class, args);
}
}

编写或者用插件自动生成mapper,entity,mapper.xml

BaseMapper 接口中封装了一系列 CRUD 常用操作,可以直接使用,操作实体类的mapper代码如下,AutoTestDateMapper.java   

package com.automation.interfacetest.dao;
import com.automation.interfacetest.entity.AutoTestDateEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface AutoTestDateMapper extends BaseMapper{
AutoTestDateEntity queryAutuoTestDate(@Param(
"name") String name);
}

实体类代码如下,AutoTestDateEntity.java

package com.automation.interfacetest.entity;
import java.util.Date;
public class AutoTestDateEntity {
private Long id;
private String loginphone;
private String name;
private String idcard;
private Date addtime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLoginphone() {
return loginphone;
}
public void setLoginphone(String loginphone) {
this.loginphOne= loginphOne== null ? null : loginphone.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard == null ? null : idcard.trim();
}
public Date getAddtime() {
return addtime;
}
public void setAddtime(Date addtime) {
this.addtime = addtime;
}
}

AutoTestDateMapper.xml

xml version="1.0" encoding="UTF-8"?>
DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.automation.interfacetest.dao.AutoTestDateMapper">
<resultMap id="BaseResultMap" type="com.automation.interfacetest.entity.AutoTestDateEntity">
<result column="id" jdbcType="BIGINT" property="id" />
<result column="loginPhone" jdbcType="VARCHAR" property="loginphone" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="idCard" jdbcType="VARCHAR" property="idcard" />
<result column="addTime" jdbcType="TIMESTAMP" property="addtime" />
resultMap>

<sql id="Base_Column_List">
id, loginPhone, name, idCard, addTime
sql>

<select id="queryAutuoTestDate" parameterType="java.lang.String" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List">include>
FROM pre_test.auto_test_date
WHERE name = #{name} limit 1
select>
mapper>

AbstractTestNGSpringContextTests:测试类只有继承了该类才能拥有注入实例能力,否则注入报错

package com.automation.interfacetest;
import com.automation.interfacetest.dao.AutoTestDateMapper;
import com.automation.interfacetest.entity.AutoTestDateEntity;
import com.automation.interfacetest.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.annotations.Test;
/**
* @title:
*
@author: 2022/1/1216:45
* @date: 2022/1/1216:45
*/
@SpringBootTest(classes
= InterfacetestApplication.class)
public class TestMysql extends AbstractTestNGSpringContextTests {
@Autowired
AutoTestDateMapper autoTestDateMapper;
@Test
public void test000(){
AutoTestDateEntity sql
=autoTestDateMapper.queryAutuoTestDate("张三");
System.out.println(
"day:" + sql.getName());
}
}

 附上完整的pom.xml:

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.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.5.2version>
<relativePath/>
parent>
<groupId>com.automationgroupId>
<artifactId>interfacetestartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>interfacetestname>
<description>Demo project for Spring Bootdescription>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>


<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>

<dependency>
<groupId>org.testnggroupId>
<artifactId>testngartifactId>
<version>6.10version>
dependency>

<dependency>
<groupId>com.relevantcodesgroupId>
<artifactId>extentreportsartifactId>
<version>2.41.1version>
dependency>
<dependency>
<groupId>com.vimalselvamgroupId>
<artifactId>testng-extentsreportartifactId>
<version>1.3.1version>
dependency>
<dependency>
<groupId>com.aventstackgroupId>
<artifactId>extentreportsartifactId>
<version>3.0.6version>
dependency>

<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.32version>
dependency>

<dependency>
<groupId>org.apache.poigroupId>
<artifactId>poiartifactId>
<version>4.1.0version>
dependency>
<dependency>
<groupId>org.apache.poigroupId>
<artifactId>poi-ooxmlartifactId>
<version>4.1.0version>
dependency>

<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.2.0version>
dependency>

<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>

<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>

dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>

plugin>

<plugin>
<groupId>org.mybatis.generatorgroupId>
<artifactId>mybatis-generator-maven-pluginartifactId>
<version>1.4.0version>
plugin>
plugins>
build>
project>

 

参考文章:

https://blog.csdn.net/q736317048/article/details/110284582

https://www.jianshu.com/p/28d6d9a56b62


原文链接:https://www.cnblogs.com/li-cw/p/15791467.html



推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
马婷婷0514_761
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有