1. 无配置文件注解版
在引入 mybatis 之前,确保 spring boot 能正常使用
- 1.添加依赖
<!-- Spring Boot Mybatis 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot}</version>
</dependency>
<!-- MySQL 连接驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector}</version>
</dependency>
- 在 application.properties 文件中配置数据库
## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/endorse
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- 3.定义和使用 sql 语句构建 dao
@Mapper
@Repository
public interface BannerDao {
@Select("SELECT * FROM banner")
List<Banner> findBanner(); // Banner 只是个简单的 domain 省略代码
}
- 4.在 controller 中使用
@RestController
public class BannerController {
@Autowired
BannerDao bannerDao;
@RequestMapping(value = "/banner", method = RequestMethod.GET)
public List<Banner> getBannerInfo() {
List<Banner> banner = bannerDao.findBanner();
System.out.println(banner);
return banner;
}
}
- 测试
输入 http://localhost:8080/banner 得到如下结果
- 测试
在 dao 中不加 @Repository 在类名上会报如下错误,加上就可以了
具体原因可以看 这里
2. 极简 xml 版本
-
- 首先在 .properties 文件中指定配置
mybatis.config-locations=classpath:mybatis/mybatis-config.xml mybatis.mapper-locations=classpath:mybatis/mapper/*.xml mybatis.type-aliases-package=com.xiaocai.endorse.domain
-
- 设置基本配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias alias="Integer" type="java.lang.Integer" /> <typeAlias alias="Long" type="java.lang.Long" /> <typeAlias alias="HashMap" type="java.util.HashMap" /> <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" /> <typeAlias alias="ArrayList" type="java.util.ArrayList" /> <typeAlias alias="LinkedList" type="java.util.LinkedList" /> </typeAliases> </configuration>
-
- 添加映射文件
这里就举个最简单的例子:
<?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.xiaocai.endorse.dao.UserMapper"> <insert id="insert" parameterType="com.xiaocai.endorse.domain.UserEntity"> INSERT INTO users (phone,userName,PASSWORD,userSex) VALUES (#{phone},#{userName}, #{passWord}, #{userSex}) </insert> </mapper>
- 添加映射文件
-
- 在对应的 java 类中
@Repository public interface UserMapper { Long insert(UserEntity user); }
需要注意方法名要与 mapper 中的 id 一样。
-
- 在 Controller 中使用
@RestController public class UserController { @Autowired UserMapper userMapper; @RequestMapping("/insertUser") public String insertUser(UserEntity userEntity) { Long insert = userMapper.insert(userEntity); if (insert != null && insert > 0) { return JsonHelper.success(insert); } else { return JsonHelper.error(1, "插入失败"); } } }