zoukankan      html  css  js  c++  java
  • 【spring-boot】mybatis 使用入门

     新建项目

    设置项目名称

    设置为Web项目

    工程初始化

     目录结构

    相关配置文件修改 

    配置pom.xml文件

     1.修改pom.xml文件,添加mybatis配置

    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    </dependency>

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

    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    </dependency>

    配置application.yml文件

    2.修改配置文件 application.properties 为application.yml

    server:
      port: 8050
      servlet:
        context-path: /springboot
    
    mybatis:
      # 对应实体类的包名
      type-aliases-package: com.example.mybatisdemo.pojo
      # mapper.xml文件
      mapper-locations: classpath:mybatis/mapper/*.xml
      config-location: classpath:mybatis/mybatis-config.xml
    
    
    spring:
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/komo?characterEncoding=utf-8
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver   

    配置数据库

    3.数据库中新建表:

    CREATE TABLE `t_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增',
      `username` varchar(128) NOT NULL COMMENT '用户名',
      `password` varchar(64) NOT NULL COMMENT '密码',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

    配置启动文件

    MybatisDemoApplication.java

    package com.example.mybatisdemo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.example.mybatisdemo.mapper")
    public class MybatisDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MybatisDemoApplication.class, args);
        }
    
    }

     

    添加相关文件

    1.新建UserMapper.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.example.mybatisdemo.mapper.UserMapper">

    <resultMap id = "result" type = "com.example.mybatisdemo.pojo.User">
    <result property = "id" column = "id"/>
    <result property = "username" column = "username"/>
    <result property = "password" column = "password"/>
    </resultMap>

    <sql id="column_list" >
    id, username, password
    </sql>

    <!-- 查询-->
    <select id = "findOne" resultMap = "result">
    SELECT <include refid="column_list"></include>
    FROM t_user WHERE id = #{id}
    </select>

    <insert id="insert" useGeneratedKeys="true" keyProperty="id">
    insert into t_user(username, password) values (#{username}, #{password})
    </insert>

    <update id="update">
    update t_user set username=#{username}, password=#{password} where id = #{id}
    </update>

    <delete id="delete">
    delete from t_user where id = #{id}
    </delete>

    </mapper>

    2.新建pojo/User.java

    package com.example.mybatisdemo.pojo;
    
    import lombok.Data;
    
    /**
     * @author komiles@163.com
     * @date 2020-03-22 19:54
     */
    @Data
    public class User {
    
        private Integer id;
    
        private String username;
    
        private String password;
    }

    3.新建mapper/UserMapper.java

    package com.example.mybatisdemo.mapper;

    import com.example.mybatisdemo.pojo.User;
    import org.apache.ibatis.annotations.Mapper;

    /**
    * @author komiles@163.com
    * @date 2020-03-22 19:57
    */
    @Mapper
    public interface UserMapper {
    User findOne(Integer id);
    }
    4.新建service/UserService.java
    package com.example.mybatisdemo.mapper;

    import com.example.mybatisdemo.pojo.User;
    import org.apache.ibatis.annotations.Mapper;

    /**
    * @author komiles@163.com
    * @date 2020-03-22 19:57
    */
    @Mapper
    public interface UserMapper {
    User findOne(Integer id);
    }
    5.新建service/impl/UserServiceImpl.java
    package com.example.mybatisdemo.service.impl;

    import com.example.mybatisdemo.mapper.UserMapper;
    import com.example.mybatisdemo.pojo.User;
    import com.example.mybatisdemo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    /**
    * @author komiles@163.com
    * @date 2020-03-22 21:48
    */
    @Service
    public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User userInfo(Integer id) {
    return userMapper.findOne(id);
    }
    }
    6.新建controller/TestController.java
    package com.example.mybatisdemo.controller;

    import com.example.mybatisdemo.dto.UserDTO;
    import com.example.mybatisdemo.pojo.User;
    import com.example.mybatisdemo.service.impl.UserServiceImpl;
    import org.springframework.beans.BeanUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;

    /**
    * @author komiles@163.com
    * @date 2020-03-22 21:56
    */
    @RestController
    @RequestMapping("/test")
    public class TestController {

    @Autowired
    private UserServiceImpl userService;


    @GetMapping("/userInfo")
    public User getUserInfo(@RequestParam(value = "user_id", defaultValue = "0") Integer id){

    User userInfo = userService.userInfo(id);
    if(userInfo == null) {
    return null;
    }
    return userInfo;
    }

    运行项目

    1.访问地址:http://127.0.0.1:8050/springboot/test/userInfo?user_id=1
    前端展示

     

     数据库:

    需要注意的点

    1.pom.xml文件需要引入mysql-connector-java、mybatis-spring-boot-start、lombok
    2.application.yml 主要正确设置mybatis文件的路径。例如:配置mapper.xml文件和config.xml文件,路径需要加上classpath:

      例如:mapper-locations: classpath:mybatis/mapper/*.xml config-location: classpath:mybatis/mybatis-config.xml

    3.application.yml 需要正确配置数据库连接
    4.启动文件需要加@MapperScan注解。例如:@MapperScan("com.example.mybatisdemo.mapper")
    5.接口文件 UserServiceImpl.java 需要加@Service注解
    6.Mapper目录的文件,需要加 @Mapper注解
    7.需要提前写pojo/User.java和mapper/UserMapper.java文件
    8.mybatis/mapper/UserMapper.xml里的配置了对应的pojo和mapper 

  • 相关阅读:
    TCP/IP报文 三次握手 四次挥手
    socket 编程
    出现线程死锁的几种情况
    类模板的写法
    【HTTP】boundary 中一个 = 导致HTTP上传文件失败
    【时间戳】 年月日 转换为时间戳
    【CSV文件】CSV文件内容读取
    std::string 的方法c_str() 和 data() 有什么区别
    [转载] C++ STL中判断list为空,size()==0和empty()有什么区别
    【SQL】glob 和 like 的区别
  • 原文地址:https://www.cnblogs.com/wangkongming/p/12548908.html
Copyright © 2011-2022 走看看