zoukankan      html  css  js  c++  java
  • springboot整合mybatis

    1.pom文件添加依赖

         <!--mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.35</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.0</version>
            </dependency>

    2.在application.yml中配置数据库连接信息

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
        type: com.zaxxer.hikari.HikariDataSource
        username: root
        password: 123456
    
    mybatis:
      mapper-locations: classpath:mapper/*mapper.xml   #读取mapper配置
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  #打印sql语句
    logging:
      level:
        root: DEBUG    #配置日志级别
        org.springframework: DEBUG
        org.mybatis: DEBUG
    
    

    3.启动类添加注解,指定接口扫描类

    @MapperScan("com.zp.demozp.dao")
    package com.zp.demozp;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.stereotype.Repository;
    
    //指定mybatis接口扫描类
    //@MapperScan(basePackages = "com.zp.demozp.dao",annotationClass = Repository.class)
    @MapperScan("com.zp.demozp.dao")
    @SpringBootApplication
    public class DemozpApplication {
    
        public static void main(String[] args) {
            System.out.println("hello world!");
            SpringApplication.run(DemozpApplication.class, args);
        }
    
    }

    4.代码编写

    目录结构

    controller代码:

     1 package com.zp.demozp.controller;
     2 
     3 import com.zp.demozp.domain.UserDomain;
     4 import com.zp.demozp.service.UserService;
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
     7 import org.springframework.web.bind.annotation.*;
     8 
     9 
    10 @RestController
    11 @EnableAutoConfiguration
    12 @RequestMapping("/user")
    13 public class UserController {
    14 
    15     @Autowired
    16     private UserService userService;
    17 
    18     /**
    19      * 根据id获取信息
    20      * @param id
    21      * @return
    22      */
    23     @RequestMapping(value = "/getUserById",method = RequestMethod.GET)
    24     public String getUserById(@RequestParam int id){
    25         return userService.getUserById(id);
    26     }
    27 
    28     /**
    29      * 添加用户
    30      * @param userDomain
    31      * @return
    32      */
    33     @RequestMapping(value = "/add",method = RequestMethod.POST)
    34     public int addUser(@RequestBody UserDomain userDomain){
    35         return userService.addUser(userDomain);
    36     }
    37 }

    service代码:

     1 package com.zp.demozp.service;
     2 
     3 import com.zp.demozp.domain.UserDomain;
     4 
     5 
     6 public interface UserService{
     7     public String getUserById(int id);
     8 
     9     public int addUser(UserDomain userDomain);
    10 }

    serviceImpl代码:

    package com.zp.demozp.service.impl;
    
    import com.zp.demozp.dao.UserDao;
    import com.zp.demozp.domain.UserDomain;
    import com.zp.demozp.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserServiceImpl implements UserService {
        @Autowired
        private UserDao userDao;
    
        /**
         *
         * @param id
         * @return
         */
        @Override
        public String getUserById(int id) {
            UserDomain user = userDao.getUserById(id);
            return user.getName();
        }
    
        @Override
        public int addUser(UserDomain userDomain) {
    
            return userDao.insertUser(userDomain);
        }
    }

    domain代码:

    package com.zp.demozp.domain;
    
    
    public class UserDomain {
        private int id;  //id
        private  String name;  //姓名
        private int age;       //年龄
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }

    dao代码:

    package com.zp.demozp.dao;
    
    import com.zp.demozp.domain.UserDomain;
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;
    //使用maper和repisitory都可以
    //@Repository
    @Mapper
    public interface UserDao {
      /**
       * 添加一条用户信息
       * @param userDomain
       * @return
       */
      public int insertUser(UserDomain userDomain);
    
      /**
       * 根据id获取用户信息
       * @param id
       * @return
       */
      public  UserDomain getUserById(int id);
    
    }
    mappwer文件
    <?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.zp.demozp.dao.UserDao">
        <!--根据id获取用户信息-->
        <select id="getUserById" resultType="com.zp.demozp.domain.UserDomain">
            select * from users where id = #{id}
        </select>
        <!--添加一条用户信息-->
        <insert id="insertUser">
            insert into users(name,age) values(#{name},#{age})
        </insert>
    </mapper>
     5.测试
    添加:

    查询:

     
     
  • 相关阅读:
    python--模块
    python--*args与**kw
    python--偏函数
    Reversible Cards ARC111 -B 思维,图论
    Simple Math ARC111
    状压DP详解(位运算)
    E
    Ball CodeForces
    Reward HDU
    Choosing Capital for Treeland CodeForces
  • 原文地址:https://www.cnblogs.com/zhangpeng8888/p/10745511.html
Copyright © 2011-2022 走看看