Mybatis的CRUD

Mybatis的CRUD操作

  • Dao层
/*ClassesDao.java*/

public interface ClassesDao {

    /*查询所有班级*/
    public List<Classes> selectAll();
    /*添加班级*/
    public int insertClasses(Classes classes);
    /*修改班级*/
    public int updateClasses(Classes classes);
    /*删除班级*/
    public int deleteClasses(int id);
    /*根据id查询班级信息*/
    public Classes selectOne(int id);
    /*根据名称模糊查询班级信息*/
    public List<Classes> selectByName(String name);
    /*查询总班级数*/
    public int selectTotal();

}
  • Mapper.xml
<!--ClassesMapper.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.srzx.dao.ClassesDao">

    <!--查询所有班级-->
    <select id="selectAll" resultType="com.srzx.entity.Classes">
        select * from classes;
    </select>

    <!--添加班级-->
    <insert id="insertClasses" parameterType="com.srzx.entity.Classes">
        <!--配置插入操作后,获取插入的数据-->
        <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
            select last_insert_id()
        </selectKey>
        insert into classes(name,num,major) values(#{name},#{num},#{major})
    </insert>

    <!--修改班级-->
    <update id="updateClasses" parameterType="com.srzx.entity.Classes">
        update classes set name=#{name},num=#{num},major=#{major} where id=#{id}
    </update>

    <!--删除班级-->
    <delete id="deleteClasses" parameterType="int">
        delete from classes where id=#{id};
    </delete>

    <!--根据id查询班级信息-->
    <select id="selectOne" parameterType="int" resultType="com.srzx.entity.Classes">
        select * from classes where id=#{id}
    </select>

    <!--根据名称模糊查询班级信息-->
    <select id="selectByName" parameterType="string" resultType="com.srzx.entity.Classes">
        select * from classes where name like #{name}
    </select>

    <!--查询总班级数-->
    <select id="selectTotal" resultType="int">
        select count(id) from classes;
        <!--模糊查询的第二种方式-->
        <!-- select * from classes where name like '%${value}%'-->
    </select>

</mapper>
  • Test
//TestClasses.java

public class TestClasses {
    private InputStream is = null;
    private SqlSession session = null;
    private ClassesDao cd = null;

    @Before//用于在测试方法执行之前执行
    public void init(){
        try {
            //1.读取配置文件,生成字节输入流
            is = Resources.getResourceAsStream("mybatis-config.xml");
            //2.获取SqlSessionFactory
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
            //3.获取SqlSession对象
            session = factory.openSession(true);
            //4.获取dao的代理对象
            cd = session.getMapper(ClassesDao.class);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @After//用于在测试方法执行之后执行
    public void destroy()throws IOException{

        //提交事务
        session.commit();

        //6.释放资源
        session.close();
        is.close();
    }
    /*测试查询所有*/
    @Test
    public void testSelectAll(){

            List<Classes> list = cd.selectAll();
            for (Classes c:list) {
                System.out.println("c = " + c);
            }

    }
    /*测试添加操作*/
    @Test
    public void testInsertClasses(){

        Classes classes = new Classes("sui1911",30,"ui");
        int row = cd.insertClasses(classes);
        System.out.println("row = " + row);
        System.out.println("classes = " + classes);



    }
    /*测试修改操作*/
    @Test
    public void testUpdateClasses(){

        Classes clz = new Classes(10018,"sui1908",50,"ui");
        int row2 = cd.updateClasses(clz);
        System.out.println("row2 = " + row2);
        System.out.println("clz = " + clz);

    }
    /*测试删除操作*/
    @Test
    public void testDeleteClasses(){

        int row3 = cd.deleteClasses(10043);
        System.out.println("row3 = " + row3);

    }
    /*测试根据id查询班级信息操作*/
    @Test
    public void testSelectOne(){

        Classes clz2 = cd.selectOne(10018);
        System.out.println("clz2 = " + clz2);


    }
    /*测试根据名称模糊查询班级信息*/
    @Test
    public void testSelectByName(){

        List<Classes> list2 = cd.selectByName("%u%");
        /*List<Classes> list2 = cd.selectByName("u");*/
        for (Classes c:list2) {
            System.out.println("c = " + c);
        }
    }
   /*测试查询总班级数*/
    @Test
    public void testSelectTotal(){
        
        int count = cd.selectTotal();
        System.out.println("count = " + count);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值