mybaits(3)_使用注解进行增删改查

来源:互联网 发布:安阳市网络教育平台 编辑:程序博客网 时间:2024/06/05 02:09

在上一篇博客的基础之上,使用mybaits的方式进行stu表格进行增删改查。

第一步 创建接口类 StudentDao

创建dao接口,声明对stu表所需的一般性操作,并且使用注解的方式注入sql语句。

这里写图片描述

package com.test.dao;import java.util.List;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;import com.test.entity.Student;public interface StudentDao2 {    //根据id查询学生    @Select("SELECT * FROM stu WHERE sno = #{sno}; ")    public Student getOneStudent2(int sno);    //获取所有的学生    @Select("SELECT * FROM stu;")    public List<Student> getAllStudent2();    //获取所有女生    @Select("SELECT * FROM stu WHERE sex = 0;")    public List<Student> getAllGirls2();    //增加一个学生    @Insert("INSERT INTO stu(name,age,sex) VALUES(#{name},#{age},#{sex});")    public int addOneStudent2(Student stu);    //更新学生信息    @Update("UPDATE stu SET name = #{name},age = #{age},sex = #{sex} "            + "WHERE sno = #{sno}")    public int updateStudent2(Student stu);    //删除一个学生    @Delete("DELETE FROM stu WHERE sno = #{sno};")    public int deleteStudent2(Student stu);}

第二步 在myaits-config.xml中注册接口

    <mappers>        <mapper class="com.test.dao.StudentDao2"/>    </mappers>

第二步 在测试类中增加测试用例

package com.test.service;import java.io.IOException;import java.io.Reader;import java.util.Iterator;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 org.junit.Test;import com.test.entity.Student;public class MainTest2 {    static Reader reader;    static SqlSessionFactory sqlSessionFactory;    static SqlSession sqlSession;    static {        try {            reader = Resources.getResourceAsReader("config/mybaits-config.xml");            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            sqlSession = sqlSessionFactory.openSession();        } catch (IOException e) {            e.printStackTrace();        }    }    @Test    public void getOneStudent() throws IOException {        Student stu = sqlSession.selectOne("getOneStudent2",4);        sqlSession.commit();//要提交会话        System.out.println(stu.toString());    }    @Test    public void getAllStudent() {        List<Student> stus = sqlSession.selectList("getAllStudent2");        sqlSession.commit();//要提交会话        showList(stus);    }    @Test    public void getAllGirls() {        List<Student> stus = sqlSession.selectList("getAllGirls2");        sqlSession.commit();//要提交会话        showList(stus);    }    @Test    public void addOneStudent() {        Student stu = new Student(10, "wahaha", 0, 20);        int num = sqlSession.insert("addOneStudent2",stu);        sqlSession.commit();//要提交会话        isSuccess(num);    }    @Test    public void updateStudent() {        Student stu = new Student(4, "hahah", 0, 20);        int num = sqlSession.update("updateStudent2",stu);        sqlSession.commit();//要提交会话        isSuccess(num);    }    @Test    public void deleteStudent() {        Student stu = new Student(4, "balala", 0, 20);        int num = sqlSession.delete("deleteStudent2",stu);        sqlSession.commit();//要提交会话        isSuccess(num);    }    //展示查询结果    public void showList(List<Student> stus) {        if(stus.size() < 1) {            System.out.println("没有查询到数据");        }else {            Iterator<Student> iterator = stus.iterator();            while(iterator.hasNext()) {                System.out.println(iterator.next().toString());            }        }    }    //命令是否执行成功    public void isSuccess(int flag) {        if(flag >= 1) {            System.out.println("命令执行成功,影响行数为:" + flag);        }else {            System.out.println("命令执行失败");        }    }}

经过测试,可以执行增删改查