说在前面
mybatis刚开始使用的时候比较麻烦,需要各种配置文件、实体类、dao层映射关联、还有一大推其它配置。初期开发了generator可以根据表结果自动生产实体类、配置文件和dao层代码,可以减轻一部分开发量,后期也进行了大量的优化可以使用注解了,自动管理dao层和配置文件等。今天我和大家分享一下mybatis-spring-boot-starter。mybatis-spring-boot-starter就是springboot+mybatis可以完全注解不用配置文件,也可以简单配置轻松上手。
项目结构
代码实现
1、pom.xml文件
<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.fit</groupId>
<artifactId>SpringBootMybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- SpringBoot父类依赖引用 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<!-- SpringBoot web 组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
2、application.properties配置文件
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3、user实体
public class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4、UserMapper.java
public interface UserMapper {
@Select("select * from sys_user")
public List<Map<String, Object>> userList();
@Select("select * from sys_user")
public List<User> list();
@Select("select * from sys_user where id=#{id}")
public User getUser(String id);
@Insert("insert into sys_user(id, name) VALUES(#{name}, #{name})")
public int insert(@Param("id") String id, @Param("name") String name);
@Delete("delete from sys_user where id=#{id}")
public int delete(String id);
@Update("update sys_user set name=#{name} where id=#{id}")
public int update(User user);
}
5、UserController.java
@Controller
public class UserController {
@Resource
private UserMapper userMapper;
@ResponseBody
@RequestMapping(value = "userList")
public List<Map<String, Object>> userList() {
return userMapper.userList();
}
@ResponseBody
@RequestMapping(value = "list")
public List<User> list() {
return userMapper.list();
}
@ResponseBody
@RequestMapping(value = "getUser")
public User getUser(String id) {
return userMapper.getUser(id);
}
@ResponseBody
@RequestMapping(value = "insert")
public int insert(String id, String name) {
return userMapper.insert(id, name);
}
@ResponseBody
@RequestMapping(value = "delete")
public int delete(String id) {
return userMapper.delete(id);
}
@ResponseBody
@RequestMapping(value = "update")
public int update(User user) {
return userMapper.update(user);
}
}
6、App.java
@ComponentScan(basePackages = "com.fit")
@MapperScan(basePackages ="com.fit.mapper")
@SpringBootApplication
public class App {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(App.class, args);
}
}
9、sql脚本
CREATE TABLE `sys_user` (
`id` varchar(255) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
8、运行访问