springboot-mybatis-mysql
2019-07-15 18:15
2556 查看
-
整体结构
-
pom文件
<?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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>top.heliming.mybatis</groupId> <artifactId>springboot-mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-mybatis</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <mybatis.version>1.3.2</mybatis.version> <commons-lang3.version>3.4</commons-lang3.version> <pagehelper.version>1.2.5</pagehelper.version> <druid.version>1.1.9</druid.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <!--<scope>test</scope>--> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${pagehelper.version}</version> </dependency> <!-- alibaba的druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
-
application.yml
server: port: 8080 spring: datasource: name: mysql_test type: com.alibaba.druid.pool.DruidDataSource #druid相关配置 druid: #监控统计拦截的filters filters: stat driver-class-name: com.mysql.jdbc.Driver #基本属性 url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true username: manager password: 123 #配置初始化大小/最小/最大 initial-size: 5 min-idle: 1 max-active: 20 #获取连接等待超时时间 max-wait: 60000 #间隔多久进行一次检测,检测需要关闭的空闲连接 time-between-eviction-runs-millis: 60000 #一个连接在池中最小生存的时间 min-evictable-idle-time-millis: 300000 validation-query: SELECT 'x' test-while-idle: true test-on-borrow: false test-on-return: false #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false pool-prepared-statements: false max-pool-prepared-statement-per-connection-size: 20 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: top.heliming.mybatis.springbootmybatis.pojo #pagehelper #如此配置就可使用分页功能,分页注意事项: # #在pageHelper.startpage方法后的第一条查询方法才会被分页 # #带有for update 行锁的语句,不要使用分页插件,会抛异常 pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql returnPageInfo: check
-
pojo
package top.heliming.mybatis.springbootmybatis.pojo; /** * 测试实体类 */ public class User { private Integer userId; private String userName; private String password; private Long phone; public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Long getPhone() { return phone; } public void setPhone(Long phone) { this.phone = phone; } @Override public String toString() { return "User{" + "userId=" + userId + ", userName='" + userName + '\'' + ", password='" + password + '\'' + ", phone=" + phone + '}'; } }
-
dao
package top.heliming.mybatis.springbootmybatis.dao; import org.springframework.stereotype.Repository; import top.heliming.mybatis.springbootmybatis.pojo.User; import java.util.List; @Repository public interface UserDao { int insert(User user); List<User> selectUsers(); }
-
service
package top.heliming.mybatis.springbootmybatis.service; import com.github.pagehelper.PageInfo; import top.heliming.mybatis.springbootmybatis.pojo.User; public interface UserService { int addUser(User user); PageInfo<User> findAllUser(int pageNum, int pageSize); }
-
Impl
package top.heliming.mybatis.springbootmybatis.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import top.heliming.mybatis.springbootmybatis.dao.UserDao; import top.heliming.mybatis.springbootmybatis.pojo.User; import top.heliming.mybatis.springbootmybatis.service.UserService; import java.util.List; @Service(value = "userService") public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public int addUser(User user) { return userDao.insert(user); } /* * 这个方法中用到了我们开头配置依赖的分页插件pagehelper * 很简单,只需要在service层传入参数,然后将参数传递给一个插件的一个静态方法即可; * pageNum 开始页数 * pageSize 每页显示的数据条数 * */ @Override public PageInfo<User> findAllUser(int pageNum, int pageSize) { //将参数传给这个方法就可以实现物理分页了,非常简单。 PageHelper.startPage(pageNum, pageSize); List<User> users = userDao.selectUsers(); PageInfo result = new PageInfo(users); return result; } }
-
controller
package top.heliming.mybatis.springbootmybatis.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import top.heliming.mybatis.springbootmybatis.pojo.User; import top.heliming.mybatis.springbootmybatis.service.UserService; @RestController @RequestMapping(value = "/user") public class UserController { @Autowired private UserService userService; @PostMapping("/add") public int addUser(User user) { return userService.addUser(user); } @GetMapping("/all") public Object findAllUser( @RequestParam(name = "pageNum", required = false, defaultValue = "1") int pageNum, @RequestParam(name = "pageSize", required = false, defaultValue = "10") int pageSize) { return userService.findAllUser(pageNum, pageSize); } }
-
UserMapper.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="top.heliming.mybatis.springbootmybatis.dao.UserDao" > <sql id="BASE_TABLE"> t_user </sql> <sql id="BASE_COLUMN"> userId,userName,password,phone </sql> <insert id="insert" parameterType="top.heliming.mybatis.springbootmybatis.pojo.User"> INSERT INTO <include refid="BASE_TABLE"/> <trim prefix="(" suffix=")" suffixOverrides=","> userName,password, <if test="phone != null"> phone, </if> </trim> <trim prefix="VALUES(" suffix=")" suffixOverrides=","> #{userName, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR}, <if test="phone != null"> #{phone, jdbcType=VARCHAR}, </if> </trim> </insert> <select id="selectUsers" resultType="top.heliming.mybatis.springbootmybatis.pojo.User"> SELECT <include refid="BASE_COLUMN"/> FROM <include refid="BASE_TABLE"/> </select> </mapper>
-
SpringbootMybatisApplicationTests
package top.heliming.mybatis.springbootmybatis; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class SpringbootMybatisApplicationTests { @Test public void contextLoads() { } }
-
UserControllerTest
package top.heliming.mybatis.springbootmybatis.controller; import com.github.pagehelper.PageInfo; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import top.heliming.mybatis.springbootmybatis.SpringbootMybatisApplicationTests; import top.heliming.mybatis.springbootmybatis.dao.UserDao; import top.heliming.mybatis.springbootmybatis.pojo.User; import top.heliming.mybatis.springbootmybatis.service.UserService; import static org.junit.Assert.*; public class UserControllerTest extends SpringbootMybatisApplicationTests { @Autowired private UserService userService; @Autowired private UserDao userDao; @Test public void addUser() { User user = new User(); user.setUserName("小红"); user.setPassword("000000"); user.setPhone(13490234321L); int insert = userDao.insert(user); assertEquals(insert,1); user.setUserName("小明"); user.setPassword("000000"); user.setPhone(13490234320L); insert = userDao.insert(user); assertEquals(insert,1); } @Test public void findAllUser(){ PageInfo<User> pageInfo = userService.findAllUser(0, 5); System.out.println(pageInfo); assertNotNull(pageInfo); } }
-
test.sql
/* Navicat Premium Data Transfer Source Server : manager Source Server Type : MySQL Source Server Version : 50726 Source Host : localhost:3306 Source Schema : test Target Server Type : MySQL Target Server Version : 50726 File Encoding : 65001 Date: 15/07/2019 00:44:56 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `userId` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(255) DEFAULT '', `password` varchar(255) DEFAULT '', `phone` bigint(11) DEFAULT '0', PRIMARY KEY (`userId`) ) ENGINE=InnoDB AUTO_INCREMENT=1007 DEFAULT CHARSET=utf8mb4; -- ---------------------------- -- Records of t_user -- ---------------------------- BEGIN; INSERT INTO `t_user` VALUES (1005, '小红', '000000', 13490234321); INSERT INTO `t_user` VALUES (1006, '小明', '000000', 13490234320); COMMIT; SET FOREIGN_KEY_CHECKS = 1;
相关文章推荐
- spring boot + mysql +mybatis +redis(二级缓存)实例
- SpringBoot + MyBatis + MySQL + Maven在Intellij IDEA下开发环境的搭建
- Spring Boot使用mybatis连接mysql
- spring boot mybatis js对mysql进行增删改查
- SpringBoot 2.0集成MySQL+mybatis+Druid配置
- Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之三 vue简单页面实战
- idea springBoot+mybatis+Redis+Mysql(二)
- gradle+spring-boot+mybatis(基于xml)+mysql 整合
- 基于JavaSpringboot+vue+mysql+mybatis开发项目的环境搭建
- Spring boot+mybatis+mysql
- SpringBoot + MyBatis + MySQL + Maven在Intellij IDEA下开发环境的搭建
- Spring Boot + MyBatis + MySQL 整合(2)
- springBoot2.0整合myBatis(mysql)实现基本数据库操作
- 详细步骤!!!idea+springboot+mybatis+jsp+bootstrap实现从mysql查询出数据并显示(源码)
- springboot+mybatis+mysql事务未生效
- Eclipse + Spring boot +mybatis + mysql项目搭建
- SpringBoot + MyBatis + MySQL + Maven在Intellij IDEA下开发环境的搭建
- spring boot + mybatis 多数据源,mysql服务主从读写分离
- Spring Boot2.0.3 Mybatis Sharding-jdbc3.X集成实现数据库的读写分离(一)MySql的主从配置
- Springboot Mybatis MySQL读写分离及事物配置