mybatis的增刪改查運用方式
一、總覽圖
代碼總覽圖
數(shù)據(jù)庫總覽圖
二、運用
數(shù)據(jù)庫的一張表對應(yīng)一個封裝類,一個mapper接口,一個mapper.xml文件, 一個實現(xiàn)類。表中的增刪改查都在里面編寫
但是配置xml文件整個數(shù)據(jù)庫只要一個就好了
1.pom.xml文件根據(jù)創(chuàng)建的maven或者spring項目去配置
2.mybatis統(tǒng)一配置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"> <!--數(shù)據(jù)庫信息--> <property name="driver" value="com.mysql.cj.jdbc.Driver"/><!--改:數(shù)據(jù)庫的固定連接,老版本不用cj--> <property name="url" value="jdbc:mysql://localhost:3306/mishop?useSSL=false&serverTimezone=UTC"/><!--mishop改:數(shù)據(jù)庫的要連接的庫--> <property name="username" value="root"/><!--改:數(shù)據(jù)庫的賬號--> <property name="password" value="root"/><!--改:數(shù)據(jù)庫的密碼--> </dataSource> </environment> </environments> <mappers> <!--加載映射文件--> <mapper resource="com/project/Mapper/AdminMapper.xml"/><!--改:把映射文件的源根路徑復(fù)制到這里--> </mappers> </configuration>
3.pojo里面的封裝類(屬性對應(yīng)數(shù)據(jù)庫表中的屬性)
ps:里面要含有set、get方法,有無參構(gòu)造方法、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 (封裝類 封裝類小寫) //括號要用封裝類是因為表里面那行數(shù)據(jù)都要進行增加 void add (Admin admin); //改 // void 自定義名稱 (封裝類 封裝類小寫); //括號要用封裝類是因為表里面那行數(shù)據(jù)都要進行增加 void updateId(Admin admin); //查全部 // list <pojo封裝類> 自定義全部查詢(); //因為是查詢?nèi)?,所以括號里面不用加任何參?shù) List<Admin> selectAll(); //查單個 //list <pojo封裝類> 自定義全部查詢(自定義參數(shù)根據(jù)id查詢); List<Admin> selectId(int id); //刪 // void 自定義名稱 (自定義參數(shù)為要根據(jù)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=對應(yīng)接口的全部路徑--> <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語句-根據(jù)id(封裝的屬性)進行刪除 --> <delete id="deleteId" parameterType="com.project.pojo.Admin"> delete from admin where adminId=#{adminId} </delete> <!--修改的SQL語句 --> <!--第一行:update修改標簽 id="接口定義的名字" parameterType="封裝類的全限名" --> <!-- 第二行:SQL語句-因為要修改的是那行的全部數(shù)據(jù),所以封裝的屬性都要一一對應(yīng)寫出來 --> <update id="updateId" parameterType="com.project.pojo.Admin"> update admin set adminName=#{adminName},adminPwd=#{adminPwd},adminDisable=#{adminDisable} where adminId=#{adminId} </update> <!--查詢?nèi)康腟QL語句 --> <!-- 第一行:select查詢標簽 resultType="封裝類的權(quán)限定名" --> <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.實現(xiàn)類(要運行哪個就直接從注釋里面提取出來就好)
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";//這是連接數(shù)據(jù)庫的 InputStream inputStream = Resources.getResourceAsStream(resource);//固定寫法 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//固定寫法 //2.獲取sqlSessionFactory對象--固定的寫法 SqlSession sqlSession = sqlSessionFactory.openSession(); //3.執(zhí)行sql語句 AdminMapper adminMapper = sqlSession.getMapper(AdminMapper.class); //以下這些用哪個執(zhí)行哪個 /* // 添加的方法 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); */ /* //查詢?nèi)康姆椒? List<Admin> selectAll = adminMapper.selectAll(); System.out.println(selectAll);*/ //提交 sqlSession.commit(); //6.釋放資源 sqlSession.close(); } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中@Autowired與@Resource注解的區(qū)別詳解
這篇文章主要介紹了Java中@Autowired與@Resource注解的區(qū)別詳解,@Resource的作用相當于@Autowired,只不過@Autowired按byType自動注入,而@Resource默認按 byName自動注入罷了,@Resource有兩個屬性是比較重要的,需要的朋友可以參考下2023-11-11