Spring boot 整合 Mybatis + Thymeleaf开发web(一)
最近工作上时间有点多,然后自己就学习了一下Spring boot,外加上Mybatis,在实际开发中都是比较常用的,所以这篇写一下SpringBoot整合Mybatis。
一、数据准备
CREATE TABLE `bookbean` ( `name` varchar(255) DEFAULT NULL, `author` varchar(255) DEFAULT NULL, `price` varchar(255) DEFAULT NULL ) INSERT INTO `bookbean` VALUES ('张三', 'ZHANGSAN', '16'); INSERT INTO `bookbean` VALUES ('李四', 'LISI', '34'); INSERT INTO `bookbean` VALUES ('王五', 'WANGWU', '43');
二、引入依赖
<?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.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <mybatis.version>3.4.5</mybatis.version> <mybatis-spring.version>1.3.1</mybatis-spring.version> <mysql.version>6.0.6</mysql.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <!-- 数据源 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
三、数据库配置文件
项目application.properties内容如下:
banner.charset=UTF-8 server.tomcat.uri-encoding=UTF-8 spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true spring.messages.encoding=UTF-8 #配置设置不同的信息名字获取不同的配置文件 #application-dev.properties:用于开发环境 #application-test.properties:用于测试环境 #application-prod.properties:用于生产环境 spring.profiles.active=dev #spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。 #如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可 logging.config=classpath:logback-spring.xml ######数据库链接配置######## spring.datasource.url=jdbc\:mysql\://127.0.0.1\:3306/aa spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 spring.datasource.maxWait=60000 mybatis.mapperLocations=classpath:mybatis/mapper/*.xml mybatis.config-location=classpath:mybatis/mybatis-config.xml
四、代码
实体类BookBean.java
public class BookBean { private String name; private String author; private String price; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } @Override public String toString() { return "BookBean [name=" + name + ", author=" + author + ", price=" + price + "]"; } public BookBean(String name, String author, String price) { super(); this.name = name; this.author = author; this.price = price; } public BookBean() { // TODO Auto-generated constructor stub } }
BookBeanMapper.java
package com.example.demo.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import com.example.demo.bean.BookBean; @Mapper public interface BookBeanMapper { /** * 集合 * @return */ public List<BookBean> findBookBeanInfo(); /** * 添加 * @param bookBean * @return */ public int addBookBeanInfo(BookBean bookBean); /** * 删除 * @param id * @return */ public int delBookBeanInfo(String id); }
BookBeanService.java
package com.example.demo.service; import java.util.List; import com.example.demo.bean.BookBean; public interface BookBeanService { /** * 集合 * @return */ public List<BookBean> findBookBeanInfo(); /** * 添加 * @param bookBean * @return */ public int addBookBeanInfo(BookBean bookBean); /** * 删除 * @param id * @return */ public int delBookBeanInfo(String id); }
BookBeanServiceImpl.java
package com.example.demo.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.demo.bean.BookBean; import com.example.demo.mapper.BookBeanMapper; import com.example.demo.service.BookBeanService; @Service public class BookBeanServiceImpl implements BookBeanService{ @Autowired private BookBeanMapper bookBeanMapper; @Override public List<BookBean> findBookBeanInfo() { return bookBeanMapper.findBookBeanInfo(); } @Override public int addBookBeanInfo(BookBean bookBean) { return bookBeanMapper.addBookBeanInfo(bookBean); } @Override public int delBookBeanInfo(String id) { return bookBeanMapper.delBookBeanInfo(id); } }
TestController.java
package com.example.demo.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.example.demo.bean.BookBean; import com.example.demo.service.BookBeanService; import com.example.demo.util.JsonResult; @RestController @RequestMapping(value="/demo") public class TestController { @Autowired private BookBean bookBean; @Autowired private BookBeanService bookBeanService; @RequestMapping(value="/helloworld",produces="text/plan;charset=UTF-8") public String helloworld() { System.out.println(bookBean.toString()); return "helloworld-"+bookBean.getName()+"----"+bookBean.getAuthor()+"----"+bookBean.getPrice(); } @GetMapping("/helloworld2") public String helloworld2() { return "helloworld2"; } /** * 根据id删除用户 * @param id * @return */ @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET) public ResponseEntity<JsonResult> delete (@PathVariable(value = "id") String id){ JsonResult r = new JsonResult(); try { int ret = bookBeanService.delBookBeanInfo(id); if (ret < 0) { r.setResult(ret); r.setStatus("fail"); } else { r.setResult(ret); r.setStatus("ok"); } } catch (Exception e) { r.setResult(e.getClass().getName() + ":" + e.getMessage()); r.setStatus("error"); e.printStackTrace(); } return ResponseEntity.ok(r); } /** * 查询 * @return */ @RequestMapping(value="/find") public ResponseEntity<JsonResult> add(){ JsonResult r = new JsonResult(); try { System.out.println(1); List<BookBean> findBookBeanInfo = bookBeanService.findBookBeanInfo(); r.setResult(findBookBeanInfo); r.setStatus("ok"); } catch (Exception e) { r.setResult(e.getClass().getName() + ":" + e.getMessage()); r.setStatus("error"); e.printStackTrace(); } return ResponseEntity.ok(r); } }
JsonResult类是一个通用转json的工具类 如下:
package com.example.demo.util; /** * 通用json返回类 * @author Administrator * */ public class JsonResult { private String status = null; private Object result = null; public JsonResult status(String status) { this.status = status; return this; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Object getResult() { return result; } public void setResult(Object result) { this.result = result; } }
目录结构:
BookbeanMapper.xml
<?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.example.demo.mapper.BookBeanMapper" > <resultMap id="bookBeanMap" type="bookBean" > <result column="name" property="name" jdbcType="VARCHAR" /> <result column="author" property="author" jdbcType="VARCHAR" /> <result column="price" property="price" jdbcType="VARCHAR"/> </resultMap> <sql id="bookbean" > name,author,price </sql> <select id="findBookBeanInfo" resultMap="bookBeanMap"> select <include refid="bookbean"/> from BOOKBEAN </select> <insert id="addBookBeanInfo" parameterType="bookBean"> insert into BOOKBEAN(name,author,price) values(#{name},#{author},#{price}) </insert> <delete id="delBookBeanInfo" parameterType="string"> delete from BOOKBEAN where price = #{price} </delete> </mapper>
然后启动DemoApplication.java 打开浏览器 输入http://localhost:8081/demo/find 就出现下图
完成到这里说明springboot整合mybatis就成功了,有什么不对的地方欢迎朋友们提出建议!
版权声明:本文为博主原创文章,未经博主允许不得转载。
http://www.cnblogs.com/tangyin/p/8862687.html