日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

mybatis增刪改查實現以及模糊查詢

作者:當然是我mq哥 更新時間: 2022-09-25 編程語言

目錄

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&amp;characterEncoding=UTF-8&amp;userSSL=false&amp;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

欄目分類
最近更新