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

  

  

 

 

 

原文地址:https://www.cnblogs.com/galibujianbusana/p/11108525.html

时间: 2024-10-24 22:04:46

Spring boot MyBatis基本操作的相关文章

spring boot + mybatis + druid

因为在用到spring boot + mybatis的项目时候,经常发生访问接口卡,服务器项目用了几天就很卡的甚至不能访问的情况,而我们的项目和数据库都是好了,考虑到可能时数据库连接的问题,所以我打算引入数据池,引入数据池的时候找来找去,比较了当前两个最火的数据池,阿里的druid和HikariCP,比来比去选了阿里的druid,虽然spring boot默认不支持druid,而是支持HikariCP,而且HikariCP的性能更好,但是阿里功能多,就是想支持国产 实际配置: 1.首先现在下载一

【spring boot+mybatis】注解使用方式(无xml配置)设置自动驼峰明明转换(),IDEA中xxDao报错could not autowire的解决方法

最近使用spring boot+mybatis,使用IntelliJ IDEA开发,记录一些问题的解决方法. 1.在使用@Mapper注解方式代替XXmapper.xml配置文件,使用@Select等注解配置sql语句的情况下,如何配置数据库字段名到JavaBean实体类属性命的自动驼峰命名转换? 使用spring boot后,越来越喜欢用注解方式进行配置,代替xml配置文件方式.mybatis中也可以完全使用注解,避免使用xml方式配置mapper.(参考  springboot(六):如何优

spring boot+mybatis整合

LZ今天自己搭建了下Spring boot+Mybatis,比原来的Spring+SpringMVC+Mybatis简单好多.其实只用Spring boot也可以开发,但是对于多表多条件分页查询,Spring boot就有点力不从心了,所以LZ把Mybatis整合进去,不得不说,现在的框架搭建真的是方便.话不多说,进入正题. 一.java web开发环境搭建 网上有很多教程,参考教程:http://www.cnblogs.com/Leo_wl/p/4752875.html 二.Spring bo

spring boot+mybatis+quartz项目的搭建完整版

1. 利用spring boot提供的工具(http://start.spring.io/)自动生成一个标准的spring boot项目架构 2. 因为这里我们是搭建spring boot+mybatis+quartz架构,故在pom.xml文件中配置相关依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo

使用IDEA搭建Spring boot+Mybatis工程

简介:Spring boot只使用一个核心配置文件,取消了一系列xml配置,甚至连web.xml都没有,全部使用注解的方式完成WEB层的功能.框架内置Tomcat服务器,运行启动类中的Main函数即可启动. 下面就来搭建Spring boot+Mybatis工程 新建工程 勾上web,其他的不用 Finish 完善一下目录结构: 在pom.xml配置所有相关的依赖: 1 <?xml version="1.0" encoding="UTF-8"?> 2 &

Spring Boot + MyBatis + Thymeleaf实现简单留言板应用

Spring Boot + MyBatis + Thymeleaf实现简单留言板应用 本项目主要介绍使用Spring Boot + MyBatis + Thymeleaf + Bootstrap来实现一个简单的增删改查(CRUD)留言板应用.高阶人士可以直接跳过. 源代码:https://github.com/qingwenwei/spring-boot-crud-example 功能介绍 发表帖子.帖子列表 编辑帖子 使用Spring Initializr构建项目 Spring Initial

详解spring boot mybatis全注解化

本文重点介绍spring boot mybatis 注解化的实例代码 1.pom.xml //引入mybatis <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> //

【转】spring boot mybatis 读取配置文件

spring boot mybatis 配置整理 一.加载mybatis的配置 1.手写配置,写死在代码里 import java.io.IOException; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ibatis.

[转] Druid简介(Spring Boot + Mybatis + Druid数据源【自己定制】)

Druid的简介Druid是一个非常优秀的数据库连接池.在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss DataSource. Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验. Druid是一个JDBC组件,它包括三个部分: 基于Filter-Chain模式的插件体系. DruidDataSource 高效可管理的数据库连接池. SQLParser Druid的功能兼容DBCPDruid提