最近的公司项目后端用到了Springboot框架,把阿里的druid作为数据源,采用mybatis+druid的方式,本人之前也是在这里踩了很多坑,因此感觉有必要出个博客来记录一下。
首先,用druid最为数据源的好处就不多说了,灵活动态切换数据库是小case,更重要的是提供了健全的数据库监控机制和页面(号称目前最好的数据库连接池可不是简单说说),开始进入正题。
首先创建Springboot项目,这里就不多说了,可以点击这里看怎么创建Springboot项目,接着,在pom文件中引入mybatis、mysql和druid所需要的依赖,如下
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.20</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
然后再在项目中分别创建model,dao,service,controller,这里就不多说了,各位应该都会,创建好后如下
需要注意的是,dao要写成接口形式,并且注解为@Mapper
@Mapper
public interface SysUserDao {
public SysUser getUserById(String id);
}
service和controller的注解还是和原来的一样,service用@Service,controller用@RestController,接着就是编写Mapper.xml配置文件,可以不写mapper.xml配置文件直接在dao上写sql语句,实现零配置模式,但是个人不建议,毕竟实体类还是简单点好。mapper配置文件如下
<?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.azhe.mybsql.dao.SysUserDao" >
<resultMap id="BaseResultMap" type="com.azhe.mybsql.model.SysUser" >
<id column="ID" property="id" jdbcType="VARCHAR" />
<result column="USER_NAME" property="userName" jdbcType="VARCHAR" />
<result column="PASSWORD" property="password" jdbcType="VARCHAR" />
</resultMap>
<select id="getUserById" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from sys_user where id = #{id, jdbcType=VARCHAR}
</select>
</mappe