mybatis的增删改查运用方式
一、总览图
代码总览图
数据库总览图
二、运用
数据库的一张表对应一个封装类,一个mapper接口,一个mapper.xml文件, 一个实现类。表中的增删改查都在里面编写
但是配置xml文件整个数据库只要一个就好了
1.pom.xml文件根据创建的maven或者spring项目去配置
2.mybatis统一配置xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//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&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() { } @Override public String toString() { return "Admin{" + "adminId=" + adminId + ", adminName='" + adminName + '\'' + ", adminPwd='" + adminPwd + '\'' + ", adminDisable=" + adminDisable + '}'; } }
4.SQL语句接口映射文件(小蓝鸟)
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 mapper PUBLIC "-//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(); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
快速校验实体类时,@Valid,@Validated,@NotNull注解无效的解决
这篇文章主要介绍了快速校验实体类时,@Valid,@Validated,@NotNull注解无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10解决Spring boot2.0+配置拦截器拦截静态资源的问题
这篇文章主要介绍了解决Spring boot2.0+配置拦截器拦截静态资源的问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-08-08springmvc请求转发和重定向问题(携带参数和不携带参数)
这篇文章主要介绍了springmvc请求转发和重定向问题(携带参数和不携带参数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-10-10如何使用Spring Boot实现自定义Spring Boot插件
在本文中,我们介绍了如何使用 Spring Boot 实现自定义插件,使用自定义插件可以帮助我们快速地添加一些额外的功能,提高系统的可扩展性和可维护性,感兴趣的朋友跟随小编一起看看吧2023-06-06
最新评论