Spring Boot集成MyBatis实现增查删操作

 1创建maven工程

创建项目参考:https://www.cnblogs.com/sunnyyangwang/p/10399689.html

整个目录结构如下,

 

2数据库设计

创建表

CREATE TABLE `Userdemo` (

  `id` int(8) NOT NULL AUTO_INCREMENT,

  `updateTime` datetime DEFAULT NULL,

  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,

  `password` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

插入数据

INSERT INTO `Userdemo` VALUES ('20', '2019-02-19 16:28:51', 'sunny', 'sunny12345');

INSERT INTO `Userdemo` VALUES ('21', '2019-02-19 16:29:14', 'test', 'hang123');

INSERT INTO `Userdemo` VALUES ('22', '2019-01-01 16:30:16', '胡思', 'test123');

INSERT INTO `Userdemo` VALUES ('23', '2019-01-01 16:38:14', 'test', 'test');

INSERT INTO `Userdemo` VALUES ('24', '2019-02-19 16:38:27', 'test1', 'tesswv');

 3、配置项目

 

3.1 配置数据库连接

先创建src/main/resources/目录,编辑application.properties文件。

spring.datasource.url = jdbc:mysql://172.16.16.71:3306/test
spring.datasource.username = aaa
spring.datasource.password = aaa123
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10

 3.2 pom.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sunny</groupId>
    <artifactId>hello</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- Spring boot 父引用-->
    <parent>

        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </parent>

    <dependencies>
        <!-- Spring boot 核心web-->
        <dependency>

            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- mysql 数据库驱动. -->
        <dependency>

            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

 3.3 创建项目启动类Application.java

package com.sunny;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.sunny.*")
public class Application {
    public static void main(String[] args){
        //Spring应用启动起来
        SpringApplication.run(Application.class,args);

    }
}

 3.4 创建测试类Demo.java

public class Demo {
    private long id;
    private String name;
    private String password;

    private Date updateTime;

//省略getter and setter….

 

3.4 创建接口DemoMapper

public interface DemoMapper {
    @Select("select id,name from Userdemo where name = #{name}")
    public List<Demo> likeName(String name);
    @Select("select * from Userdemo where id = #{id}")
    public Demo getById(long id);
    @Select("select name from Userdemo where id = #{id}")
    public int getNameById(long id);

 

//插入并保存数据
   // @Insert("insert into Userdemo(name) values(#{name})")
   @Insert("insert into Userdemo(name,password,updateTime)    values(#{name},#{password},#{updateTime})")
   @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
   public void save(Demo demo);

  //删除并保存数据
  // @Insert("insert into Userdemo(name) values(#{name})")
  @Delete("delete from Userdemo where name = #{name}")
  public void deleteDemo(Demo demo);
}

 

3.5 创建服务类DemoService

@Service
public class DemoService {

   @Autowired
   private DemoMapper demoMapper;

   //注入过程会出现红色XXX,跟IDEA编辑器相关,不是代码报错。参考:https://www.oschina.net/question/202626_181237

   public List<Demo> likeName(String name){
     return demoMapper.likeName(name);
}
   public Demo getById(long id){
     return demoMapper.getById(id);
}

   @Transactional //添加事务
   public void save(Demo demo){
      demoMapper.save(demo);
}

   public void deleteDemo(Demo demo){
      demoMapper.deleteDemo(demo);
  }

}

 

3.5 创建访问类DemoController

加入分页PageHelper类,由于多条记录对应同一个用户名,涉及到的条目较多,需要对页面条目显示限制。

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.1.0</version>
</dependency>

 

创建分页类MybatisConfig.java

package com.sunny.config;
import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;

@Configuration
public class MybatisConfig {

    @Bean
    public PageHelper pageHelper(){
        System.out.println("MybatisConfiguration.pageHelper()");
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("OffsetAsPageNum","true");
        p.setProperty("rowBoundsWithCount","true");
        p.setProperty("reasonable","true");
        pageHelper.setProperties(p);
        return pageHelper;
    }
}

 

配置controller服务

@RestController
public class DemoController {
    @Autowired
private DemoService demoService;
@RequestMapping("/likeName")
public List<Demo> likeName(String name){
    //startPage(1,3)表示第一页,每页展示3条记录
    PageHelper.startPage(1,3);
    return demoService.likeName(name);


    //页面插入
   @RequestMapping("/save")
   public Demo save(){
      Demo demo = new Demo();
      demo.setName("test222");
      demo.setPassword("222");
      Date now = new Date();
      demo.setUpdateTime(now);
      demoService.save(demo);
      return demo;
}
//页面删除
@RequestMapping("/del")
public Demo deleteDemo(){
    Demo demo = new Demo();
    //demo.getName();
    demo.setName("test");
    demoService.deleteDemo(demo);
    return demo;
}
}

 

4启动服务

入口文件启动访问,

 

5、访问测试

浏览器访问地址:http://localhost:8080/likeName?name=test1

依次操作:插入—查询—删除—查询

插入语句

 

查询语句

 

删除语句,

 

删除之后,数据为空。

 自此,完成了springboot项目部署启动过程,可以实现增、删,查语句实现。

 

总结:操作步骤如下,

主配置文件:pom.xml

配置启动入口:App.java,

配置demo:数据持久化字段,

配置mapper:数据操作接口,

配置sevice:配置事务类,

配置controller:配置访问接口。

 

配置通用类configure:通用插件类。

posted @ 2019-02-25 10:57  wang_wei123  阅读(290)  评论(0编辑  收藏  举报