<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
[]( )2.配置文件
=========================================================================
修改配置文件 `application.properties`;
server.servlet.context-path=/sm
数据库配置文件:
#指定连接池类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#指定驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#指定url
spring.datasource.url=jdbc:mysql://localhost:3306/sm
#指定用户名
spring.datasource.username=root
#指定密码
spring.datasource.password=1234
[]( )加入mybatis配置
------------------------------------------------------------------------------
mybatis 的配置:
#指定mapper配置文件位置
mybatis.mapper-locations=classpath:/com/yusael/mapper/*.xml
#指定起别名来的类
mybatis.type-aliases-package=com.yusael.entity
在入口类 `Application` 中添加 `@MapperScan`
@SpringBootApplication
@MapperScan(“com.yusael.dao”)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
[]( )完整的配置文件
--------------------------------------------------------------------------
server.servlet.context-path=/sm
#指定连接池类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#指定驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#指定url
spring.datasource.url=jdbc:mysql://localhost:3306/sm
#指定用户名
spring.datasource.username=root
#指定密码
spring.datasource.password=1234
#指定mapper配置文件位置
mybatis.mapper-locations=classpath:/com/yusael/mapper/*.xml
#指定起别名来的类
mybatis.type-aliases-package=com.yusael.entity
[]( )3\. 数据库建表
============================================================================
在 `sm` 数据库下建立 `t_user` 表:
CREATE TABLE t_user
(
id
varchar(100) NOT NULL,
name
varchar(100) DEFAULT NULL,
age
int(11) DEFAULT NULL,
bir
datetime DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
[]( )4\. 开发实体类
============================================================================
在 `java.com.yusael.entity` 包下创建 `User` 类;
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020050500214256.png)
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
private String id;
private String name;
private Integer age;
private Date bir;
}
[]( )5\. 开发DAO接口以及Mapper
======================================================================================
在 `java.com.yusael.dao` 包下创建 `UserDAO` 类;
在 `resources.com.yusael.mapper` 下创建 `UserDAOMapper`
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011110386.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)
public interface UserDAO {
void save(User user);
List<User> findAll();
}
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yusael.dao.UserDao">
<!--save-->
<insert id="save" parameterType="User">
insert into t_user values (#{id}, #{name}, #{age}, #{bir})
</insert>
<!--findAll-->
<select id="findAll" resultType="User">
select id,name,age,bir from t_user
</select>
</mapper>
```
[]( )6\. 开发Service以及实现
====================================================================================
在 `java.com.yusael.service` 包下创建 `UserService` 类、`UserServiceImpl` 类;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011201132.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)
```
// 接口
public interface UserService {
void save(User user);
List<User> findAll();
}
// 实现
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDAO userDAO;
@Override
public void save(User user) {
user.setId(UUID.randomUUID().toString());
userDAO.save(user);
}
@Override
public List<User> findAll() {
return userDAO.findAll();
}
}
[]( )7\. 编写控制器进行测试
================================================================================
在 `com.yusael.controller` 包下创建 `UserController` 类;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011310704.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)
@RestController
@RequestMapping(“user”)
public class UserController {
@Autowired
private UserService userService;
@GetMapping("findAll")
public List<User> findAll() {
return userService.findAll();
}
@GetMapping("save")
public void save(User user) {
userService.save(user);
}
}
[]( )完整的项目结构
--------------------------------------------------------------------------
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011556811.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)
[]( )开始测试
-----------------------------------------------------------------------
运行项目;
浏览器输入 `localhost:8080/sm/user/save?name=zhangsan&age=25&bir=2012/12/12` 来保存一条记录。
回车,页面看不到什么效果;
浏览器再次输入 `http://localhost:8080/sm/user/findAll` 来查询所有记录;
可以成功的查询出刚刚添加的记录:
[
{
"id": "fb91da88-8a54-4f1b-83e7-09d2217ae2cb",
"name": "zhangsan",
"age": 25,
"bir": "2012-12-11T16:00:00.000+0000"
}
]
尝试多保存几条数据:
`localhost:8080/sm/user/save?name=lisi&age=21&bir=2011/11/11`
`localhost:8080/sm/user/save?name=wangwu&age=18&bir=2014/12/11`
`localhost:8080/sm/user/save?name=zhaoliu&age=19&bir=2011/6/11`
再次查询所有记录: `http://localhost:8080/sm/user/findAll`