单元测试
@Test public void testAaa(){ //断言 String aaa="111"; System.out.println(aaa); // Assert.assertEquals(aaa,"222"); Assert.assertNotEquals(aaa,"111"); }
自动生成代码
- 复制一个自动生成的配置文件
- 添加一个插件
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <configurationFile>src\main\resources\generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <executions> <execution> <id>genarator</id> <goals> <goal>generate</goal> </goals> <phase>generate-resources</phase> </execution> </executions> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> </dependencies> </plugin>
分页插件
- 添加依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency>
- 属性文件配置
pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true params: count=countSql
- 代码实现
创建一个保存查询的结果对象
@Data @NoArgsConstructor @AllArgsConstructor public class PageResult { private long total;//总条数 private List rows; //查询的数据 }
Service层实现分页
@Service public class UserService { @Autowired private UserMapper userMapper; /** * * @param pageNum 当前页 * @param pageSize 每页条数 * @return */ public PageResult getUserList(int pageNum,int pageSize){ PageHelper.startPage(pageNum,pageSize); Page<User> page = (Page<User>)userMapper.selectByExample(null); return new PageResult(page.getTotal(),page.getResult()); } }
测试
@Test public void testPage(){ PageResult pageResult = userService.getUserList(2,2); System.out.println(pageResult.getTotal()); List<User> users = pageResult.getRows(); for(User u:users){ System.out.println(u); } }
使用通用Mapper实现CRUD
- 添加依赖
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency>
- 添加配置
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/tiger_springboot username: root password: root type: com.alibaba.druid.pool.DruidDataSource
- 创建表
- 写POJO
@Data @Table(name = "user") public class User { @Id @KeySql(useGeneratedKeys = true) private int id; @Column private String name; @Column(name = "age") private int age; }
- 写Mapper
@Mapper
public interface UserMapper extends Mapper<User> { }
- 测试
@Autowired private UserMapper userMapper; @Test public void testAdd(){ User user = new User(); user.setName("ccc"); user.setAge(40); userMapper.insert(user); }
总结:
目前做好的数据库连接池druid,它是阿里巴巴公司实现的。Mybatis的三种实现方式,1.通过手动编写mapper接口和映射文件,2.自动生成,3.使用通用mapper。
单元测试:使用断言assert
我们可以通过父pom统一管理依赖的版本:父pom通过module标签体现子pom。子pom通过parent标签来父pom。
父pom中depencyManagement只定义依赖版本,不下载依赖。在子pom中使用depency下载依赖,但是不定义依赖的版本。