Java PBCMS的开发笔记
这个CMS是我拿来学习SpringBoot框架的,啥Redis、shiro、Mybatis都整合了。
里面也集成了一些比较好用的工具类
我在这个基础上再次开发,新建一个表biz_url
CREATE TABLE `biz_url` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `url` varchar(255) DEFAULT NULL, `create_time` int(11) DEFAULT NULL, `update_time` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
创建对应的实体类
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class BizUrl extends BaseVo {
private static final long serialVersionUID = -4600439321134827071L;
private String url;
}创建BizUrlService
public interface BizUrlService extends IService<BizUrl> {
List<BizUrl> selectLinks(BizUrl bizUrl);
List<BizUrl> selectAll();
IPage<BizUrl> pageLinks(BizUrl bizUrl, Integer pageNumber, Integer pageSize);
int deleteBatch(Integer[] ids);
}实现BizUrlServiceImpl
@Service
@AllArgsConstructor
public class BizUrlServiceImpl extends ServiceImpl<BizUrlMapper, BizUrl> implements BizUrlService {
private final BizUrlMapper linkMapper;
@Override
@Cacheable(value = "link", key = "'list'")
public List<BizUrl> selectLinks(BizUrl bizLink) {
return linkMapper.selectLinks(null, bizLink);
}
@Override
public List<BizUrl> selectAll() {
return linkMapper.selectAll();
}
@Override
public IPage<BizUrl> pageLinks(BizUrl bizLink, Integer pageNumber, Integer pageSize) {
IPage<BizUrl> page = new Pagination<>(pageNumber, pageSize);
page.setRecords(linkMapper.selectLinks(page, bizLink));
return page;
}
@Override
@CacheEvict(value = "link", allEntries = true)
public int deleteBatch(Integer[] ids) {
return linkMapper.deleteBatch(ids);
}
}JavaMapper
public interface BizUrlMapper extends BaseMapper<BizUrl> {
List<BizUrl> selectLinks(@Param("page") IPage<BizUrl> page, @Param("bizUrl") BizUrl bizUrl);
List<BizUrl> selectAll();
int deleteBatch(Integer[] ids);
}Mapper.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="com.puboot.module.admin.mapper.BizUrlMapper">
<resultMap id="rm" type="com.puboot.module.admin.model.BizUrl">
<result property="id" jdbcType="INTEGER" column="id"/>
<result property="url" jdbcType="VARCHAR" column="url"/>
<result property="createTime" jdbcType="TIMESTAMP" column="create_time"/>
<result property="updateTime" jdbcType="TIMESTAMP" column="update_time"/>
</resultMap>
<sql id="Base_Column_List">
id,url,create_time, update_time
</sql>
<select id="selectLinks" parameterType="com.puboot.module.admin.model.BizUrl" resultMap="rm" >
select <include refid="Base_Column_List"/>
FROM biz_url
WHERE 1=1
<if test="bizUrl.url !=null and bizUrl.url != ''">
AND url like concat('%', #{bizUrl.url}, '%')
</if>
</select>
<select id="selectAll" resultMap="rm" >
select <include refid="Base_Column_List"/>
FROM biz_url
</select>
<delete id="deleteBatch" parameterType="map">
DELETE FROM
biz_url
where
id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
</mapper>然后在Controller里调用就可以了
获取数据库里的全部数据,这个是自己在XML写的SQL
private final BizUrlService urlService;
@GetMapping("test")
public List<BizUrl> getTest() {
return urlService.selectAll();
}然后我发现IService里已经有增删改查了,非常方便。
urlService.list();//查询所有数据
// 更新一条数据
BizUrl url = new BizUrl();
url.setId(3);
url.setUrl("modify");
urlService.updateById(url);
// 条件查询数据
List<BizUrl> lists = urlService.list(Wrappers.<BizUrl>lambdaQuery().eq(BizUrl::getId,3));
// 插入数据
urlService.save(url);
// 删除数据
urlService.removeById(3);
