当前位置: 首页 > news >正文

mybatis的增删改查运用

目录

一、总览图

二、运用 


一、总览图

代码总览图 

 数据库总览图

 

二、运用 

数据库的一张表对应一个封装类,一个mapper接口,一个mapper.xml文件, 一个实现类。表中的增删改查都在里面编写

但是配置xml文件整个数据库只要一个就好了

1.pom.xml文件根据创建的maven或者spring项目去配置

2.mybatis统一配置xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--数据库信息--><property name="driver" value="com.mysql.cj.jdbc.Driver"/><!--改:数据库的固定连接,老版本不用cj--><property name="url" value="jdbc:mysql://localhost:3306/mishop?useSSL=false&amp;serverTimezone=UTC"/><!--mishop改:数据库的要连接的库--><property name="username" value="root"/><!--改:数据库的账号--><property name="password" value="root"/><!--改:数据库的密码--></dataSource></environment></environments><mappers><!--加载映射文件--><mapper resource="com/project/Mapper/AdminMapper.xml"/><!--改:把映射文件的源根路径复制到这里--></mappers>
</configuration>

 

3.pojo里面的封装类(属性对应数据库表中的属性)

ps:里面要含有set、get方法,有无参构造方法、toString

package com.project.pojo;public class Admin {private Integer adminId;private String adminName;private String adminPwd;private Integer adminDisable;public Integer getAdminId() {return adminId;}public void setAdminId(Integer adminId) {this.adminId = adminId;}public String getAdminName() {return adminName;}public void setAdminName(String adminName) {this.adminName = adminName;}public String getAdminPwd() {return adminPwd;}public void setAdminPwd(String adminPwd) {this.adminPwd = adminPwd;}public Integer getAdminDisable() {return adminDisable;}public void setAdminDisable(Integer adminDisable) {this.adminDisable = adminDisable;}public Admin(Integer adminId, String adminName, String adminPwd, Integer adminDisable) {this.adminId = adminId;this.adminName = adminName;this.adminPwd = adminPwd;this.adminDisable = adminDisable;}public Admin() {}@Overridepublic String toString() {return "Admin{" +"adminId=" + adminId +", adminName='" + adminName + '\'' +", adminPwd='" + adminPwd + '\'' +", adminDisable=" + adminDisable +'}';}
}

4.SQL语句接口映射文件(小蓝鸟

ps:红蓝小鸟插件(作用:方便好看)

package com.project.Mapper;import com.project.pojo.Admin;import java.util.List;
public interface AdminMapper {//增// void (封装类 封装类小写)//括号要用封装类是因为表里面那行数据都要进行增加void add (Admin admin);//改// void 自定义名称 (封装类 封装类小写);//括号要用封装类是因为表里面那行数据都要进行增加void updateId(Admin admin);//查全部// list <pojo封装类> 自定义全部查询();//因为是查询全部,所以括号里面不用加任何参数List<Admin> selectAll();//查单个//list <pojo封装类> 自定义全部查询(自定义参数根据id查询);List<Admin> selectId(int id);//删// void 自定义名称 (自定义参数为要根据id进行删除);void deleteId(int id);
}

5.编写SQL语句映射的xml文件(小红鸟

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--sql映射查询方法--><!--namespace=对应接口的全部路径-->
<mapper namespace="com.project.Mapper.AdminMapper"><!--新增的SQL语句    --><!--第一行:insert新增标签 id="接口定义的名字"  parameterType="封装类的全限名"     --><!--第二行:SQL语句-自增id用null,其他的用#{封装类的属性名} ,....   --><insert id="add" parameterType="com.project.pojo.Admin">insert into admin values (null,#{adminName},#{adminPwd},#{adminDisable})</insert><!--删除的SQL语句    --><!-- 第一行:delete删除标签 id="接口定义的名字"  parameterType="封装类的全限名"   --><!--第二行:SQL语句-根据id(封装的属性)进行删除    --><delete id="deleteId" parameterType="com.project.pojo.Admin">delete from admin where adminId=#{adminId}</delete><!--修改的SQL语句    --><!--第一行:update修改标签  id="接口定义的名字"  parameterType="封装类的全限名"   --><!-- 第二行:SQL语句-因为要修改的是那行的全部数据,所以封装的属性都要一一对应写出来    --><update id="updateId" parameterType="com.project.pojo.Admin">update admin set adminName=#{adminName},adminPwd=#{adminPwd},adminDisable=#{adminDisable} where adminId=#{adminId}</update><!--查询全部的SQL语句    --><!-- 第一行:select查询标签  resultType="封装类的权限定名"  --><select id="selectAll" resultType="com.project.pojo.Admin">select * from admin</select><!-- 查询单个的SQL语句  如上 --><select id="selectId" resultType="com.project.pojo.Admin">select * from admin where AdminId=#{adminId}</select></mapper>

6.实现类(要运行哪个就直接从注释里面提取出来就好)

package com.project.pojo;import com.project.Mapper.AdminMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;public class AdminImpl {public static void main(String[] args) throws IOException {//1.加载mybatis连接文件(核心配置文件)String resource = "mybatis-config.xml";//这是连接数据库的InputStream inputStream = Resources.getResourceAsStream(resource);//固定写法SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//固定写法//2.获取sqlSessionFactory对象--固定的写法SqlSession sqlSession = sqlSessionFactory.openSession();//3.执行sql语句AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class);//以下这些用哪个执行哪个/*         // 添加的方法Admin admin = new Admin();admin.setAdminName("wangwu");admin.setAdminPwd("8888");admin.setAdminDisable(54);//Mapper接口里面的添加方法adminMapper.add(admin);*//*        Mapper接口里面的删除方法adminMapper.deleteId(14);*//*      修改的方法Admin admin = new Admin();admin.setAdminId(7);admin.setAdminName("王五");admin.setAdminPwd("123456");admin.setAdminDisable(5555);//Mapper接口里面的修改方法adminMapper.updateId(admin);*//*      查询单个的方法,Mapper接口里面的查询方法List<Admin> selectId = adminMapper.selectId(5);System.out.println(selectId);*//*        //查询全部的方法List<Admin> selectAll = adminMapper.selectAll();System.out.println(selectAll);*///提交sqlSession.commit();//6.释放资源sqlSession.close();}}

 总结:路是一步一步慢慢走的,饭是一口一口吃的,每天进步,打好基础就好

有什么问题都可以评论区留言,看见都会回复的

如果你觉得本篇文章对你有所帮助的,多多支持吧!!!

点赞收藏评论,抱拳了!

http://www.lryc.cn/news/27315.html

相关文章:

  • centos8安装docker运行java文件
  • Docker容器化部署.net core API
  • springcloud 服务调用feign、熔断hystrix、网关gateway
  • 《C++ Primer》 第十二章 动态内存
  • 多个关键字用or、and、包含、不包含动态拼接为正则表达式和SQL查询条件
  • 初始Linux操作系统
  • 【算法数据结构体系篇class12、13】:二叉树
  • 数字IC手撕代码--联发科(总线访问仲裁)
  • 白盒测试复习重点
  • 学习C++这几个网站足矣
  • 第十四届蓝桥杯模拟赛(第三期)——C语言版
  • Flutter Button 实例
  • 好玩的docker项目,盒子刷的海思nas,挂载外接硬盘。qb种子
  • RabbitMQ的使用
  • Selenium如何隐藏浏览器页面?
  • 基于Ant DesignPro Vue实现通过SpringBoot后台加载自定义菜单- 前后端分离
  • Acwing---843. n-皇后问题
  • 彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏
  • 自动驾驶目标检测项目实战——基于深度学习框架yolov的交通标志检测
  • flink兼容性验证
  • 智慧工厂数字孪生可视化监测系统有效提升厂区安全管控效力
  • c++中基本类型详细解释外加基本运算规则
  • 扬帆优配“机器人+”方案加码产业发展,这些股有望高增长
  • 推送投票制作微信推送里投票制作教程在线投票活动制作
  • 【架构师】跟我一起学架构——微服务分层监控
  • Linux:https静态网站搭建案例
  • 前端css整理
  • 混凝土搅拌站远程监控解决方案
  • Spark SQL 学习总结
  • 深度学习 - 37.TF x Keras Deep Cross Network DCN 实现