網站首頁 編程語言 正文
目錄
mybatis增刪改查
模糊查詢的實現
mybatis增刪改查
首先配置好環境
編寫pom.xml 引入依賴,引入失敗的話先刪除倉庫文件,文件路徑在下圖的本地倉庫
還是失敗可以查看版本是否和idea兼容,不兼容可以降maven版本
然后在resource文件夾下編寫mybatis-congfig文件?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://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"/>
<property name="url" value="jdbc:你的數據庫名://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8"/>
<property name="username" value="root"/>
<property name="password" value="你的數據庫密碼"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
<mapper resource="mapper/UserMapper.xml"/>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
在main/java建文件夾pojo,在pojo下實體類Student
輸入變量,然后快速生成get和se,tostringt方法
package pojo;
public class Student {
private int stuno;
private String stuname;
private int grade;
private String dept;
private String classname;
public int getStuno() {
return stuno;
}
public void setStuno(int stuno) {
this.stuno = stuno;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
@Override
public String toString() {
return "Student{" +
"stuno=" + stuno +
", stuname='" + stuname + '\'' +
", grade=" + grade +
", dept='" + dept + '\'' +
", classname='" + classname + '\'' +
'}';
}
}
然后編寫工具類用于獲取數據庫連接
在main/java建文件夾utils,在utils下創建MybatiUtils文件
package utils;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
8 * 工具類
9 */
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory = null;
// 初始化SqlSessionFactory對象
static {
try {
// 使用MyBatis提供的Resources類加載MyBatis的配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
// 構建SqlSessionFactory工廠
sqlSessionFactory =
new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
// 獲取SqlSession對象的靜態方法
public static SqlSession getSession() {
return sqlSessionFactory.openSession();
}
}
在resouces下面創建mapper文件夾,并在mapper文件夾下創建映射文件StudentMapper.xml文件
增刪改查我一塊寫了,主要是懶得分開成好幾段
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.pojo.Student">
<!--通過id查-->
<select id="findstudentId" parameterType="Integer" resultType="pojo.Student">
select * from student where stuno = #{stuno}
</select>
<!--插入-->
<insert id="addstudent" parameterType="pojo.Student">
insert into student(stuno,stuname,grade,dept,classname)
values(#{stuno},#{stuname},#{grade},#{dept},#{classname})
</insert>
<!--更新,刪除
-->
<update id="updatestudent" parameterType="pojo.Student">
update student set stuno= #{stuno},stuname=#{stuname},grade=#{grade},dept= #{dept},classname= #{classname}
where stuno = #{stuno}
</update>
<delete id="deletestudent" parameterType="Integer">
delete from student where stuno=#{stuno}
</delete>
</mapper>
然后是編寫測試文件
在src/test/java文件夾下面創建測試類MybatisTest
編寫文件
package Test;
import pojo.Student;
import utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class MyBatisTest {
@Test
public void findTest(){
// 通過工具類生成SqlSession對象
SqlSession session = MyBatisUtils.getSession();
Student student= session.selectOne("findstudentId",1);
System.out.println(student);
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void fname(){
// 通過工具類生成SqlSession對象
SqlSession session = MyBatisUtils.getSession();
List<Student> students =session.selectList("findstudentname","小");
if (students != null&&students.size()>0) {
for (Student student1 : students) {
System.out.println(student1);
}
}
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void insertEmployeeTest(){
// 通過工具類生成SqlSession對象
SqlSession session = MyBatisUtils.getSession();
Student student = new Student();
student.setStuno(4);
student.setStuname("小小旭下士");
student.setGrade(1);
student.setDept("洗廁所");
student.setClassname("202");
int result = session.insert("addstudent",student);
if(result>0){
System.out.println("成功插入"+result+"條數據");
}else {
System.out.println("插入數據失敗");
}
System.out.println(student.toString());
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void updateEmployeeTest(){
// 通過工具類生成SqlSession對象
SqlSession session = MyBatisUtils.getSession();
Student student= new Student();
student.setStuno(3);
student.setStuname("大大桂將軍·");
student.setGrade(1);
student.setDept("洗廁所");
student.setClassname("202");
int result =
session.update("updatestudent",
student);
if(result>0){
System.out.println("成功更新"+result+"條數據");
}else {
System.out.println("更新數據失敗");
}
System.out.println(student.toString());
session.commit();
// 關閉SqlSession
session.close();
}
@Test
public void deleteEmployeeTest(){
// 通過工具類生成SqlSession對象
SqlSession session = MyBatisUtils.getSession();
int result =
session.delete("deletestudent",3);
if(result>0){
System.out.println("成功刪除"+result+"條數據");
}else {
System.out.println("刪除數據失敗");
}
session.commit();
// 關閉SqlSession
session.close();
}
}
然后直接運行就可以了
模糊查詢的實現
可以通過
like concat('%',#{字段名},'%')實現模糊查詢
例如
直接在mapper文件中添加
<select id="findstudentname" parameterType="String" resultType="com.itheima.pojo.Student">
? ? ? ? ? ? select * from student where stuname like concat('%',#{stuname},'%')
? ? </select>
可以實現對學生名字的快速查詢
原文鏈接:https://blog.csdn.net/weixin_59037232/article/details/127033077
相關推薦
- 2022-01-08 iframe 監聽滾動事件并滾動到指定位置
- 2022-09-25 Linux基礎組件之基于循環數組的無鎖隊列
- 2022-02-14 flutter封裝自定義打印信息
- 2022-07-27 Python中的協程(Coroutine)操作模塊(greenlet、gevent)_python
- 2022-10-10 使用Pyinstaller打包exe文件詳細圖文教程_python
- 2022-12-16 python靜態web服務器實現方法及代碼詳解_python
- 2022-05-26 為Jenkins創建定時構建任務_相關技巧
- 2023-11-11 tensorflow分布式報錯:tensorflow.python.framework.errors
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支