Spring boot MyBatis基本操作

目录结构

数据库信息:

数据库student -> 表名 custom_user  -> 主键-> custom_id ,其他字段 cusotm_name,custom_age 

1.加入依赖

 <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
</dependency> 

pom.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.guoxw</groupId>
    <artifactId>mybatis_test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis_test</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>



    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.mybatis-config.xml (暂时没有配置具体信息)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>


</configuration>

3. mapper/custom_user.xml

<?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.guoxw.mybatis_test.mapper.CustomUserMapper">

    <select id="findById" parameterType="Integer" resultType="com.guoxw.mybatis_test.entity.CustomUser">
    select * from custom_user where custom_id =#{ value }
    </select>



    <!-- 如果这里没有传入参数,不需要定义parameter ,如果是查询涉及多表,返回类型可以直接使用map 键值对-->
    <!--  使用LinkedHashMap 可以将map中的数据按照插入顺序进行排序 -->
    <!--  #{custom_id}   传入参数,custom_id 是和map的key值对应-->
    <!-- 可以加入if 语句 -->
    <select id="findAll"  parameterType="java.util.Map" resultType="java.util.Map">

        select * from  custom_user where custom_id > #{custom_id}
        <if test="custom_age !=null">
        and  custom_age > #{custom_age}
        </if>
        <!-- select *  from custom_user1 p ,custom_user2 d where p.nage=d.name -->

    </select>


    <insert id="create" parameterType="com.guoxw.mybatis_test.entity.CustomUser">

    insert into   custom_user ( custom_name,custom_age)
    values (#{custom_name},#{custom_age})
    <!-- selectKEY 用于回填数据 keyProperty 主键  keycolume是字段名  resultType 是字段类型 order 是指定在执行sql前或后返回数据-->
    <selectKey keyProperty="custom_id" keyColumn="custom_id" resultType="Integer" order="AFTER">
        select Last_INSERT_ID()
    </selectKey>

    </insert>

    <update id="update" parameterType="com.guoxw.mybatis_test.entity.CustomUser">

    update  custom_user set custom_age = #{custom_age} where custom_id=2

    </update>

    <delete id="del" parameterType="Integer">
        delete from custom_user where custom_id=#{custom_id}
    </delete>
</mapper>

4.CustomUserMapper

public interface CustomUserMapper {

    public CustomUser findById(Integer id);

    public List<Map> findAll(Map params);


    public void create(CustomUser user);


    public void update(CustomUser user);

    public void del(Integer custom_id);

}

5.CustomUserService

@Service
public class CustomUserService {

    @Resource
    private CustomUserMapper customUserMapper;

    public CustomUser findById(Integer id){

        return customUserMapper.findById(id);

    }


    /***
     *
     * @return
     */
    public List<Map> findAll(Integer id,Integer age){
        Map params=new HashMap();
        params.put("custom_id",id);
        params.put("custom_age",age);
        return  customUserMapper.findAll(params);
    }


    @Transactional
    public void create(CustomUser user){

        customUserMapper.create(user);

    }

    @Transactional
    public void update(CustomUser user){

        customUserMapper.update(user);

    }

    @Transactional
    public void del(Integer custom_id){

        customUserMapper.del(custom_id);

    }


}

6. entity/CustomUser

public class CustomUser {

    private  Integer custom_id;

    private String custom_name;

    private Integer custom_age;

    public Integer getCustom_id() {
        return custom_id;
    }

    public void setCustom_id(Integer custom_id) {
        this.custom_id = custom_id;
    }

    public String getCustom_name() {
        return custom_name;
    }

    public void setCustom_name(String custom_name) {
        this.custom_name = custom_name;
    }

    public Integer getCustom_age() {
        return custom_age;
    }

    public void setCustom_age(Integer custom_age) {
        this.custom_age = custom_age;
    }
}

  

7. CustomUserController

@RestController
@RequestMapping(path = "/get")
public class CustomUserController {

    @Resource
    CustomUserService customUserService;

    @RequestMapping(path = "/user/{id}")
    public CustomUser findById(@PathVariable("id") int id){
      return   customUserService.findById(id);

    }

    @RequestMapping(path = "/user/all",method = RequestMethod.GET)
    public List<Map>findAll(@RequestParam("custom_id") Integer custom_id, Integer custom_age){

       List<Map> list=customUserService.findAll(custom_id,custom_age);

       return list;
    }



    @RequestMapping(path = "/user/insert",method = RequestMethod.GET)
    public CustomUser  create(){
        CustomUser user=new CustomUser();
        user.setCustom_age(31);
        user.setCustom_name("guoxw_4");
        customUserService.create(user);
        return  user;

    }


    @RequestMapping(path = "/user/update",method = RequestMethod.GET)
    public CustomUser  update(){
        CustomUser user=customUserService.findById(2);
        user.setCustom_age(user.getCustom_age()*2);
        customUserService.update(user);
        return  user;

    }


    @RequestMapping(path = "/user/del",method = RequestMethod.GET)
    public String  del(Integer id){
        customUserService.del(id);
        return  "ok";

    }



}

  

8.yml  

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8
    username: root
    password: 12345678
#  jackson:
#    deserialization: true
mybatis:
  config-location: classpath:/mybatis/mybatis-config.xml
  mapper-locations: classpath:/mybatis/mapper/*.xml
logging:
  level:
    com.guoxw.mybatis_test: debug

9. code :mybatis_test

链接:https://pan.baidu.com/s/1NTf_H-n2Ch0Wwe878I84ig  密码:49ak

  

  

 

 

 

猜你喜欢

转载自www.cnblogs.com/galibujianbusana/p/11108525.html