springboot 整合mybatis实现curd


项目地址:
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 mapper
        PUBLIC "-//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 {
    
    

    @Autowired
    private 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.DruidDataSource

spring.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")
    @Bean
    public DruidDataSource druidDataSource() {
    
    
        return new DruidDataSource();
    }

    // 注册 druid监控bean
    @Bean
    public 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 项目地址。

猜你喜欢

转载自blog.csdn.net/qq_44783283/article/details/109319217