数据库配置 application.properties

# datasource config

spring.datasource.url=jdbc:mysql://localhost:3306/lou_springboot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=GMT

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.username=root

spring.datasource.password=123456

测试类检查是否连接成功

@RunWith(SpringRunner.class)

@SpringBootTest

public class ApplicationTests {

// 注入数据源对象

@Autowired

private DataSource dataSource;

@Test

public void datasourceTest() throws SQLException {

// 获取数据源类型

System.out.println("默认数据源为:" + dataSource.getClass());

// 获取数据库连接对象

Connection connection = dataSource.getConnection();

// 判断连接对象是否为空

System.out.println(connection != null);

connection.close();

}

}

可以看到默认数据源是 hikari

Spring boot 配置hikari mysql_spring boot

springboot操作数据库

@RestController

public class JdbcController {

//自动配置,因此可以直接通过 @Autowired 注入进来

@Autowired

JdbcTemplate jdbcTemplate;

// 查询所有记录

@GetMapping("/users/queryAll")

public List<Map<String, Object>> queryAll() {

List<Map<String, Object>> list = jdbcTemplate.queryForList("select \* from tb\_user");

return list;

}

// 新增一条记录

@GetMapping("/users/insert")

public Object insert(String name, String password) {

if (StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {

return false;

}

jdbcTemplate.execute("insert into tb\_user(\`name\`,\`password\`) value (\\"" + name + "\\",\\"" + password + "\\")");

return true;

}

}

插入成功

Spring boot 配置hikari mysql_spring_02

查询成功

Spring boot 配置hikari mysql_spring_03

springboot继承mybatis

示例代码

Spring Boot 整合 MyBatis 时几个比较需要注意的配置参数:

  • mybatis.config-location

配置 mybatis-config.xml 路径,mybatis-config.xml 中配置 MyBatis 基础属性,如果项目中配置了 mybatis-config.xml 文件需要设置该参数

  • mybatis.mapper-locations

配置 Mapper 文件对应的 XML 文件路径

  • mybatis.type-aliases-package

配置项目中实体类包路径

mybatis.config-location=classpath:mybatis-config.xml

mybatis.mapper-locations=classpath:mapper/*Dao.xml

mybatis.type-aliases-package=com.lou.springboot.entity

在启动类中添加对 Mapper 包扫描 @MapperScan,Spring Boot 启动的时候会自动加载包路径下的 Mapper 接口:

@SpringBootApplication

@MapperScan(“com.lou.springboot.dao”) //添加 @Mapper 注解

public class Application {

public static void main(String\[\] args) {

System.out.println("启动 Spring Boot...");

SpringApplication.run(Application.class, args);

}

}

①.编写数据库实体类 User

注意类名和字段名要和数据库完全一致才能对应上去

package com.lou.springboot.entity;

public class User {

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;

}

}

②.编写接口

dao 包中新建 UserDao 接口,并定义增删改查四个接口:

public interface UserDao {

List<User> findAllUsers();//返回数据列表

int insertUser(User User);//添加

int updUser(User User);//修改

int delUser(Integer id);//删除

}

③.编写 Mapper 实现接口

resources/mapper 目录下新建 Mapper 接口的映射文件 UserDao.xml ,之后进行映射文件的编写。

1.首先,定义映射文件与 Mapper 接口的对应关系,比如该示例中,需要将 UserDao.xml 的与对应的 UserDao 接口类之间的关系定义出来:

2.之后,配置表结构和实体类的对应关系:

<result property="id" column="id"/>

<result property="name" column="name"/>

<result property="password" column="password"/>

3.最后,针对对应的接口方法,编写具体的 SQL 语句, 最终 的 UserDao.xml 文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<mapper namespace="com.lou.springboot.dao.UserDao">

<resultMap type="com.lou.springboot.entity.User" id="UserResult">

<result property="id" column="id"/>

<result property="name" column="name"/>

<result property="password" column="password"/>

</resultMap>

<select id="findAllUsers" resultMap="UserResult">

select id,name,password from tb\_user

order by id desc

</select>

<insert id="insertUser" parameterType="com.lou.springboot.entity.User">