或许直接叫他Spring Boot连数据库会更好啊哈哈哈哈哈哈
因为我们这一次要使用sql,所以重新创建一个项目吧,这次唯一不同的是,我们要额外选择几个依赖
因为我们mysql放回结构是一个list,所以我们需要定义一个新的属性来对这些值进行承接,并且属性和字段要相同,同时具备set和get方法
这里面的Test1就是我们之前写好的结构
这里注意我们使用的是映射的方法,通过在.src/main/resources/mapper目录下创建一个xml文件,来作为我们方法的实现
因为我们到时候写Spring boot不可能只有一种函数,所以我们需要有一个类来对其进行一个集成,到时候我们通过网站访问的时候直接访问这个集成类就可以了
和之前一样,我们需要一个网址来访问我们的网站,来访问我们的网站,在这里我们去调用我们集成中的方法即可
我们同时还需要在我们全局里面配置相应属性,数据库的时区,驱动配置,以及账号密码,还有我们的需要引用的xml文件
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<Test1> testlistall()
{
return testService.list();
}
}
package com.example.test.domain;
public class Test1 {
private Integer id;
private String name;
private String 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 + '\'' +
'}';
}
}
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<Test1> findall();
}
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<Test1> list(){
return testMapper.findall();
}
}
<?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.example.test.mapper.TestMapper" >
<select id="findall" resultType="com.example.test.domain.Test1">
select `id`, `name`, `password` from `account`
</select>
</mapper>
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
相对来说,只要我们搞懂里面的逻辑就不是很难了,基本就是这几步
1.写好相关表的结构(方便后续放回值)
2.写我们要实现的方法(这里注意我们是采用xml来实现的)
3.将我们写好的方法添加到所有的方法集合里面(方便后续调用)
4.写好我们控制类,在我们的方法集合里面选择要使用的方法
层层相扣,而我们用户使用的就恰恰相反,在我们的控制类里面选择所有的方法集合里面的要调用方法,然后自顶向下去推。其他的配置那一块,基本都有文件和数据给我们了,问题不是很大。