Mybatis基于约定的增删改查

约定的方式相对于基础方式只是定位sql语句的方法不一样

基础方式:
通过mapper.xml配置文件的namespace+标签id进行定位

		String statement = "Entity.studentMapper.queryStudentByStudentStuNo";

约定方式:
通过一个与mapper.xml配置文件一一对应的接口来取代statement
接口中的约定,在注释中列出来了
此处接口无需实现类,定位sql过程
根据接口名找到mapper.xml(namespace=接口全类名)
接口中方法名对应mapper.xml中标签id
StudentMapper 接口:

package Mapper;

import java.util.List;

import Entity.Student;

//操作Mybatis的接口
public interface StudentMapper {
	/**
	 * 1.方法名和mapper.xml文件中的标签值相同
	 * 2.方法的输入参数和mapper.xml文件中标签的parameterType类型一致
	 * 3.方法的返回值和mapper.xlm文件中标签的resultType类型一致
	 */
	
	Student queryStudentByStudentStuNo(int stuNo);
	int addStudent(Student student);
	int updateStudentByStuNo(Student student);
	int deleteStudentByStuNo(int stuNo);
	List<Student> queryAllStudent();
}

取代statement,
StudentMapper studentMapper = session.getMapper(StudentMapper.class);获取接口
studentMapper.queryStudentByStudentStuNo(1)直接调用接口中的方法
Test.java

package Test;

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

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 Entity.Student;
import Mapper.StudentMapper;

public class Test {

	// 查询单个学生
	public static void queryStudentByStuNO() throws IOException {
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		// session相当于connection
		SqlSession session = sessionFactory.openSession();
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		Student student = studentMapper.queryStudentByStudentStuNo(1);
		System.out.println(student);

		session.close();
	}

	// 查询所有学生
	public static void queryAllStudent() throws IOException {
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		// session相当于connection
		SqlSession session = sessionFactory.openSession();
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		List<Student> students =  studentMapper.queryAllStudent();
		System.out.println(students);

		session.close();
	}

	// 增加学生
	public static void addStudent() throws IOException {
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		// session相当于connection
		SqlSession session = sessionFactory.openSession();
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		Student student = new Student(4, "zl", 11, "z");
		int count = studentMapper.addStudent(student);
		session.commit();// 提交事物
		System.out.println("增加" + count + "学生");

		session.close();
	}

	// 删除学生
	public static void deleteStudentByStuNo() throws IOException {
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		// session相当于connection
		SqlSession session = sessionFactory.openSession();
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);

		int count = studentMapper.deleteStudentByStuNo(4);
		session.commit();// 提交事物
		System.out.println("删除" + count + "学生");

		session.close();
	}

	// 修改学生信息
	public static void updateStudentByStuNo() throws IOException {
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		// session相当于connection
		SqlSession session = sessionFactory.openSession();
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);

		Student student = new Student();
		student.setStuNo(3);
		student.setStuName("ww");
		student.setStuAge(11);
		student.setGraName("w");
		int count = studentMapper.updateStudentByStuNo(student);
		session.commit();
		
		session.close();
	}

	public static void main(String[] args) throws IOException {

//		queryStudentByStuNO();
//		addStudent();

//		deleteStudentByStuNo();
		updateStudentByStuNo();
		queryAllStudent();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值