1.创建SpringBoot项目
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.14</version>
</dependency>
</dependencies>
2.创建数据库,我使用的是MYSQL,创建一个表User
CREATE TABLE `User` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(20) NOT NULL,
`Age` int(11) NOT NULL,
`CreateTime` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8
3.创建一个实体类 entity.User
public class User {
private int id;
private String name;
private int age;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
4.创建一个对实体操作的Mapper类 dao.UserDao,要使用@Mapper注解
@Mapper
public interface UserDao {
int insert(User info);
User get(int id);
}
5.定义Mapper.xml UserMapper.xml namespace和dao对应
<?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="demomybatis.dao.UserDao" >
<resultMap id="BaseResultMap" type="demomybatis.entity.User" >
<id column="Id" property="id" jdbcType="INTEGER" />
<result column="Name" property="name" jdbcType="VARCHAR" />
<result column="Age" property="age" jdbcType="VARCHAR" />
<result column="CreateTime" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="BaseColumnList" >
Id, Name, Age,CreateTime
</sql>
<select id="get" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="BaseColumnList" />
from User
where Id = #{id,jdbcType=INTEGER}
</select>
<insert id="insert" parameterType="demomybatis.entity.User" >
insert into User (id, name, age,createTime)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP})
</insert>
</mapper>
6.定义一个持久化接口 service.UserService
public interface UserService {
boolean add(User info);
User get(int id);
}
7.接口的实现 service.impl.UserServiceImpl
使用@Service注解
用@Resource注入dao
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserDao dao;
@Override
public boolean add(User info) {
boolean result = false;
try {
dao.insert(info);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
public User get(int id) {
return dao.get(id);
}
}
8 配置项目文件
mybatis:
typeAliasesPackage: demomybatis.entity
mapperLocations: classpath:mapper/*Mapper.xml
定义数据源
datasource:type:com.alibaba.druid.pool.DruidDataSource
9 创建Controller UserController
@RestController
public class UserController {
@Autowired
private UserService service;
@RequestMapping("/get/{id}")
@ResponseBody
public User get(@PathVariable int id) {
return service.get(id);
}
@RequestMapping("/add")
@ResponseBody
public boolean add(HttpServletRequest request, Model model) {
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
User info = new User();
info.setName(name);
info.setAge(age);
info.setCreateTime(new Date());
return service.add(info);
}
}