首页 > 数据库 >springboot web使用mybatis访问mysql库

springboot web使用mybatis访问mysql库

时间:2023-10-31 23:44:51浏览次数:35  
标签:INFO web 00 springboot 10 --- mysql hc resources

思想:

重点:spring boot项目可以配置mybatis必须的内容。默认配置文件为“main/resources/application.properties”(yml为其另一种写法,感兴趣自己去查)

一切编码跟普通的mybatis相同。

注意:

xml文件最好放在资源文件夹resources下面,以便编译时直接复制。

由此引起需要在springboot项目配置文件下指定mapper文件夹位置,详见操作。


操作:

1、官网新建项目:

主要目录结构如下:

 2、编写项目配置文件"application.properties"

 1 # JDBC 驱动
 2 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 3 # JDBC URL
 4 spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:xxxx/d1?useSSL=false
 5 # 用户名
 6 spring.datasource.username=root
 7 # 密码
 8 spring.datasource.password=xxxxxxxx
 9 #mapper资源文件
10 mybatis.mapper-locations=classpath:map/*.xml
11 #实体文件位置。因mapper文件中都使用了全限定名,故可以没有。
12 #mybatis.type-aliases-package=hc.entity

前面都好理解。

第10行:编译以后,资源文件夹下的“map文件夹及其内容”会被复制到“target\classes”下面,故需要指定编译后mapper文件的位置。

3、编写实体文件、表操作接口、表操作实现。

实体文件t1.java:

1 package hc.entity;
2 
3 public class t1 {
4     public String xm;
5     public int nl;
6 }

表操作接口t1Mapper.java:

1 package hc.data;
2 import org.apache.ibatis.annotations.Mapper;
3 
4 import hc.entity.t1;
5 @Mapper
6 public interface t1Mapper {
7     t1 getByXm(String xm);
8 }

说明:第五行的Mapper注解必不可少。它除了实现Component注解的容器注册功能,还通知mybatis需要查找实现(xml)

表操作实现t1Mapper.xml:

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4   "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <mapper namespace="hc.data.t1Mapper">
6   <select id="getByXm" resultType="hc.entity.t1">
7     select * from t1 where xm = #{xm}
8   </select>
9 </mapper>

说明:xml本质上不属于java程序,建议放在资源文件夹下,在编译时自动复制。

4、配置测试文件"C1ApplicationTests.java"

 1 package hc;
 2 
 3 import org.junit.jupiter.api.Test;
 4 import org.springframework.beans.factory.annotation.Autowired;
 5 import org.springframework.boot.test.context.SpringBootTest;
 6 
 7 import hc.data.t1Mapper;
 8 import hc.entity.t1;
 9 
10 @SpringBootTest(classes=C1Application.class)
11 class C1ApplicationTests {
12     @Autowired
13     t1Mapper tm;
14     @Test
15     void contextLoads() {
16         t1 myt1=tm.getByXm("ls");
17         System.out.println(myt1.xm);
18         System.out.println(myt1.nl);
19     }
20 
21 }

说明:第12行实现t1Mapper对象tm的自动装配, 得益于其接口java文件中的Mapper注解。

5、运行测试

 1 PS C:\Hc\1\Test1> mvn test 
 2 [INFO] Scanning for projects...
 3 [INFO] 
 4 [INFO] ------------------------------< hc:Test1 >------------------------------
 5 [INFO] Building C1 0.0.1-SNAPSHOT
 6 [INFO]   from pom.xml
 7 [INFO] --------------------------------[ jar ]---------------------------------
 8 [INFO] 
 9 [INFO] --- resources:3.3.1:resources (default-resources) @ Test1 ---
10 [INFO] Copying 1 resource from src\main\resources to target\classes
11 [INFO] Copying 1 resource from src\main\resources to target\classes
12 [INFO] 
13 [INFO] --- compiler:3.11.0:compile (default-compile) @ Test1 ---
14 [INFO] Changes detected - recompiling the module! :source
15 [INFO] Compiling 3 source files with javac [debug release 21] to target\classes
16 [INFO] 
17 [INFO] --- resources:3.3.1:testResources (default-testResources) @ Test1 ---
18 [INFO] skip non existing resourceDirectory C:\Hc\1\Test1\src\test\resources
19 [INFO]
20 [INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ Test1 ---
21 [INFO] Changes detected - recompiling the module! :dependency
22 [INFO] Compiling 1 source file with javac [debug release 21] to target\test-classes
23 [INFO] 
24 [INFO] --- surefire:3.0.0:test (default-test) @ Test1 ---
25 [INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
26 [INFO] 
27 [INFO] -------------------------------------------------------
28 [INFO]  T E S T S
29 [INFO] -------------------------------------------------------
30 [INFO] Running hc.C1ApplicationTests
31 
32   .   ____          _            __ _ _
33  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
34 ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
35  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
36   '  |____| .__|_| |_|_| |_\__, | / / / /
37  =========|_|==============|___/=/_/_/_/
38  :: Spring Boot ::                (v3.1.4)
39 
40 2023-10-04T23:00:09.707+08:00  INFO 7968 --- [           main] hc.C1ApplicationTests                    : Starting C1ApplicationTests using Java 21 with PID 7968 (started by Morning in C:\Hc\1\Test1)
41 2023-10-04T23:00:09.710+08:00  INFO 7968 --- [           main] hc.C1ApplicationTests                    : No active profile set, falling back to 1 default profile: "default"   
42 2023-10-04T23:00:11.314+08:00  INFO 7968 --- [           main] hc.C1ApplicationTests                    : Started C1ApplicationTests in 1.916 seconds (process running for 2.825)
43 Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
44 WARNING: A Java agent has been loaded dynamically (C:\Users\Morning\.m2\repository\net\bytebuddy\byte-buddy-agent\1.14.8\byte-buddy-agent-1.14.8.jar)
45 WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
46 WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
47 WARNING: Dynamic loading of agents will be disallowed by default in a future release
48 2023-10-04T23:00:12.181+08:00  INFO 7968 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
49 2023-10-04T23:00:12.448+08:00  INFO 7968 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3de56885
50 2023-10-04T23:00:12.450+08:00  INFO 7968 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
51 ls
52 18
53 [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.537 s - in hc.C1ApplicationTests
54 [INFO] 
55 [INFO] Results:
56 [INFO]
57 [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
58 [INFO]
59 [INFO] ------------------------------------------------------------------------
60 [INFO] BUILD SUCCESS
61 [INFO] ------------------------------------------------------------------------
62 [INFO] Total time:  6.936 s
63 [INFO] Finished at: 2023-10-04T23:00:12+08:00
64 [INFO] ------------------------------------------------------------------------

在第51、52行能看到测试的输出结果。

(完)

标签:INFO,web,00,springboot,10,---,mysql,hc,resources
From: https://www.cnblogs.com/wanjinliu/p/17742893.html

相关文章

  • mysql事务
    未提交读  脏读读已提交   rc  oracle的默认级别  不可重复读 同一个sql在一个事务执行两遍读到的数据可能不同可重复读   反复执行一个sql语句,读取到的数据是相同的  有可能出现幻读  查询时候是范围查询  读到了其他事务插入或者删除的数......
  • web中静态资源和动态资源的区别
    **静态资源:**可以理解为前端的固定页面,这里面包含HTML、CSS、JS、图片等等,不需要查数据库也不需要程序处理,直接就能够显示的页面,也就是说不需要从后台通过读取数据库信息就可以将在html上的所有数据全部显示出来,他的访问数据由于是不需要从数据库拉取数据,故而访问速度很快。**动态......
  • 软件测试|MySQL SELECT语句的详细使用
    简介MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了许多功能强大的SQL查询语句,其中最常用且最重要的是SELECT语句。SELECT语句用于从数据库表中检索数据,并根据给定的条件返回所需的结果集。在本文中,我们将深入探讨MySQLSELECT语句的各个方面,并提供一些示例来说明其用......
  • 软件测试|MySQL唯一约束详解
    简介MySQL唯一约束(UniqueKey)是指所有记录中字段的值不能重复出现。MySQL中的唯一约束是一种用于确保表中某列或多列的取值唯一的数据库约束。唯一约束的作用是防止表中出现重复的值,确保数据的完整性和一致性。在本文中,我们将详细介绍MySQL中唯一约束的定义、用法以及其在数据......
  • 软件测试|MySQL 非空约束详解
    简介MySQL中的非空约束(NOTNULLConstraint)是一种用于确保表中某列不允许为空值的数据库约束。非空约束的作用是保证特定列的数据始终包含有效值,防止在插入或更新操作时出现空值,从而维护数据的完整性和一致性。在本文中,我们将详细介绍MySQL中非空约束的定义、用法以及在数据库设......
  • 软件测试|MySQL算术运算符使用详解
    简介MySQL是一种流行的开源关系型数据库管理系统,广泛用于各种应用程序和网站的数据存储和管理。在MySQL中,算术运算符是执行数学计算的特殊符号,用于处理数字类型的数据。本文将详细介绍MySQL中常用的算术运算符及其使用方法。常用算术运算符算术运算符是SQL中最基本的运算符,M......
  • 软件测试|MySQL逻辑运算符使用详解
    简介在MySQL中,逻辑运算符用于处理布尔类型的数据,进行逻辑判断和组合条件。逻辑运算符主要包括AND、OR、NOT三种,它们可以帮助我们在查询和条件语句中进行复杂的逻辑操作。本文将详细介绍MySQL中逻辑运算符的使用方法和示例。AND运算符AND运算符用于将多个条件组合起来,要求所有......
  • 软件测试|Django 入门:构建Python Web应用的全面指南
    引言Django是一个强大的PythonWeb框架,它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能,帮助您从零开始构建一个简单的Web应用。什么是Django?Django是一个基于MVC(模型-视图-控制器)设计模式的Web框架,旨在简化Web应用程序的开发过程。它由Dja......
  • 第十章、web前端架构师
    目录二十二、大型项目的编译,部署以及性能优化1、前言二十二、大型项目的编译,部署以及性能优化1、前言......
  • 欢迎使用 MWeb
    MWeb是一款功能很全面的Markdown编辑,笔记和发布软件。目前已支持macOS/iPadOS/iOS三个平台,并针对每个平台做了深度优化,macOS版的MWebPro还有静态网站生成功能。所以,MWeb算是比较复杂的软件了。因此,开始使用MWeb前,建议先阅读使用文档。请使用菜单:“帮助-使用文档”......