mybatis的增刪改查運(yùn)用方式
一、總覽圖
代碼總覽圖
數(shù)據(jù)庫總覽圖
二、運(yùn)用
數(shù)據(jù)庫的一張表對應(yīng)一個(gè)封裝類,一個(gè)mapper接口,一個(gè)mapper.xml文件, 一個(gè)實(shí)現(xiàn)類。表中的增刪改查都在里面編寫
但是配置xml文件整個(gè)數(shù)據(jù)庫只要一個(gè)就好了
1.pom.xml文件根據(jù)創(chuàng)建的maven或者spring項(xiàng)目去配置
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語句接口映射文件(小藍(lán)鳥)
package com.project.Mapper; import com.project.pojo.Admin; import java.util.List; public interface AdminMapper { //增 // void (封裝類 封裝類小寫) //括號要用封裝類是因?yàn)楸砝锩婺切袛?shù)據(jù)都要進(jìn)行增加 void add (Admin admin); //改 // void 自定義名稱 (封裝類 封裝類小寫); //括號要用封裝類是因?yàn)楸砝锩婺切袛?shù)據(jù)都要進(jìn)行增加 void updateId(Admin admin); //查全部 // list <pojo封裝類> 自定義全部查詢(); //因?yàn)槭遣樵內(nèi)浚岳ㄌ柪锩娌挥眉尤魏螀?shù) List<Admin> selectAll(); //查單個(gè) //list <pojo封裝類> 自定義全部查詢(自定義參數(shù)根據(jù)id查詢); List<Admin> selectId(int id); //刪 // void 自定義名稱 (自定義參數(shù)為要根據(jù)id進(jìn)行刪除); 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新增標(biāo)簽 id="接口定義的名字" parameterType="封裝類的全限名" --> <!--第二行:SQL語句-自增id用null,其他的用#{封裝類的屬性名} ,.... --> <insert id="add" parameterType="com.project.pojo.Admin"> insert into admin values (null,#{adminName},#{adminPwd},#{adminDisable}) </insert> <!--刪除的SQL語句 --> <!-- 第一行:delete刪除標(biāo)簽 id="接口定義的名字" parameterType="封裝類的全限名" --> <!--第二行:SQL語句-根據(jù)id(封裝的屬性)進(jìn)行刪除 --> <delete id="deleteId" parameterType="com.project.pojo.Admin"> delete from admin where adminId=#{adminId} </delete> <!--修改的SQL語句 --> <!--第一行:update修改標(biāo)簽 id="接口定義的名字" parameterType="封裝類的全限名" --> <!-- 第二行:SQL語句-因?yàn)橐薷牡氖悄切械娜繑?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查詢標(biāo)簽 resultType="封裝類的權(quán)限定名" --> <select id="selectAll" resultType="com.project.pojo.Admin"> select * from admin </select> <!-- 查詢單個(gè)的SQL語句 如上 --> <select id="selectId" resultType="com.project.pojo.Admin"> select * from admin where AdminId=#{adminId} </select> </mapper>
6.實(shí)現(xiàn)類(要運(yùn)行哪個(gè)就直接從注釋里面提取出來就好)
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); //以下這些用哪個(gè)執(zhí)行哪個(gè) /* // 添加的方法 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); */ /* 查詢單個(gè)的方法,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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot錯(cuò)誤頁面和錯(cuò)誤信息定制操作
這篇文章主要介紹了Springboot錯(cuò)誤頁面和錯(cuò)誤信息定制操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java中@Autowired與@Resource注解的區(qū)別詳解
這篇文章主要介紹了Java中@Autowired與@Resource注解的區(qū)別詳解,@Resource的作用相當(dāng)于@Autowired,只不過@Autowired按byType自動注入,而@Resource默認(rèn)按 byName自動注入罷了,@Resource有兩個(gè)屬性是比較重要的,需要的朋友可以參考下2023-11-11Maven?自動化構(gòu)建的實(shí)現(xiàn)示例
本文主要介紹了Maven?自動化構(gòu)建的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05IDEA連接達(dá)夢數(shù)據(jù)庫的詳細(xì)配置指南
達(dá)夢數(shù)據(jù)庫(DM Database)作為國產(chǎn)關(guān)系型數(shù)據(jù)庫的代表,廣泛應(yīng)用于企業(yè)級系統(tǒng)開發(fā),本文將詳細(xì)介紹如何在IntelliJ IDEA中配置并連接達(dá)夢數(shù)據(jù)庫,助力開發(fā)者高效完成數(shù)據(jù)庫開發(fā)工作,需要的朋友可以參考下2025-03-03Java中兩個(gè)List之間的比較方法(差集、交集和并集)
在業(yè)務(wù)的開發(fā)過程中會經(jīng)常用到兩個(gè)List集合相互取值的情況,下面這篇文章主要給大家介紹了關(guān)于Java中兩個(gè)List之間的比較方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06