mybatis第二天学习总结(上)

一.基于MybatisUtil工具类完成CURD操作
最主要的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属性是名称空间  必须唯一s\ -->
<mapper namespace="studentNameSpace">       
    <!-- 当实体属性和表字段名不相同的时候, 必须书写以下代码
    -->
    <resultMap type="bean2.Student" id="studentMap">
        <id  property="id" column="id"/>
        <result property="name" column="name" />
        <result property="sal" column="sal" />
    </resultMap>
    <!-- 增加学生
        如果参数不是一个实体,只是一个普通变量列如 int double  String 这里的#{变量名可以随便写}
     -->
    <insert id="add" parameterType="bean2.Student">
        INSERT INTO student(id,name,sal) values(#{id},#{name},#{sal})
    </insert>


    <!-- 根据id查询学生
        resultMap属性的值 为studentMap 返回的结果的值将和resultMap 对应 column 对应propety
     -->
    <select id="queryById" parameterType="int" resultType="bean2.Student">
        SELECT id,name,sal FROM student WHERE id = #{id}
    </select>


    <!-- 查询所有学生  返回类型理论上写List(Student)  但是这里只需要些List中的类型即可-->
    <select id="queryAllStudent" resultType="bean2.Student">  
            SELECT id,name,sal FROM student
    </select>


    <!-- 更新学生 -->
    <update id="update" parameterType="bean2.Student" > <!-- update没有resultType属性 -->
        UPDATE student set name = #{name},sal = #{sal} WHERE id = #{id}
    </update>


    <!-- 删除学生 -->
    <delete id="delete" parameterType="bean2.Student" > <!-- delete没有resultType属性 -->
        DELETE FROM student where id = #{id}    
    </delete>
    <!-- <insert id="delete" parameterType="bean2.Student">  这样也可以删除成功 
        DELETE FROM student where id = #{id}    
    </insert>-->


    <!-- 这个insert/update/delete 标签只是一个模板  在做操作时候,其实是以sql语句为中心的
            即在做增删改时候,insert/update/delete可以通用
            但做查询时候只能用select标签
            但提倡操作什么就用什么标签  规范
     -->

</mapper>

二.mybatis分页查询

<?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属性是名称空间  必须唯一s\ -->
<mapper namespace="studentNameSpace">       
    <!-- 当实体属性和表字段名不相同的时候, 必须书写以下代码
    -->
    <resultMap type="bean3.Student" id="studentMap">
        <id  property="id" column="id"/>
        <result property="name" column="name" />
        <result property="sal" column="sal" />
    </resultMap>
    <!--  普通的分页-->
    <select id="queryAllWithPage"  parameterType="map" resultType="bean3.Student" >
        select id,name,sal from student limit #{pbegin},#{plength}
    </select>
    <!--根据名字的分页 -->
    <select id="queryAllByNameWithPage"  parameterType="map" resultType="bean3.Student" >
        select id,name,sal from student where name like #{pname} limit #{pbegin},#{plength}
    </select>
</mapper>


StudentDao代码:
/**
     *  分页查询
     * @param begin 表示在mysql中表示从第几条记录的索引号开始  索引从0开始
     * @param length   表示在mysql中最多显示 几条记录
     * @return
     */
    public List<Student> queryAllWithPage(int begin,int length){
        SqlSession sqlSession = null;
        try {
            sqlSession = MybatisUtil.getSqlSession();
            Map<String, Object> map = new LinkedHashMap<String, Object>(); 
            map.put("pbegin", begin);
            map.put("plength", length);
            return sqlSession.selectList("studentNameSpace.queryAllWithPage", map);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally {
            MybatisUtil.closeSqlsession();
        }
        return null;
    }
*  分页查询
     * @param begin 表示在mysql中表示从第几条记录的索引号开始  索引从0开始 
     * @param length   表示在mysql中最多显示 几条记录
     * @param name name 表示分页查询的name属性
     * @return
     */
public List<Student> queryAllByNameWithPage(String name,int begin,int length){
        SqlSession sqlSession = null;
        try {
            sqlSession = MybatisUtil.getSqlSession();
            Map<String, Object> map = new LinkedHashMap<>();
            map.put("pname", "%"+name+"%");
            map.put("pbegin",begin );
            map.put("plength",length );
            return sqlSession.selectList("studentNameSpace.queryAllByNameWithPage", map);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally {
            MybatisUtil.closeSqlsession();
        }
        return null;
    }

猜你喜欢

转载自blog.csdn.net/qq_39411208/article/details/81386329