依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<build>
<resources>
<!-- 扫描src/main/java下所有xx.xml文件 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--扫描resources下所有资源-->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
配置文件
server:
port: 8090
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/systemboot
username: root
password: 123456
# MyBatis 配置
mybatis:
# 1.xml文件放在java的mapper下xml文件中,路径要写全,并且pom中要加构建扫描src/main/java:扫描java下的所有文件
# mapper-locations: classpath:com/example/demo/demos/web/mapper/xml/*.xml
# 2.xml文件放在resource的mapper下xml文件中,从resource文件名开始写路径,并且pom中要加构建扫描src/main/resources
# 扫描resource下的所有文件
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.demo.demos.web.entity
# 开启 PageHelper 插件
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
表
#创建表
DROP TABLE IF EXISTS `consult`;
CREATE TABLE `consult` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '消息ID',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息标题',
`content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息内容',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除 1已删除, 0未删除',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
#创建索引
#INDEX `idx_title`(`title`) UsING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 COLLATE = utf8mb4_general_ci COMMENT = '消息表' ROW_FORMAT = Compact;
#添加字段
ALTER TABLE `consult`
ADD COLUMN `performance` varchar(16) NULL COMMENT '绩效';
entity
@Data
public class Consult {
private Integer id;
private String title;
private String content;
private Integer deleted;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//返回的日期类型字段数据解析成字符串 xml中查询返回字段create_time更名createTime
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime;
}
controller
@RestController
@RequestMapping("/consult")
//@Api(tags = "crud")
public class ConsultController {
@Autowired
private ConsultService consultService;
@RequestMapping("/selectAll")
public List<Consult> getAllConsults(){
return consultService.getAllConsults();
}
@GetMapping("/getById/{id}")
// @ApiOperation(value = "根据id查询")
public Consult getConsultById(@PathVariable int id) {
return consultService.getConsultById(id);
}
@PostMapping("/save")
// @ApiOperation(value = "添加")
public boolean createConsult(@RequestBody Consult consult) {
return consultService.createConsult(consult);
}
@PutMapping("/update/{id}")
// @ApiOperation(value = "更新")
public boolean updateConsult(@PathVariable Integer id, @RequestBody Consult consult) {
consult.setId(id);
return consultService.updateConsult(consult);
}
@DeleteMapping("/delete/{id}")
// @ApiOperation(value = "删除")
public boolean deleteConsult(@PathVariable Integer id) {
return consultService.deleteConsult(id);
}
@GetMapping("/pageList/{pageNum}/{pageSize}")
public Object pageList(@PathVariable int pageNum, @PathVariable int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Consult> list = consultService.getAllConsults();
PageInfo<Consult> pageInfo = new PageInfo<>(list);
return pageInfo;
}
}
service
public interface ConsultService {
Consult getConsultById(int id);
List<Consult> getAllConsults();
boolean createConsult(Consult consult);
boolean updateConsult(Consult consult);
boolean deleteConsult(Integer id);
}
@Service
public class ConsultServiceImpl implements ConsultService {
@Autowired
private ConsultMapper consultMapper;
@Override
public Consult getConsultById(int id) {
return consultMapper.getConsultById(id);
}
@Override
public List<Consult> getAllConsults() {
return consultMapper.getAllConsults();
}
@Override
public boolean createConsult(Consult consult) {
consult.setDeleted(0);
consult.setCreateTime(new Date());
consult.setUpdateTime(new Date());
int result = consultMapper.createConsult(consult);
return result>0;
}
@Override
public boolean updateConsult(Consult consult) {
consult.setUpdateTime(new Date());
return consultMapper.updateConsult(consult)>0;
}
@Override
public boolean deleteConsult(Integer id) {
return consultMapper.deleteConsult(id)>0;
}
}
mapper
@Mapper
public interface ConsultMapper {
Consult getConsultById(int id);
List<Consult> getAllConsults();
int createConsult(Consult consult);
int updateConsult(@Param("data") Consult consult);
int deleteConsult(Integer id);
}
<?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.example.demo.demos.web.mapper.ConsultMapper">
<!-- 自定义返回类型-->
<resultMap id="BaseResultMap" type="com.example.demo.demos.web.entity.Consult">
<id column="id" property="id"/>
<result column="title" property="title"/>
<result column="content" property="content"/>
<result column="deleted" property="deleted"/>
<result property="createTime" column="create_time" javaType="java.util.Date"
jdbcType="TIMESTAMP" typeHandler="org.apache.ibatis.type.DateTypeHandler" />
<result property="updateTime" column="update_time" javaType="java.util.Date"
jdbcType="TIMESTAMP" typeHandler="org.apache.ibatis.type.DateTypeHandler" />
</resultMap>
<select id="getConsultById" resultType="com.example.demo.demos.web.entity.Consult">
SELECT * FROM consult WHERE id = #{id} and deleted=0
</select>
<!-- <select id="getConsultById" resultMap="BaseResultMap">-->
<!-- SELECT id,title,content,deleted,create_time,update_time-->
<!-- FROM consult WHERE id = #{id} c-->
<!-- </select>-->
<!-- <select id="getAllConsults" resultMap="BaseResultMap">-->
<!-- SELECT * FROM consult where deleted=0-->
<!-- </select>-->
<select id="getAllConsults" resultMap="BaseResultMap">
SELECT id,title,content,deleted,create_time createTime,update_time updateTime FROM consult where deleted=0
</select>
<insert id="createConsult">
INSERT INTO consult (title, content)
VALUES (#{title}, #{content})
</insert>
<update id="updateConsult">
UPDATE consult SET title = #{data.title}, content = #{data.content},update_time = #{data.updateTime}
WHERE id = #{data.id}
</update>
<update id="deleteConsult">
UPDATE consult set deleted = 1, update_time= CURRENT_TIMESTAMP WHERE id = #{id}
</update>
</mapper>