mybatis的增刪改查運用方式
一、總覽圖
代碼總覽圖

數(shù)據(jù)庫總覽圖

二、運用
數(shù)據(jù)庫的一張表對應一個封裝類,一個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"/><!--改:把映射文件的源根路徑復制到這里-->
</mappers>
</configuration>3.pojo里面的封裝類(屬性對應數(shù)據(jù)庫表中的屬性)
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 (封裝類 封裝類小寫)
//括號要用封裝類是因為表里面那行數(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=對應接口的全部路徑-->
<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ù),所以封裝的屬性都要一一對應寫出來 -->
<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="封裝類的權限定名" -->
<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();
}
}總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
shiro實現(xiàn)單點登錄(一個用戶同一時刻只能在一個地方登錄)
這篇文章主要介紹了shiro實現(xiàn)單點登錄(一個用戶同一時刻只能在一個地方登錄)的相關資料,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧2016-08-08
日常開發(fā)中,我們很多時候需要用到Java?8的Lambda表達式,它允許把函數(shù)作為一個方法的參數(shù),讓我們的代碼更優(yōu)雅、更簡潔。所以整理了一波工作中常用的Lambda表達式??赐暌欢〞袔椭?/div> 2022-11-11
Java基于Dijkstra算法實現(xiàn)校園導游程序
這篇文章主要為大家詳細介紹了Java基于Dijkstra算法實現(xiàn)校園導游程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法總結
在日常的Java開發(fā)中經(jīng)常會遇到需要在數(shù)組和List之間進行轉(zhuǎn)換的情況,這篇文章主要給大家介紹了關于java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-12-12最新評論

