zoukankan      html  css  js  c++  java
  • springboot集成mybatis

    一前提说明

    1. 熟悉maven构建项目
    2. 熟悉spring,mybatis,原理
    3. 本文使用idea工具开发
    4. 熟悉yml语法格式
    5. 熟悉mysql数据库和其他链接操作工具
    6. 熟悉http resful 设计风格
    7. 会使用postman或者类似调试工具
    8. 只是入门级别,实际生产情况根据不同公司架构稍有不同。
    9. 数据库mysql5.6.0
    10. 本次演示集成mybatis注解版

    二pom.xml

       <!-- springboot parent  -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.1.RELEASE</version>
            <relativePath/> 
        </parent>
            <dependencies>
            <!-- web启动器集成tomcat spring-core sl4j日志 自动配置 spring常用注解等-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.1.1.RELEASE</version>
            </dependency>
            <!-- mybatis集成springboot  -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.0</version>
            </dependency>
            <!-- mysql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.13</version>
            </dependency>
        </dependencies>
    

    三在resource目录下创建 application.yml配置文件

    server:
      port: 8082 #指定端口
    spring:
      application:
        name: mybatis-annotation #应用名称
      datasource: #数据源
        url: jdbc:mysql://192.168.0.106:3306/springboot?useUnicode=true&characterEncoding=utf-8
        username: root #账号
        password: 123456 #密码
        driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动
    
    mybatis:
      configuration:
        map-underscore-to-camel-case: true #开启驼峰命名法
    logging:
      level:
        com.youku1327.mybatis.mapper: debug #日志级别
    
    

    四创建包结构

    在这里插入图片描述

    五 数据库建表

    CREATE TABLE `tb_user` (
      `usre_id` bigint(255) NOT NULL AUTO_INCREMENT COMMENT '用户id',
      `user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
      `user_gender` varchar(2) DEFAULT NULL COMMENT '用户性别',
      `user_telephone` varchar(15) DEFAULT NULL COMMENT '用户电话',
      PRIMARY KEY (`usre_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    六建立用户实体

    package com.youku1327.mybatis.entity;
    
    /**
     * @Author lsc
     * @Description 用户实体
     * @Date 2019/9/20 23:58
     * @Version 1.0
     */
    public class UserEntity {
    
        // 用户id
        private Long userId;
        // 用户名称
        private String userName;
        // 用户性别
        private String userGender;
        // 用户电话
        private String userTelephone;
    
        public Long getUserId() {
            return userId;
        }
    
        public void setUserId(Long userId) {
            this.userId = userId;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getUserGender() {
            return userGender;
        }
    
        public void setUserGender(String userGender) {
            this.userGender = userGender;
        }
    
        public String getUserTelephone() {
            return userTelephone;
        }
    
        public void setUserTelephone(String userTelephone) {
            this.userTelephone = userTelephone;
        }
    }
    
    

    七编写控制层

    package com.youku1327.mybatis.controller;
    
    import com.youku1327.mybatis.entity.UserEntity;
    import com.youku1327.mybatis.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.*;
    
    
    /**
     * @Author lsc
     * @Description 控制层
     * @Date 2019/9/20 23:55
     * @Version 1.0
     */
    @RestController // 相当于 @Controller 注解 + @responseBody
    @RequestMapping("user")
    public class UserController {
    
        @Autowired
        UserService userService;
    
        @PostMapping(value = "info")
        public ResponseEntity<Integer> addUser(@RequestBody UserEntity userEntity){
            int count = userService.addUser(userEntity);
            // 返回条数
            return ResponseEntity.status(HttpStatus.OK).body(count);
        }
    
        @GetMapping("info")
        public ResponseEntity<UserEntity> getUsers(Long userId){
            UserEntity users = userService.getUsers(userId);
            return ResponseEntity.ok(users);
        }
    
        @PutMapping("info/{userId}")
        public ResponseEntity<Integer> updateUser(@RequestBody UserEntity userEntity,@PathVariable Long userId){
            int count = userService.updateUser(userEntity,userId);
            // 返回条数
            return ResponseEntity.status(HttpStatus.OK).body(count);
        }
    
        @DeleteMapping("info/{userId}")
        public ResponseEntity<Integer> delUser(@PathVariable Long userId){
            int count = userService.delUser(userId);
            return ResponseEntity.ok(count);
        }
    }
    
    

    八服务层

    package com.youku1327.mybatis.service.impl;
    
    import com.youku1327.mybatis.entity.UserEntity;
    import com.youku1327.mybatis.mapper.UserMapper;
    import com.youku1327.mybatis.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    /**
     * @Author lsc
     * @Description 用户服务层
     * @Date 2019/9/21 0:24
     * @Version 1.0
     */
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        UserMapper userMapper;
    
        @Override
        public int addUser(UserEntity userEntity) {
            int count = userMapper.addUser(userEntity);
            return count;
        }
    
        @Override
        public UserEntity getUsers(Long userId) {
            UserEntity users = userMapper.getUser(userId);
            return users;
        }
    
        @Override
        public int updateUser(UserEntity userEntity,Long userId) {
            int count = userMapper.updateUser(userEntity,userId);
            return count;
        }
    
        @Override
        public int delUser(Long userId) {
            int count = userMapper.delUser(userId);
            return count;
        }
    }
    
    

    九mapepr

    package com.youku1327.mybatis.mapper;
    
    import com.youku1327.mybatis.entity.UserEntity;
    import org.apache.ibatis.annotations.*;
    import org.springframework.stereotype.Repository;
    
    /**
     * @Author lsc
     * @Description
     * @Date 2019/9/21 0:13
     * @Version 1.0
     */
    @Mapper
    @Repository
    public interface UserMapper  {
    
        @Insert("INSERT INTO `springboot`.`tb_user`(`user_name`, `user_gender`) VALUES (#{userEntity.userName},#{userEntity.userGender})")
        int addUser(@Param("userEntity") UserEntity userEntity);
    
        @Select(" select * from `tb_user` where `user_id` = #{userId}")
        @ResultType(UserEntity.class)
        UserEntity getUser(Long userId);
    
        @Update("UPDATE `tb_user` SET user_telephone = #{userEntity.userTelephone} WHERE `user_id`=#{userId}")
        int updateUser(@Param("userEntity") UserEntity userEntity,@Param("userId") Long userId);
    
        @Delete("DELETE FROM `tb_user` WHERE `user_id`=#{userId}")
        int delUser(@Param("userId")Long userId);
    }
    
    

    十启动类

    package com.youku1327.mybatis;
    
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * @Author lsc
     * @Description springboot启动类
     * @Date 2019/9/21 0:49
     * @Version 1.0
     */
    @SpringBootApplication
    @MapperScan("com.youku1327.mybatis.mapper")
    public class MybatisAnnotationApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MybatisAnnotationApplication.class,args);
        }
    
    }
    
    

    十一测试

    get
    在这里插入图片描述
    post
    在这里插入图片描述
    put
    在这里插入图片描述
    del
    在这里插入图片描述

    十二源码地址和微信公众号

    源码在微信公众号对应文章的结尾链接,公众号更多java技术干货,学习资源等。

    在这里插入图片描述

  • 相关阅读:
    css实现图像边框的样式
    css3 实现div靠右对齐
    将div水平,垂直居中的方式
    使用vue-cli可视化的方式创建项目后如何关闭ESLint代码检测
    清楚html和css标签自带默认样式
    vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。
    python 编程
    python 错题集
    python+selenium页面自动化 元素定位实际遇到的各种问题(持续更新)
    使用Fiddle抓取IOS手机
  • 原文地址:https://www.cnblogs.com/zszxz/p/12084723.html
Copyright © 2011-2022 走看看