赞
踩
软件使用的是idea 不是eclipse!!!!!!!!!
有错误欢迎指出
0.创建一个目标数据库或直接使用已有数据库
1.首先创造新工程;
2.修改Pom文件,添加所需的依赖;
3.修改resources中的application.properties配置文件或者创造application.yml配置文件;
(如:端口号,连接数据库,项目路径(可加可不加)等)
4.新建一个DO实体类将数据库中各类的数据信息添加进去(例如id、name这种);
(实体类中的类型和数据需要和数据库中一一对应)
5.新建一个Dao接口,然后编写xml,写接口,调用方法等;
- package 包名;
-
- @Mapper//给mapper接口自动生成一个实现类
- public interface UserDao {
-
-
- void add(UserDO userDO);//增
-
- void delect(UserDO userDO);//删
-
- UserDO getById(String id);//根据id查询
-
- void edit(UserDO userDO);//改
-
- List<UserDO> page(UserDO userDO);//分页
(下面的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="Dao所在位置全名">
-
- <resultMap id="实体类名称+ResultMap" type="实体类所在位置">
- <id property="数据库中主键名称" column="数据库中主键的名称"/>
- <result property="数据库中各字段名称" column="数据库中各字段名的名称"/>
- <result property="数据库中各字段名称" column="数据库中各字段名的名称"/>
- <result property="数据库中各字段名称" column="数据库中各字段名的名称"/>
- ##有几个写几个,也可以直接映射
-
- </resultMap>
-
- <insert id="Dao接口中“增”方法的全名" parameterType="Stirng">
- INSERT INTO 数据库名 (数据库中所有字段名) VALUES (
- ##{所有字段名格式为#{}用“,”英文逗号分隔顺序要和数据库中的顺序对应,否则查询错误},
- )
- </insert>
-
- <delete id="Dao接口中删除方法的名称" parameterType="实体类所在位置的全称">
- delete from 数据库名 where 数据库中主键名称=#{主键}
- </delete>
-
- <select id="Dao接口中查询方法的全名" resultMap="实体类名称+ResultMap" parameterType="实体类所在位置的全称">
- select * from 数据表名 where 数据库中主键名称 = #{主键}
- </select>
-
- <update id="Dao接口中改方法的全名" parameterType="实体类所在位置的全称">
- UPDATE 数据库名
- <set>
- <if test="工程中代指字段名的名称 != null and 工程中代指字段名的名称 != ''">
- 数据库中字段名的名称 = #{工程中代指字段名的名称},
- ##这是String类型用来去空字符串和null的判断方法
- </if>
- <if test="工程中代指字段名的名称 != null">
- 数据库中字段名的名称 = #{工程中代指字段名的名称},
- ##除了String以外的
- </if>
-
- ##写完所有需要更改的字段名,上述逻辑语句的意思是判断是否为空或者为空字符串
- </set>
- WHERE 主键 = #{主键}
- </update>
-
- <select id="Dao接口中分页方法全名" resultMap="实体类名称+ResultMap" parameterType="实体类所在位置的全称">
- SELECT
- 数据库中各字段名的名称(写完写全,逗号分离
- from 数据库名
- <where>
- <if test="工程中代指字段名的名称 != null and 工程中代指字段名的名称 != ''">
- <![CDATA[ and 数据库中字段名的名称 like concat('%', #{工程中代指字段名的名称},'%')]]>
- ##模糊查询语句
- </if>
- <if test="工程中代指字段名的名称 != null and 工程中代指字段名的名称 != ''">
- and 数据库中字段名的名称 = #{工程中代指字段名的名称}
- ##准确查询
- </if>
- </where>
- order by create_time desc
- ## 根据创建时间(create_time)倒叙查询(可自定义)
- </select>
-
-
- </mapper>
(定义方法)
6.新建service服务层;
(对所需前端返回的数据,新建多个类,放置)例如add、edit、request、response等
- package 包名;
-
-
- @Service//服务层注解
- //主事务类型
- @Transactional(value = "masterTransactionManager", propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
- public class UserService {
-
- @Autowired//自动注入
- private UserDao userDao;
-
- //根据id查询
- public UserDO getById(String id) {
- UserDO result = userDao.getById(id);
- return result;
- }
-
- //增加
- public UserDO add(UserAdd userAdd) throws Exception {
- UserDO = new UserDO();
- BeanUtils.copyProperties(userAdd, userDO);
- //雪花算法获取id
- long id = SpringContextUtils.getContext().getBean(SnowFlakeUtils.class).nextId();
- userDO.setId(String.valueOf(id));
- userDao.add(userDO);
- return userDO ;
- }
-
- //改
- public UserDO edit(UserEdit userEdit) throws Exception {
- UserDO userDO = new UserDO();
- BeanUtils.copyProperties(userEdit, userDO);
- userDao.edit(userDO);
- return userDO ;
- }
-
- //删
- public Long delete(String id) throws Exception {
- userDao.delete(id);
- return null;
- }
-
-
- //分页
- public Page<UserResponse> page(PageQuery<UserRequest> page) {
- UserDO bean = new UserDO();
-
- page.check();// 检查分页参数,并设置分页条件
- BeanUtils.copyProperties(null == page.getQueryBean() ? new UserRequest() : page.getQueryBean(), bean);
- PageHelper.startPage(page.getCurrentPage(), page.getPageSize(), page.getOrderBy());
- // 查询
- List<UserDO> doList = userDao.page(bean);
- int total = userDao.total(bean);
- // 构造返回结果
- List<UserResponse> dtoList = ConvertUtils.copyList(doList, UserResponse.class);
- dtoList.forEach(userResponse -> {
- List<RoleDO> roleDOList = roleDao.getRoleByUserId(userResponse.getId());
- userResponse.setRoleList(ConvertUtils.copyList(roleDOList, RoleResponse.class));
- });
- Page<UserResponse> pageData = new Page<>(page.getCurrentPage(), page.getPageSize(), total);
- pageData.setList(dtoList);
- return pageData;
- }
-
-
- }
-
- }
7.新建controller控制层;
- package 包名;
-
-
- @Api(value = "userController", tags = {"用户控制层"})
- @RequestMapping("user")
- @RestController
- @Slf4j
- public class UserController {
-
- @Autowired
- private UserService userService;
-
-
- @ApiOperation(value = "添加用户")
- @PostMapping(value = "add")
- public RestResponse<Long> add(@Valid @RequestBody UserAdd userAdd) throws Exception {
- return RestResponse.ok(userService.add(userAdd));
- }
-
- @ApiOperation(value = "编辑")
- @PostMapping(value = "edit")
- public RestResponse<Long> edit(@Valid @RequestBody UserEdit UserEdit) throws Exception {
- return RestResponse.ok(userService.edit(UserEdit));
- }
-
- @ApiOperation(value = "删除用户色")
- @PostMapping(value = "delete")
- public RestResponse<Long> delete(@ApiParam(value = "主键", required = true) @RequestParam(value = "id", required = true) String id) throws Exception {
- return RestResponse.ok(userService.delete(id));
- }
-
- @ApiOperation(value = "详情")
- @GetMapping(value = "getById")
- public RestResponse<UserResponse> getById(@ApiParam(value = "主键", required = true) @RequestParam(value = "id", required = true) String id) {
- UserResponse userResponse = new UserResponse();
- UserDO userDO = userService.getById(id);
- Optional.ofNullable(userDO)
- .ifPresent(bean -> {
- BeanUtils.copyProperties(userDO, userResponse);
- });
- return RestResponse.ok(userResponse);
- }
-
-
-
- }
(调用方法)
8.运行测试文件Application
9.打开postman或者网页等其他测试接口软件,进行对数据库的增删改查。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。