文章目录
- 一、过程
-
- 创建新项目
- 创建数据表
- 创建返回结构
- 查询函数
- 方法集成
- 访问网站
- 配置数据库
- 成功
- 二、项目代码
-
- Testlist.java
- Test1.java
- TestMapper.java
- TestService.java
- testmapper.xml
- application.properties
- 三、常见错误
-
- 数据库连接失败
- 四、总结
或许直接叫他Spring Boot连数据库会更好啊哈哈哈哈哈哈
一、过程 创建新项目
因为我们这一次要使用sql,所以重新创建一个项目吧,这次唯一不同的是,我们要额外选择几个依赖
文章图片
创建数据表
在里面随便添加一个数据就可以啦
文章图片
创建返回结构
因为我们mysql放回结构是一个list,所以我们需要定义一个新的属性来对这些值进行承接,并且属性和字段要相同,同时具备set和get方法
文章图片
查询函数
这里面的Test1就是我们之前写好的结构
文章图片
这里注意我们使用的是映射的方法,通过在.src/main/resources/mapper目录下创建一个xml文件,来作为我们方法的实现
文章图片
方法集成
因为我们到时候写Spring boot不可能只有一种函数,所以我们需要有一个类来对其进行一个集成,到时候我们通过网站访问的时候直接访问这个集成类就可以了
文章图片
访问网站
和之前一样,我们需要一个网址来访问我们的网站,来访问我们的网站,在这里我们去调用我们集成中的方法即可
文章图片
配置数据库
文章图片
文章图片
我们同时还需要在我们全局里面配置相应属性,数据库的时区,驱动配置,以及账号密码,还有我们的需要引用的xml文件
文章图片
成功
文章图片
文章图片
二、项目代码
项目结构
文章图片
Testlist.java
package com.example.test.controller;
import com.example.test.domain.Test1;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.test.service.TestService;
import javax.annotation.Resource;
import java.util.List;
@RestController
public class Testlist {
@Resource
private TestService testService;
@GetMapping("/list")
public List testlistall()
{
return testService.list();
}
}
Test1.java
package com.example.test.domain;
public class Test1 {
private Integer id;
private String name;
privateString password;
public Integer getId() {
return id;
}public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Test1{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
TestMapper.java
package com.example.test.mapper;
import com.example.test.domain.Test1;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface TestMapper {
public List findall();
}
TestService.java
package com.example.test.service;
import com.example.test.domain.Test1;
import com.example.test.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TestService {
@Autowired
private TestMapper testMapper;
public List list(){
return testMapper.findall();
}
}
testmapper.xml
="findall" resultType="com.example.test.domain.Test1">
select `id`, `name`, `password` from `account`
application.properties
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring?characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:/mapper/**/*.xml
三、常见错误 数据库连接失败 1.配置问题
如果我们右边框框的数据库连接成功,但是运行的时候显示连接错误,请检查
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring?........
spring有没有改成我们自己的数据库,以及端口号是否正确
文章图片
2. 驱动版本问题
可能有一些宝的my sql版本比较低,对于太新的驱动不适应
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary
在mysql5中jdbc的驱动是
com.mysql.jdbc.Driver
而mysql6以及以上是
com.mysql.cj.jdbc.Driver
3.时区配置错误,请重新复制时区
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/你的数据库名?characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true
4.xml配置错误
文章图片
四、总结 相对来说,只要我们搞懂里面的逻辑就不是很难了,基本就是这几步
1.写好相关表的结构(方便后续放回值)
2.写我们要实现的方法(这里注意我们是采用xml来实现的)
3.将我们写好的方法添加到所有的方法集合里面(方便后续调用)
4.写好我们控制类,在我们的方法集合里面选择要使用的方法
【Spring|小唐开始学 Spring Boot——(3)利用mybatis访问数据表】层层相扣,而我们用户使用的就恰恰相反,在我们的控制类里面选择所有的方法集合里面的要调用方法,然后自顶向下去推。其他的配置那一块,基本都有文件和数据给我们了,问题不是很大。
推荐阅读
- SpringBoot MongoDB批量删除指定日期前的文件
- [架构]|如何全面了解一个JAVA应用
- Java|maven tomcat10 servlet api 不兼容 包名javax变成jakarta 实例化Servlet类 异常
- Java|网易24周年,竟拿出内部进阶必备的网络协议笔记,给程序员发福利
- Java|又一款 Nginx 管理可视化神器,通过界面完成配置监控
- Java|Keycloak简单几步实现对Spring Boot应用的权限控制
- java|Kali Linux 2021.3 的新改进 | Linux 中国
- javaWeb|redis错误总结
- LeetCode|LeetCode 2028. 找出缺失的观测数据题解