Spring Boot 集成mybatis(gradle)

来源:互联网 发布:模特接单软件 编辑:程序博客网 时间:2024/05/22 13:13

Spring Boot 集成mybatis(gradle)

  • Spring Boot 集成mybatisgradle
    • mybatis 注解方式
    • mybatis xml方式
    • 分页查询 pagehelper

mybatis 注解方式

  • 第一步:引入依赖包: build.gradle

    buildscript {    ext {        springBootVersion = '1.5.4.RELEASE'    }    repositories {        mavenCentral()    }    dependencies {        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")    }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'org.springframework.boot'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories {    mavenCentral()}dependencies {    compile('org.springframework.boot:spring-boot-starter')    testCompile('org.springframework.boot:spring-boot-starter-test')    compile 'mysql:mysql-connector-java'    //配置mybatis 数据源    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0")    testCompile('org.mybatis.spring.boot:mybatis-spring-boot-starter-test:1.3.0')    //使用 Controller 的时候需要引入 web 包    compile('org.springframework.boot:spring-boot-starter-web')}
  • 第二步:数据库连接配置 application.yml

    spring:  datasource:    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8    username: root    password: root
  • 第三步:增加包扫描 Mapper 文件,也可以在 xml 文件中配置,以下使用注解。

    @SpringBootApplication@MapperScan("com.example.demo.dao.mapper")public class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }}
  • 第四步:写 Mapper 接口,使用 mybatis 的注解

    public interface UserMapper {    @Select("select * from person where id = #{id}")    Person findByID(Integer id);    //返回的Integer值是变化的行数,@Options()会填充到实体 person 中。    @Insert("insert into person(name, age) values(#{name}, #{age})")    @Options(useGeneratedKeys = true, keyProperty = "id")    Integer addPerson(Person person);//    @Insert("insert into person(name, age) values(#{name}, #{age})")//    Integer addPerson(@Param("name") String name, @Param("age") Integer age);    @Update("update person set name = #{name}, age = #{age} where id = #{id}")    Integer updatePerson(@Param("name") String name, @Param("age") Integer age, @Param("id") int id);    @Delete("delete from person where id = #{id}")    Integer deletePerson(Integer id);    @Select("select * from person")    List<Person> findAllPage();}



mybatis xml方式

  • 第一步:引入依赖包: build.gradle

    buildscript {    ext {        springBootVersion = '1.5.4.RELEASE'    }    repositories {        mavenCentral()    }    dependencies {        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")    }}apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'org.springframework.boot'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories {    mavenCentral()}dependencies {    compile('org.springframework.boot:spring-boot-starter')    testCompile('org.springframework.boot:spring-boot-starter-test')    compile 'mysql:mysql-connector-java'    //配置mybatis 数据源    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0")    testCompile('org.mybatis.spring.boot:mybatis-spring-boot-starter-test:1.3.0')    //使用 Controller 的时候需要引入 web 包    compile('org.springframework.boot:spring-boot-starter-web')}
  • 第二步:数据库连接配置 application.yml

    spring:  datasource:    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8    username: root    password: rootmybatis:    type-aliases-package: org.larry.springboot.entity    mapper-locations: classpath:mapper/**/*.xml    check-config-location: true
  • 第三步:配置包扫描 Mapper 文件 Application.java

    @SpringBootApplication@MapperScan("com.example.demo.mapper")public class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}
  • 第四步:测试代码

    创建model 和 Mapper 文件用于测试,但是可以使用 generator 自动生成。

    public class User {    private Integer id;    private String name;    public User(Integer id, String name) {        this.id = id;        this.name = name;    }    public User() {        super();    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name == null ? null : name.trim();    }}
    public interface UserMapper {    long countByExample(UserExample example);    int deleteByExample(UserExample example);    int deleteByPrimaryKey(Integer id);    int insert(User record);    int insertSelective(User record);    List<User> selectByExample(UserExample example);    User selectByPrimaryKey(Integer id);    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);    int updateByExample(@Param("record") User record, @Param("example") UserExample example);    int updateByPrimaryKeySelective(User record);    int updateByPrimaryKey(User record);    @Select("select * from user")    List<User> findAll();}
    @RestControllerpublic class UserContorller {    @Autowired    private UserMapper userMapper;    @RequestMapping("/insert")    public User insertUser() {        User user = new User(null, "inke");        userMapper.insert(user);        return user;    }    @RequestMapping("/findAll")    public List<User> findAll() {        return userMapper.findAll();    }}



分页查询 pagehelper

  • 第一步:引入依赖包: build.gradle

    dependencies {    compile('org.springframework.boot:spring-boot-starter')    testCompile('org.springframework.boot:spring-boot-starter-test')    compile 'org.springframework.boot:spring-boot-devtools'    compile 'mysql:mysql-connector-java'    //配置mybatis 数据源    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0")    testCompile('org.mybatis.spring.boot:mybatis-spring-boot-starter-test:1.3.0')    //pagehelper    compile("com.github.pagehelper:pagehelper-spring-boot-starter:1.1.1")    //mapper 使用 xml 的 mybatis 方式,需要引入下面的包,不然 dev-tools 会报错    //compile("tk.mybatis:mapper-spring-boot-starter:1.1.1")}
  • 第二步:数据库连接配置 application.yml

    server:  port: 9010spring:  datasource:    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8    username: root    password: rootmybatis:    type-aliases-package: tk.mybatis.springboot.model    mapper-locations: classpath:mapper/*.xml#mapper:#    mappers:#        - tk.mybatis.springboot.util.MyMapper#    not-empty: false#    identity: MYSQLpagehelper:    helperDialect: mysql    reasonable: true    supportMethodsArguments: true    params: count=countSql
  • 第三步:测试代码

    @Testpublic void testFindAllPage() {   // startPage(pageNum, pageSize);   PageHelper.startPage(1, 3);   List<Person> persons = userMapper.findAllPage();   System.out.println("findAllPage:" + persons);   PageInfo<Person> pageInfo = new PageInfo<>(persons);   System.out.println("pageInfo:" + pageInfo);   //获取返回的数据   List<Person> lists = pageInfo.getList();   for (Person person : lists) {       System.out.println("person:" + person);   }}