springboot_mybatis

mybatis

  • 引入啓動器

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>
    
  • 添加數據源與連接池

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    
    
  • yml配置

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        username: root
        password: 990801lxq
        url: jdbc:mysql://localhost:3306/mybage?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    
    
    mybatis:
      configuration:
        map-underscore-to-camel-case: true  #開啓駝峯命名
      type-aliases-package: cn.guoke.pojo   #別名
      mapper-locations: mapper/*.xml        #xml
    
    
  • 配置掃描接口

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

使用通用Mapper操作數據庫

  • 引入Mapper

    在引入通用mapper後數據庫與mybatis就不需要引入了 ,只需要引入數據庫驅動就可以了,且會開啓駝峯命名

    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.1.5</version>
    </dependency>
    
    
  • 數據庫驅動

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    
    
  • 編寫實體類

    package cn.guoke;
    
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
        private String id;
        private String name;
        private String pwd;
    }
    
    
  • 編寫接口繼承Mapper

    package cn.guoke.mapper;
    
    
    import cn.guoke.User;
    import tk.mybatis.mapper.common.Mapper;
    
    public interface UserMapper extends Mapper<User> {
    
    }
    
    
  • 在啓動處修改import tk.mybatis.spring.annotation.MapperScan;

    package cn.guoke;
    
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import tk.mybatis.spring.annotation.MapperScan;
    
    @SpringBootApplication
    @MapperScan("cn.guoke.mapper")
    public class Springboot2Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Springboot2Application.class, args);
        }
    
    }
    
    
  • 使用通用Mapper的常用註解

    • @Table(name = "user") 表名
    • @Id 主鍵
    • @KeySql(useGeneratedKeys = true) 自增
    • @Transient 不是sql的字段
  • test

    package cn.guoke;
    
    
    import cn.guoke.mapper.UserMapper;
    import cn.guoke.pojo.User;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class Test {
    
        @Autowired
        private UserMapper userMapper;
    
        @org.junit.Test
        public void test_01(){
            User user = userMapper.selectByPrimaryKey(1);
            System.out.println(user);
        }
    }
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章