MyBatis的CRUD操作

Mybatis的CRUD操作

  1. 配置 Student.xml
    首先,我们在 SQL 映射文件中新增语句,用来支撑 CRUD 的系列操作
<?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="pojo">
    <select id="listStudent" resultType="Student">
        select * from  student
    </select>

    <insert id="addStudent" parameterType="Student">
        insert into student (id, studentID, name) values (#{id},#{studentID},#{name})
    </insert>

    <delete id="deleteStudent" parameterType="Student">
        delete from student where id = #{id}
    </delete>

    <select id="getStudent" parameterType="_int" resultType="Student">
        select * from student where id= #{id}
    </select>

    <update id="updateStudent" parameterType="Student">
        update student set name=#{name} where id=#{id}
    </update>
</mapper>
  • parameterType:要求输入参数的类型
  • resultType:输出的类型
  1. 第二步:实现增删改查
  2. `package test;

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 pojo.Student;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TestMyBatis {

public static void main(String[] args) throws IOException {
    // 根据 mybatis-config.xml 配置的信息得到 sqlSessionFactory
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    // 然后根据 sqlSessionFactory 得到 session
    SqlSession session = sqlSessionFactory.openSession();

    // 增加学生
    Student student1 = new Student();
    student1.setId(4);
    student1.setStudentID(4);
    student1.setName("新增加的学生");
    session.insert("addStudent", student1);

    // 删除学生
    Student student2 = new Student();
    student2.setId(1);
    session.delete("deleteStudent", student2);

    // 获取学生
    Student student3 = session.selectOne("getStudent", 2);

    // 修改学生
    student3.setName("修改的学生");
    session.update("updateStudent", student3);

    // 最后通过 session 的 selectList() 方法调用 sql 语句 listStudent
    List<Student> listStudent = session.selectList("listStudent");
    for (Student student : listStudent) {
        System.out.println("ID:" + student.getId() + ",NAME:" + student.getName());
    }

    // 提交修改
    session.commit();
    // 关闭 session
    session.close();
}

}`
上述的程序中:

  • 通过 session.insert(“addStudent”, student1); 增加了一个 ID 和 studentID 都为 4,名字为“新增加的学生” 的学生
  • 通过 session.delete(“deleteStudent”, student2); 删除了 ID = 1 的学生
  • 通过 Student student3 = session.selectOne(“getStudent”, 2); 获取了 ID = 2的学生
  • 通过 session.update(“updateStudent”, student3); 将 ID = 2
    的学生的名字修改为 “修改的学生” 通过 session.commit() 来提交事务,也可以简单理解为更新到数据库

条件查询

<select id="findStudentByName" parameterMap="java.lang.String" resultType="Student">
    SELECT * FROM student WHERE name LIKE '%${value}%' 
</select>

注意: 标签对中 SQL 语句的 “ $ {}” 符号,表示拼接 SQL 串,将接受的参数内容不加任何修饰地拼接在 SQL 中,在 “${}” 中只能使用 value 来代表其中的参数。

@Test
public void test() throws IOException {

    // 根据 mybatis-config.xml 配置的信息得到 sqlSessionFactory
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    // 然后根据 sqlSessionFactory 得到 session
    SqlSession session = sqlSessionFactory.openSession();

    // 模糊查询
    List<Student> students = session.selectList("findStudentByName", "三颗心脏");
    for (Student student : students) {
        System.out.println("ID:" + student.getId() + ",NAME:" + student.getName());
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值