• Mybatis——增删改查(二)


    DAO中代码

    package cn.alexander.dao;
    
    import cn.alexander.entity.Dept;
    
    import java.util.List;
    import java.util.Map;
    
    public interface IDeptDAO {
        /**
         * 查询所有的部门
          */
    
        public List<Dept> findAll();
    
        /**
         *添加部门
         */
        public void addDept(Dept dept);
        /**
         *添加部门,并获得添加后的主键
         * @param dept
         */
        public void addDeptCachedId(Dept dept);
        /**
         *删除部门
         * @param
         */
        public void delete(Integer deptno);
    
        /**
         * 修改部门信息
         */
        public void updateDept(Dept dept);
    
    
        /**
         *查询所有返回map集合
         * @param
         */
        Map<String,Object> selectAllByMap();
        /**
         *模糊查询
         * @param
         */
        List<Dept> selectByName(String name);
    }

    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 namespace="cn.alexander.dao.IDeptDAO">
        <!-- 查询所有操作-->
        <select id="findAll" resultType="Dept">
            select * from dept
        </select>
        <!-- 添加 操作-->
        <insert id="addDept" parameterType="cn.alexander.entity.Dept">
            INSERT INTO dept(deptname) values(#{deptname})
        </insert>
        <!-- 添加操作,并且获得添加后的主键值-->
        <insert id="addDeptCachedId" parameterType="cn.alexander.entity.Dept">
            INSERT INTO dept(deptname) values(#{deptname})
            <selectKey resultType="int" keyProperty="deptno" order="AFTER">
                select
                @@identity
            </selectKey>
        </insert>
        <!-- 删除操作-->
        <delete id="delete" >
            <!--#{sa} sa仅仅就是一个占位符 写成什么都是可以的 -->
            DELETE from dept where deptno= #{sa}
        </delete>
        <!-- 修改操作,传递一个dept对象-->
        <update id="updateDept" parameterType="Dept">
            update dept set deptname=#{deptname} where  deptno=#{deptno}
        </update>
        <!-- 查询所有dept 返回值是map 如果我们写的是resultType="map",那么mybatis在底层会把我们的每个字段当成key,字段对象的值是value,这样不可行。我们是想把某一个字段当成key,整行数据当做value,这时候就需要把resultType换成resultMap-->
         <select id="selectAllByMap" resultMap="deptMap">
             select deptno,deptname from dept
         </select>
        <resultMap id="deptMap" type="Dept">
            <id property="deptno" column="deptno"/>
            <result property="deptname" column="deptname"/>
        </resultMap>
        <!--  模糊查询  -->
        <select id="selectByName" resultType="Dept">
            /*select deptno,deptname from dept where deptname like concat('%',#{deptname},'%')*/
            select deptno,deptname from dept where deptname like '%' #{deptname} '%'
           /* select deptno,deptname from dept where deptname like '%' ${deptname} '%'*/
        </select>
    </mapper>

    Test类

    package cn.alexander.test;
    
    import cn.alexander.dao.IDeptDAO;
    import cn.alexander.entity.Dept;
    import cn.alexander.util.SessionFactoryUtil;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.log4j.Logger;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import java.util.List;
    import java.util.Map;
    
    public class Test20170923 {
        Logger logger = Logger.getLogger(Test20170923.class);
        IDeptDAO iDeptDAO = null;
        SqlSession session = null;
        @Before
        public void before(){
            session = SessionFactoryUtil.getSession();
            iDeptDAO = session.getMapper(IDeptDAO.class);
        }
    
        @Test
        /**
         * 查询所有
         */
        public void findAll(){
            List<Dept> depts = iDeptDAO.findAll();
            logger.debug(depts);
        }
        @Test
        /**
         * 添加操作
         */
        public void addDept(){
            Dept dept = new Dept("行政部");
             iDeptDAO.addDept(dept);
            session.commit();
    
        }
        @Test
        /**
         * 添加操作后多得新加内容的主键
         */
        public void addDeptCachedId(){
            Dept dept = new Dept("行政部");
            System.out.println("方法之前的dept:"+dept);
            iDeptDAO.addDeptCachedId(dept);
            session.commit();
            System.out.println("方法之后的dept:"+dept);
    
    
        }
        @Test
        /**
         * 删除操作
         */
        public void delete(){
            iDeptDAO.delete(5);
    
        }
        @Test
        /**
         * 修改操作
         */
        public void updateDept(){
            Dept dept = new Dept(3,"总工办");
            iDeptDAO.updateDept(dept);
            session.commit();
    
        }
        @Test
        /**
         * 查询得到map集合
         */
        public void selectDeptByMap(){
            Map<String, Object> stringObjectMap = iDeptDAO.selectAllByMap();
            logger.debug(stringObjectMap);
        }
        @Test
        /**
         * 模糊查询
         */
        public void selectByName(){
            List<Dept> depts = iDeptDAO.selectByName("合");
            logger.debug(depts);
        }
    
        @After
        public void after(){
            if(session!=null){
                session.close();
            }
        }
    }
  • 相关阅读:
    tty初探 — uart驱动框架分析
    是否要从单片机转为嵌入式Linux?
    Linux 下Input系统应用编程实战
    Linux设备驱动之Kobject、Kset
    Xorg-xserver相关知识
    linux各级目录
    GitHub使用基本流程
    6、Linux发行版组成与初识
    CentOS7安装出现Warning
    Python数据类型之变量
  • 原文地址:https://www.cnblogs.com/alexanderthegreat/p/7583598.html
Copyright © 2020-2023  润新知