上一篇中我们进行了相关开发环境的配置,本篇中,我们将使用IDEA创建一个Spring Boot的项目,并进行MySQL和MyBatis的相关配置,最后完成对数据库中数据的简单增删改查。
在IDEA中新建项目,选择Spring Initializr,选择jdk版本,下一步。
填写包名等,下一步。
选择依赖,这里如果没有选全要用的依赖,后续也可以在pom.xml文件中手动再添加。
填写项目名称和路径后完成,等待IDEA分析相关依赖完成后,项目创建成功,大致的项目目录如图所示。
可以在src/main/java文件夹下添加com.example.springboot.controller包,并添加HelloController类用于测试。
package com.example.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "hello,springboot";
}
}
启动项目,在浏览器http://localhost:8080/hello中可以看到如下页面。
首先在MySQL中创建一个测试数据库springboot,建立一张表tb_user,并录入几条测试信息。
回到项目中,在pom.xml中配置MySQL和MyBatis的依赖,这里注意mysql-connector-java的版本要和自己本地的MySQL版本相同,否则可能出现无法连接数据库的情况。
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>1.3.2version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.23version>
dependency>
在src/main/resources/application.properties文件中添加MySQL和MyBatis相关配置,MySQL配置中需要自行填写本地数据库的URL和root账户密码。Mybatis配置 Mapper 对应的 XML 文件路径。
# 数据源基本配置
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
# Mybatis配置
# 所有classpath下mapper文件夹中xxxDao.xml文件都会被检索
mybatis.mapper-locations=classpath:mapper/*Dao.xml
同时在启动类中添加Mapper扫描@MapperScan,Spring Boot 启动的时候会自动加载包路径下的 Mapper 。
package com.example.springboot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.example.springboot.dao")
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
新建包com.example.springboot.entity存放实体类User
package com.example.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;
}
}
新建包com.example.springboot.dao存放 UserDao 接口,并定义增删改查四个接口:
package com.example.springboot.dao;
import com.example.springboot.entity.User;
import java.util.List;
/**
* MyBatis 测试
*/
public interface UserDao {
/**
* 返回数据列表
*
* @return
*/
List<User> findAllUsers();
/**
* 添加
*
* @param User
* @return
*/
int insertUser(User User);
/**
* 修改
*
* @param User
* @return
*/
int updUser(User User);
/**
* 删除
*
* @param id
* @return
*/
int delUser(Integer id);
}
在src/main/resources中新建mapper文件夹,文件夹中新建UserDao.xml文件。
<mapper namespace="com.example.springboot.dao.UserDao">
<resultMap type="com.example.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.example.springboot.entity.User">
insert into tb_user(name,password)
values(#{name},#{password})
insert>
<update id="updUser" parameterType="com.example.springboot.entity.User">
update tb_user
set
name=#{name},password=#{password}
where id=#{id}
update>
<delete id="delUser" parameterType="int">
delete from tb_user where id=#{id}
delete>
mapper>
最后,我们在controller包中新建MyBatisController类,接收增删改查的请求。在这里我们统一使用get请求,通过URL参数来完成增删改查,仅为测试使用。
package com.example.springboot.controller;
import com.example.springboot.dao.UserDao;
import com.example.springboot.entity.User;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
public class MyBatisController {
@Resource
UserDao userDao;
// 查询所有记录
@GetMapping("/users/mybatis/queryAll")
public List<User> queryAll() {
return userDao.findAllUsers();
}
// 新增一条记录
@GetMapping("/users/mybatis/insert")
public Boolean insert(String name, String password) {
if (StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {
return false;
}
User user = new User();
user.setName(name);
user.setPassword(password);
return userDao.insertUser(user) > 0;
}
// 修改一条记录
@GetMapping("/users/mybatis/update")
public Boolean insert(Integer id, String name, String password) {
if (id == null || id < 1 || StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {
return false;
}
User user = new User();
user.setId(id);
user.setName(name);
user.setPassword(password);
return userDao.updUser(user) > 0;
}
// 删除一条记录
@GetMapping("/users/mybatis/delete")
public Boolean insert(Integer id) {
if (id == null || id < 1) {
return false;
}
return userDao.delUser(id) > 0;
}
}
最终的项目目录如图所示
至此,可以启动项目。
http://localhost:8080/users/mybatis/queryAll 查看表中所有的记录,与之前数据库中数据吻合。
http://localhost:8080/users/mybatis/insert?name=mybatis1&password=1233333 新增一条记录
http://localhost:8080/users/mybatis/update?id=2&name=mybatis2&password=2222 修改id为2的记录
http://localhost:8080/users/mybatis/delete?id=1 删除id为1的记录
再次查询所有记录,结果正确。
本篇是系列的第二篇,主要记录了IDEA中新建Spring Boot项目,集成MySQL和MyBatis配置,最终实现简单的对数据库增删改查的操作。下一篇中预计将探讨 Mybatis Generator 插件以及Spring Boot的事件处理。