在日常编辑过程中主要修改的文件:
1、mapper中的接口——定义方法
2、resources-mybatis中的studentMapper.xml——sql语句
添加新的Mapper.xml文件
3、测试类——实例化对象,调用接口中的方法
4、添加新的实体类
注意对应关系
代码:
1、接口 StudentMapper
package com.yang.mapper;
import com.yang.bean.Students;
import java.util.List;
public interface StudentMapper {
/*查询所有学生信息*/
public List<Students> queryAll();
/*根据id查询学生信息*/
// 返回值类型 方法名 (参数类型 参数名)
public Students queryById(Students students);
/*根据id逻辑删除某条记录*/
public int deleteById(Students students);
/*增加一条记录*/
public int insert(Students students);
/*根据id物理删除一条数据*/
public int realDeleteById(Students students);
}
2、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" >
<!--namespace命名空间 需要跟Mapper接口文件位置相同-->
<mapper namespace="com.yang.mapper.StudentMapper">
<!--resultType返回值类型,查询的是所有学生,所以返回学生对象,mybatis自动封装到集合中-->
<select id="queryAll" resultType="Students">
select * from students
</select>
<!--根据id查询学生信息-->
<!--parameterType为接受的数据类型(传过来的参数类型),这里可以为stu_id,
但为了体现面向对象编程思想,所以用对象(实体类)作为传过来的参数类型,
通过对象(set方法)得到其中某个字段的值(#{stu_id})-->
<!--resultType返回值类型,将值返回给studentMapper.xml中根据id对应的方法,
然后测试类就可以调用到这个返回值-->
<select id="queryById" resultType="Students" parameterType="Students">
select * from students where stu_id = #{stu_id} and is_del = 0
</select>
<!--根据id物理删除某条数据-->
<update id="deleteById" parameterType="Students">
update students set is_del = 1 where stu_id = #{stu_id}
</update>
<!--增加一条数据-->
<insert id="insert" parameterType="Students">
insert into students (stu_name,stu_age,stu_sex,tea_id,is_del) values (#{stu_name},#{stu_age},#{stu_sex},#{tea_id},0)
</insert>
<!--根据id物理删除一条数据-->
<delete id="realDeleteById" parameterType="Students">
delete from students where stu_id = #{stu_id}
</delete>
</mapper>
3、测试类
import com.yang.bean.Students;
import com.yang.mapper.StudentMapper;
import com.yang.utils.DBUtils;
import org.apache.ibatis.session.SqlSession;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
/*调用DBUtils中的getSqlSession()方法*/
SqlSession sqlSession = DBUtils.getSqlSession();
/*通过.class的方式调用接口*/
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
//查询所有学生信息
/*实例化后调用queryAll()方法*/
System.out.println("———————————————查询所有学生信息———————————————");
List<Students> studentsList = studentMapper.queryAll();
/*遍历studentsList集合*/
for (Students s:studentsList) {
System.out.println(s);
}
System.out.println();
//根据id查询学生信息
/*创建Students对象parameterStudentsQuery 作为载体 给id赋值后传入mapper文件*/
System.out.println("———————————————根据id查询学生信息———————————————");
Students parameterStudentsQuery = new Students();
parameterStudentsQuery.setStu_id(1);
Students studentsQuery = studentMapper.queryById(parameterStudentsQuery);
System.out.println(studentsQuery);
System.out.println();
//根据id逻辑删除某条数据
System.out.println("———————————————根据id逻辑删除某条数据———————————————");
/*创建Students对象parameterStudentsDelete 作为载体 给id赋值后传入mapper文件*/
Students parameterStudentsDelete = new Students();
parameterStudentsDelete.setStu_id(2);
int studentsDelete = studentMapper.deleteById(parameterStudentsDelete);
if (studentsDelete>0){
System.out.println("删除成功");
}
System.out.println();
//增加一条数据
System.out.println("———————————————增加一条数据———————————————");
/*创建Students对象parameterStudentsDelete 作为载体 给id赋值后传入mapper文件*/
Students parameterStudentsInsert = new Students();
parameterStudentsInsert.setStu_name("彭于晏");
parameterStudentsInsert.setStu_age(30);
parameterStudentsInsert.setStu_sex(1);
parameterStudentsInsert.setTea_id(2);
int studentsInsert = studentMapper.insert(parameterStudentsInsert);
if (studentsInsert>0){
System.out.println("添加成功");
}
System.out.println();
//删除一条数据
System.out.println("———————————————删除一条数据———————————————");
/*创建Students对象parameterStudentsDelete 作为载体 给id赋值后传入mapper文件*/
Students parameterStudentsRealDelete = new Students();
parameterStudentsRealDelete.setStu_id(19);
int studentsRealDelete = studentMapper.realDeleteById(parameterStudentsRealDelete);
if (studentsRealDelete>0){
System.out.println("删除成功");
}
System.out.println();
}
}