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);