千家信息网

基于Mybatis-Plus的CRUD的实现方式

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要讲解了"基于Mybatis-Plus的CRUD的实现方式",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"基于Mybatis-Plus的CRU
千家信息网最后更新 2025年02月02日基于Mybatis-Plus的CRUD的实现方式

这篇文章主要讲解了"基于Mybatis-Plus的CRUD的实现方式",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"基于Mybatis-Plus的CRUD的实现方式"吧!

mybatis-plus也是mybatis的增强版,它并未改变mybatis原有功能,只是在传统mybatis原有基础上又新增了一些功能,用以提高开发效率.

比如,在mybatis-plus框架下,项目mapper层接口可通过继承BaseMapper,获取基本的CRUD功能,而无需编写mapper.xml语句.

AutoGenerator自动生成的mapper.xml如下所示:

soldier_id, soldier_name, join_army_time

下面的Mapper接口也是自动生成的,里面什么都不用写:

/** *

* Mapper 接口 *

* * @author gene * @since 2019-09-11 */public interface SoldierMapper extends BaseMapper { }

项目集成mybatis-plus之后,在大多数CRUD情景下,可以跳过mapper层,直接到业务层接口写接口方法,然后在业务实现类里调用BaseMapper接口内的方法即可.

业务接口(要自己动手写了):

package cn.example.demo.service;import java.util.List;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.baomidou.mybatisplus.extension.service.IService;import cn.example.demo.bean.Soldier;/** *

* 服务类 *

* * @author gene * @since 2019-09-11 */public interface SoldierService extends IService { /** * 增加 * * @param soldier * @return */ int insert(Soldier soldier); /** * 查询全部 * * @return */ List selectAll(Wrapper queryWrapper); /** * 据ID而查 * * @param soldier * @return */ Soldier selectById(Integer soldierId); /** * 更改1行 * * @param soldier * @return */ int updateOne(Soldier soldier); /** * 删除一行 * * @param soldier * @return */ int deleteOne(Soldier soldier);}

实现类:

package cn.example.demo.service.impl;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import cn.example.demo.bean.Soldier;import cn.example.demo.mapper.SoldierMapper;import cn.example.demo.service.SoldierService;import java.util.List;import org.springframework.stereotype.Service;/** *

* 服务实现类 *

* * @author gene * @since 2019-09-11 */@Servicepublic class SoldierServiceImpl extends ServiceImpl implements SoldierService { @Override public int insert(Soldier soldier) { return baseMapper.insert(soldier); } @Override public List selectAll(Wrapper queryWrapper) { return baseMapper.selectList(queryWrapper); } @Override public Soldier selectById(Integer soldierId) { return baseMapper.selectById(soldierId); } @Override public int updateOne(Soldier soldier) { return baseMapper.updateById(soldier); } @Override public int deleteOne(Soldier soldier) { return baseMapper.deleteById(soldier); }}

测试方法,贴一个"增":

@Autowired private SoldierService ss; @Test public void insertTest() { LocalDateTime now = LocalDateTime.now(); Soldier soldier = new Soldier("yaobuqi", now); int affect = ss.insert(soldier); System.err.println("affect- " + affect); }

收工.

最后是测试期间遇到的异常:

java.lang.NoSuchMethodError: org.apache.ibatis.session.Configuration.getDefaultScriptingLanguageInstance() Lorg/apache/ibatis/scripting/LanguageDriver 升级mybatis-spring-boot-starter版本至2.1.0 升级mybatis-generator-core版本至1.3.7 dao.InvalidDataAccessApiUsageException: Error attempting to get column 'join_army_time' from result set. Cause: java.sql.SQLFeatureNotSupportedException; null; nested exception is java.sql.SQLFeatureNotSupportedException

简而言之:使用mybatis-plus逆向工程会将数据库中的date类型转换为LocalDateTime,访问接口的时候报错:java.sql.SQLFeatureNotSupportedException.

这是因为druid跟mybatis3.5.1兼容性问题,mybatis-plus-generator 3.1.2引用了mybatis3.5.1版本,而druid-boot-1.1.18尚未与之兼容,应将mybatis-plus版本降至3.1.0或以下即可.

如果上面的法子无效,那就更换druid数据源为hikaricp数据源:

com.zaxxer HikariCP 3.3.1

还有一种方法是,把实体类成员的LocalDateTime类型换为Date类型.

感谢各位的阅读,以上就是"基于Mybatis-Plus的CRUD的实现方式"的内容了,经过本文的学习后,相信大家对基于Mybatis-Plus的CRUD的实现方式这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

接口 方式 方法 版本 功能 数据 类型 学习 业务 内容 数据源 自动生成 问题 面的 项目 升级 服务 测试 生成 一行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 吉林网络技术服务质量保障 下列有关网络安全法 db2数据库密码 天线二维测试软件开发 软件开发业务员工作安排 cisco怎么测试服务器可访问 奥特曼系列ol服务器开服时间 广东网络技术服务案例 妇联网络安全周活动信息 云南互联网科技怎么样 台湾九州网络技术有限公司 上海新时代网络技术防水施工 文件服务器备份用户权限 长城汽车城网络安全工程师 网络技术从业人数与人才状况 腾讯云服务器被攻击 1 x网络安全防护证书 有关dhcp服务器的配置 租用海外服务器 我的世界4399电脑版服务器 湖南服务器安全云空间 嘉定区正规数据库系统研发成本 南开区数据网络技术质量保证 同花顺属于软件开发有限公司吗 网络安全知识竞赛平台2020 小学生网络安全知识讲座稿 雷布斯数据库 国内学术论文数据库有哪些 网络安全群发内容 哈利波特如何搜索服务器
0