springboot 整合mybatis
- pom文件
- mvc 架构
- application.properties 扩展配置,druid配置类
项目地址:
https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-mybatis-05
pom文件
<!--整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version></dependency><!-- druid数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.21</version></dependency><!-- 官方提供 jdbc用来连接数据库 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- springboot 集成mvc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 连接数据库的mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--lombok 用于实体类的set/get 构造方法--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
mvc 架构
- 实体类
package cn.bitqian.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** @author echo lovely* @date 2020/10/25 10:11*/
@Data // set/get
@NoArgsConstructor // 无参
@AllArgsConstructor // 有参
public class Users {private Integer userId;private String userName;private String userPassword;}
- 基本的curd
package cn.bitqian.mapper;import cn.bitqian.entity.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;import java.util.List;/*** user mapper* @author echo lovely* @date 2020/10/25 10:18*/
@Mapper // mybatis映射类
@Repository
public interface UsersMapper {List<Users> queryAllUsers();Users queryUserById(int userId);void addUser(Users users);void updateUser(Users users);void deleteUserById(int usersId);}
- usersMapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bitqian.mapper.UsersMapper"><select id="queryAllUsers" resultType="Users">select * from users1</select><select id="queryUserById" resultType="Users" parameterType="int">select * from users1 where userId = #{userId}</select><insert id="addUser" parameterType="Users">insert into users1 (userId, userName, userPassword) values (null, #{userName}, #{userPassword})</insert><update id="updateUser" parameterType="Users">update users1 set userName = #{userName}, userPassword = #{userPassword} where userId = #{userId}</update><delete id="deleteUserById" parameterType="Users">delete from users1 where userId = #{userId}</delete>
</mapper>
- controller接口 restful风~
package cn.bitqian.controller;import cn.bitqian.entity.Users;
import cn.bitqian.mapper.UsersMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author echo lovely* @date 2020/10/25 11:00*/
@RestController
public class UsersController {@Autowiredprivate UsersMapper usersMapper;@GetMapping(value = "/users")public List<Users> queryAllUsers() {return usersMapper.queryAllUsers();}@GetMapping(value = "/user/{id}")public Users queryOneUser(@PathVariable(value = "id") Integer id) {return usersMapper.queryUserById(id);}@GetMapping(value = "/add")public String addUser() {Users users = new Users(null, "abcdefghi", "abc");usersMapper.addUser(users);return "ok";}@GetMapping(value = "/upd/{id}/{userName}/{userPassword}")public String updateUser(@PathVariable(value = "id") Integer id,@PathVariable(value = "userName") String userName,@PathVariable(value = "userPassword") String userPassword) {Users users = new Users(id, userName, userPassword);usersMapper.updateUser(users);return "ok";}@GetMapping(value = "/del/{id}")public String deleteUser(@PathVariable(value = "id") Integer id) {usersMapper.deleteUserById(id);return "ok";}}
application.properties 扩展配置,druid配置类
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_study?serverTimezone=GMT
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.filters=wall# mybatis 配置
# 别名
mybatis.type-aliases-package=cn.bitqian.entity
# mybatis 配置文件 要扫描的路径
mybatis.mapper-locations=classpath:mapper/*.xml
package cn.bitqian.config;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;
import javax.xml.crypto.Data;
import java.util.HashMap;
import java.util.Map;/*** @author echo lovely* @date 2020/10/25 11:26*/
@Configuration
public class DruidConfig {// 自动装配@ConfigurationProperties(value = "spring.datasource")@Beanpublic DruidDataSource druidDataSource() {return new DruidDataSource();}// 注册 druid监控bean@Beanpublic ServletRegistrationBean druidServlet() {ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");Map<String, String> initParameters = new HashMap<>();initParameters.put("loginUserName", "admin");initParameters.put("loginPassword", "123");initParameters.put("allow", "127.0.0.1");bean.setInitParameters(initParameters);return bean;}
}
更新,fork我的代码,使用git bash,git bash here, git clone 项目地址。