上一篇文章介绍了如何使用spring-boot搭建一个简单的web应用。这篇重点介绍如何把mybatis引入到其中。
1、pom.xml中引入:
<properties>
<mybatis-spring-boot>1.2.0</mybatis-spring-boot>
<mysql-connector>5.1.39</mysql-connector>
</properties>
<!-- 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>
整个工程结构如下图
2、entity实体类:
public class Test {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3、dao接口:
public interface TestDao {
/**
* 根据名称,查询test信息
*
* @param name 名
*/
Test findByName(@Param("name") String n);
}
Mybatis是基于接口编程的,我们写好接口,对应编写映射文件中的sql语句即可,非常灵活。
4、mapper.xml文件:
在resources文件夹下新建一个mapper文件夹,里面存放mybatis的mapper 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="nc.edu.nuc.dao.mysql.TestDao">
<resultMap id="BaseResultMap" type="nc.edu.nuc.entity.Test">
<result column="id" property="id" />
<result column="name" property="name" />
</resultMap>
<parameterMap id="Test" type="nc.edu.nuc.entity.Test"/>
<sql id="Base_Column_List">
id,name
</sql>
<select id="findList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from test
</select>
<select id="findByName" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
from test
where name = #{name}
</select>
<insert id="save" parameterType="Test">
insert into test
(name)
values
(#{name})
</insert>
</mapper>
5、service类:
@Service
public class TestService{
@Autowired
private TestDao testDao;
public Test findByName(String name) {
return testDao.findByName(name);
}
}
6、controller接口:
@Controller
public class TestController {
@Autowired
private TestService testService;
@RequestMapping("test")
@ResponseBody
public String home(HttpServletRequest request) {
String name = request.getParameter("name");
Test findByName = testService.findByName(name);
return findByName.toString();
}
}
7、启动类:
@SpringBootApplication
//mapper 接口类扫描包配置
@MapperScan("nc.edu.nuc.dao.mysql")
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
在启动泪伤添加一个@MapperScan的注解,也可以在每一个Dao类上添加一个@Mapper的注解。
application.properties:
##mysql配置
spring.datasource.url=jdbc:mysql://jy.ttengine.w.abc.db:1883/ttengine?useUnicode=true&characterEncoding=utf8
spring.datasource.username=ttengine
spring.datasource.password=TTengine123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
## Mybatis配置
mybatis.typeAliasesPackage=cn.edu.nuc.springbootmybatis.entity
mybatis.mapperLocations=classpath:mapper/*.xml
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/page/
spring.mvc.view.suffix=.jsp
参考:https://github.com/JeffLi1993/springboot-learning-example