7 项目功能开发
7.1 项目实体创建
创建ProjectInfo(之前用dbgan程序生成过),还需要在数据库创建表:
1
2
3
4
5
6
7
8
9
10
11CREATE TABLE IF NOT EXISTS `myweb`.`project_info` (
`id` VARCHAR(45) NOT NULL,
`user_id` VARCHAR(45) NULL,
`project_name` VARCHAR(45) NULL,
`project_content` VARCHAR(45) NULL,
`created_by` VARCHAR(45) NULL,
`creation_date` DATETIME NULL,
`last_updated_by` VARCHAR(45) NULL,
`last_update_date` DATETIME NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
7.2 数据库映射创建
- 创建ProjectInfoMapper接口(之前dbgan程序生成过xml文件)
7.3 创建功能接口
先写service层的接口:ProjectService:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35package com.lyingedu.questionnaire.biz.user.service;
import com.lyingedu.questionnaire.dbmap.entities.ProjectInfo;
import java.util.List;
public interface ProjectService {
/**
* 增加项目
* @param projectInfo
* @return
*/
int addProjectInfo(ProjectInfo projectInfo, String UserId);
/**
* 修改项目
* @param projectInfo
* @return
*/
int modifyProjectInfo(ProjectInfo projectInfo);
/**
* 删除项目
* @param id
* @return
*/
int deleteProjectById(String id);
/**
* 查询项目列表
* @return
*/
List<ProjectInfo> queryProjectList(ProjectInfo projectInfo);
}再写service实现类:ProjectServiceImpl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38package com.lyingedu.questionnaire.biz.user.service;
import com.lyingedu.questionnaire.dbmap.entities.ProjectInfo;
import com.lyingedu.questionnaire.dbmap.imapper.ProjectInfoMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.List;
public class ProjectServiceImpl implements ProjectService {
private ProjectInfoMapper projectInfoMapper;
public int addProjectInfo(ProjectInfo projectInfo, String UserId) {
return 0;
}
public int modifyProjectInfo(ProjectInfo projectInfo) {
return 0;
}
public int deleteProjectById(String id) {
return 0;
}
public List<ProjectInfo> queryProjectList(ProjectInfo projectInfo) {
return null;
}
}最后写control层:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35package com.lyingedu.questionnaire.biz.user.controller;
import com.lyingedu.questionnaire.beans.HttpResponseEntity;
import com.lyingedu.questionnaire.biz.user.service.ProjectService;
import com.lyingedu.questionnaire.dbmap.entities.ProjectInfo;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
//rest的接口风格
public class ProjectController {
private ProjectService projectService;
public HttpResponseEntity queryProjectList({ ProjectInfo projectInfo)
return null;
}
public HttpResponseEntity addProjectInfo({ ProjectInfo projectInfo)
return null;
}
public HttpResponseEntity modifyProjectInfo({ ProjectInfo projectInfo)
return null;
}
public HttpResponseEntity deleteProjectById({ String id)
return null;
}
}
7.3 项目列表功能
- 先查看对应的前端代码得到路径
7.3.1 control层
- ProjectController.queryProjectList:
1 |
|
7.3.2 service层
- ProjectServiceImpl.queryProjectList:
1 | public List<ProjectInfo> queryProjectList(ProjectInfo projectInfo) { |
7.3.3 数据库映射
实现selectByEanmple:
imapper函数接口(已经生成过了):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96package com.lyingedu.questionnaire.dbmap.imapper;
import com.lyingedu.questionnaire.dbmap.entities.ProjectInfo;
import com.lyingedu.questionnaire.dbmap.entities.ProjectInfoExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface ProjectInfoMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
long countByExample(ProjectInfoExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int deleteByExample(ProjectInfoExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int deleteByPrimaryKey(String id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int insert(ProjectInfo row);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int insertSelective(ProjectInfo row);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
List<ProjectInfo> selectByExample(ProjectInfoExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
ProjectInfo selectByPrimaryKey(String id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int updateByExampleSelective(; ProjectInfo row, ProjectInfoExample example)
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int updateByExample(; ProjectInfo row, ProjectInfoExample example)
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int updateByPrimaryKeySelective(ProjectInfo row);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table project_info
*
* @mbg.generated Tue Mar 05 14:17:07 CST 2024
*/
int updateByPrimaryKey(ProjectInfo row);
}xmapper执行sql(已经生成过了):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<select id="selectByExample" parameterType="com.lyingedu.questionnaire.dbmap.entities.ProjectInfoExample" resultMap="BaseResultMap">
<!--
WARNING - .generated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Mar 05 14:17:07 CST 2024.
-->
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from project_info
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
7.3.3 测试
- 登陆后会显示当前用户创建的问卷
7.4 新建项目功能
- 查看前端代码得到路径
7.4.1 control层
1 |
|
7.4.2 service层
1 | public int addProjectInfo(ProjectInfo projectInfo, String userName) { |
7.5 项目修改
7.5.1 control层
1 |
|
7.5.2 service层
1 | public int modifyProjectInfo(ProjectInfo projectInfo) { |
7.6 项目删除
7.6.1 control层
1 |
|
7.6.2 service层
1 | public int deleteProjectById(String id) { |