mybatis增删改查实现以及模糊查询

目录

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>

可以实现对学生名字的快速查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值