springboot-curd基于mybatis项目搭建的示例分析
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,springboot-curd基于mybatis项目搭建的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。项目结构:pom.xml
千家信息网最后更新 2025年11月10日springboot-curd基于mybatis项目搭建的示例分析
springboot-curd基于mybatis项目搭建的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
项目结构:
pom.xml文件:
org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE com.liuyang springbootcurd 0.0.1-SNAPSHOT springbootcurd Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.1 junit junit 4.13 test com.github.pagehelper pagehelper-spring-boot-starter 1.2.13 mysql mysql-connector-java 8.0.25 com.mchange c3p0 0.9.5.5 org.apache.commons commons-lang3 org.springframework.boot spring-boot-devtools true org.springframework.data spring-data-commons 2.2.3.RELEASE org.springframework.boot spring-boot-maven-plugin
yml
## 数据源配置spring: ## 热部署配置 devtools: restart: enabled: true # 设置重启的目录,添加目录的文件需要restart additional-paths: src/main/java # 解决项目自动重新编译后接口报404的问题 poll-interval: 3000 quiet-period: 1000 datasource: type: com.mchange.v2.c3p0.ComboPooledDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 username: root password: 123456 ##视图的配置 freemarker: template-loader-path: classpath*:/views/ charset: UTF-8 content-type: text/html cache: false suffix: .ftl## mybatis 配置mybatis: #映射文件的存放路径 mapper-locations: classpath*:/mapper/*.xml type-aliases-package: com.liuyang.bean,com.liuyang.vo,com.liuyang.query configuration: ## 下划线转驼峰配置 map-underscore-to-camel-case: true## pageHelperpagehelper: helper-dialect: mysql## 显示dao 执行sql语句logging: level: com: xxxx: mapper: debug
bean
private Integer userId; private String userName; private String userPwd;
mapper
public interface Usermapper { public User selectuserbyid(Integer id); public User selectUserByName(String userName);// 注意返回的类型 public int insertUser(User user);// 根据id进行删除数据 public int deleteUserById(int userId); //条件查询 public List selectUserByItem(UserQuery userQuery);} mapping.xml
insert into t_user(user_name,user_pwd) values(#{userName},#{userPwd}); delete from t_user where user_id=#{userId}
controller
@RestControllerpublic class Usercontroller { @Resource private Usermapper usermapper; @GetMapping("one/{id}") public User sayUser(@PathVariable Integer id) { System.out.println( id + "<<<" ); //根据ID查询 User user = usermapper.selectuserbyid(id); return user; }// 没有检测重复 @GetMapping("userOne/{name}") public User sayUserOne(@PathVariable String name) { System.out.println( name + "<<<" ); //根据ID查询 User user = usermapper.selectUserByName( name ); //user--json return user; } @PutMapping("add") public int sayAdd(User user) { System.out.println( user + "<<<" ); //根据ID查询 return usermapper.insertUser( user ); } @DeleteMapping("delete/{userId}") public int sayDel(@PathVariable Integer userId) { System.out.println( userId + "<<<" ); //根据ID查询 return usermapper.deleteUserById( userId ); } @GetMapping("query") public java.util.List sayDel(UserQuery userQuery) { System.out.println( userQuery + "<<<" ); //分页的集合数据 return usermapper.selectUserByItem( userQuery ); }} query
public class UserQuery { private Integer pageNum=1; private Integer pageSize=1; private String userName;以上只是简单的实现了增删改查 如果发生了插入或者是删除异常,我们就应该会自定义全局异常去捕获出现的问题
新增类 service 主要进行的业务的处理
Userservice
public interface Userservice { public User queryUserById(Integer userId); public User queryUserByName(String userName); public void saveUser(User user); public void changeUser(User user); //删除一条 public void removeUserById(Integer userId); //查询用户信息 public PageInfo queryUserByPage(UserQuery userQuery);} UserserviceImpl
@Servicepublic class UserserviceImpl implements Userservice { @Resource private Usermapper usermapper;// 查询都是用的User返回类型 @Override public User queryUserById(Integer userId) { return usermapper.selectuserbyid( userId ); } @Override public User queryUserByName(String userName) { return usermapper.selectUserByName( userName ); }//增加操作 /*** * 需要用户名 AssertUtil * 用户密码 * 用户是否存在 * 添加用户是否成功 * @param user */ @Override public void saveUser(User user) { //验证用户名 AssertUtil.isTrue( StringUtils.isBlank(user.getUserName()),"用户名不能为空"); //用户密码 AssertUtil.isTrue(StringUtils.isBlank(user.getUserPwd()),"用户密码不能为空"); //用户是否存在 User temp = usermapper.selectUserByName(user.getUserName()); AssertUtil.isTrue(temp!=null,"用户已经存在"); //用户添加是否成功 AssertUtil.isTrue(usermapper.insertUser(user)<1,"添加失败了"); }// 修改操作 /**** * 用户名不为空 * 用户密码不为空 * 用户不存在 * 用户修改操作失败 * * @param user */ @Override public void changeUser(User user) { AssertUtil.isTrue( StringUtils.isBlank( user.getUserName() ),"用户名不为空" ); AssertUtil.isTrue( StringUtils.isBlank( user.getUserPwd() ),"密码不为空" ); User temp = usermapper.selectuserbyid(user.getUserId()); AssertUtil.isTrue( temp == null,"用户不存在"); AssertUtil.isTrue( usermapper.updateUser(user)<1,"修改失败了"); } /**** * 删除是的id是否还存在 * 删除失败 * @param userId */ @Override public void removeUserById(Integer userId) { AssertUtil.isTrue( userId==null|| null==usermapper.selectuserbyid( userId ),"待删除数据不存在" ); AssertUtil.isTrue( usermapper.deleteUserById( userId )<1,"删除失败" ); } /** * 分页参数传递了两个变量 一个是起始位置 一个是一页有多行数据 * * @param userQuery * @return */ @Override public PageInfo queryUserByPage(UserQuery userQuery) { PageHelper.startPage( userQuery.getPageNum(),userQuery.getPageSize()); List ulist = usermapper.selectUserByItem( userQuery ); PageInfo plist =new PageInfo(ulist); return plist; }} 新增类 用来校验数据数据是否有误
AssertUtil
public class AssertUtil { /** * * @param flag 参数 * @param msg 信息 * flag=true * 抛出异常,自定义 */ public static void isTrue(Boolean flag,String msg){ if(flag){ throw new ParamException(msg); } }}ParamException 自定义异常类
public class ParamException extends RuntimeException{ private Integer code=300; private String msg="参数异常"; public ParamException() { super("参数异常"); } public ParamException(Integer code) { super("参数异常"); this.code=code; } public ParamException(String msg) { super(msg); this.msg=msg; } public ParamException(Integer code,String msg) { super(msg); this.msg=msg; this.code=code; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; }}把数据状态码 状态数据存在在Resultinfo所创建的对象中
ResultInfo
public class ResultInfo { private Integer code=200; private String msg="操作成功"; private Object object; public ResultInfo() { } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getObject() { return object; } public void setObject(Object object) { this.object = object; } @Override public String toString() { return "ResultInfo{" + "code=" + code + ", msg='" + msg + '\'' + ", object=" + object + '}'; }}更新传递的事json数据:
分页查询:
springboot是什么
springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。
看完上述内容,你们掌握springboot-curd基于mybatis项目搭建的示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
用户
数据
查询
配置
参数
密码
用户名
项目
文件
问题
成功
示例
分析
信息
内容
方法
更多
框架
状态
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
组织切片图像 数据库
r里有公共数据库
服务器存储与运维的区别
魔兽几点开服务器
网络安全与勒索病毒防控
软件开发 知识产权归属
网络安全资料大全
xp系统可以做dns服务器吗
数据库日志日志
怎么从sql数据库中取数据
服务器如何上安全设备
主干网优先选择什么网络技术
当虹科技互联网
app服务器容量
华为服务器v2硬盘设置直通
深圳汇华丰网络技术
违反网络安全法第21条
vb数据库操作模块
第三方软件开发商的图片
厦门翔安做小程序软件开发
香港云服务器推介
魔兽几点开服务器
网络安全法主题班会设计
上海在线学习系统软件开发
速达数据库登录身份为
颍州区网络安全和信息化中心
网络安全策略配置方法
网络安全领域专业学校
网络安全还要保护吗
自用服务器