springboot-curd基于mybatis项目搭建的示例分析
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,springboot-curd基于mybatis项目搭建的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。项目结构:pom.xml
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
互联网科技企业
互联网加科技
互联网科技公司的优势
科技信息互联网
互联网 科技创新
极限挑战互联网科技
上海喔噻互联网科技
上游互联网科技
互联网科技公司名称
盛创互联网科技有限公司
深圳互联网科技怎么样
互联网还是高科技吗
湖南一路畅行互联网科技
互联网与医疗科技
电子科技大学互联网创业大赛
锡山区互联网智能科技产品供应
小米互联网科技园入驻
风投北京互联网科技
广州有谷有贝互联网科技有限公司
科技互联网企业在行动
中国互联网科技工作委员会毛军
互联网巨头反垄断金融科技
互联网科技开发公司
深圳互联网科技公司
重庆科技学院互联网
丰台科技园 互联网公司
顺网科技2021年互联网排名
互联网科技公司招聘
晓花互联网科技有限公司网址
威龙国际互联网科技公司