• MyBatis实现动态语句操作


    实体类

    public class Person {
        //实体属性
        private Integer id;
        private String name;
        private Integer age;
        private String sex;
        private String birthday;
        private Double salary;
        private Timestamp createTime;
        
        //get-set方法
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public String getBirthday() {
            return birthday;
        }
        public void setBirthday(String birthday) {
            this.birthday = birthday;
        }
        public Double getSalary() {
            return salary;
        }
        public void setSalary(Double salary) {
            this.salary = salary;
        }
        public Timestamp getCreateTime() {
            return createTime;
        }
        public void setCreateTime(Timestamp createTime) {
            this.createTime = createTime;
        }
        
        //toString方法
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", birthday=" + birthday
                    + ", salary=" + salary + ", createTime=" + createTime + "]";
        }
    
    }
    View Code

    Dao层接口

    public interface PersonDao {
        
        /**
         * 查询(条件)
         */
        Collection<Person> selectPerson(Person person);
        
        /**
         * 查询所有
         */
        Collection<Person> selectAll();
        
        /**
         * 修改
         */
        boolean update(Person person);
        
        /**
         * 插入
         */
        boolean insertPerson(Person person);
        
        /**
         * 删除
         */
        int deleteOne(Person person);
        
        /**
         * 批量删除
         */
        int deleteMany(List<Person> personList);
        
        
    }
    View Code

    Mapper文件

    <?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.test.dao.user.PersonDao">
        <!-- 增加实体 -->
        <insert id="insertPerson" useGeneratedKeys="true" keyProperty="id">
            insert into user
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="name !=null">name,</if>
                <if test="age != 0">age,</if>
                <if test="sex !=null">sex</if>
            </trim>
            values
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="name !=null">#{name},</if>
                <if test="age != 0">#{age},</if>
                <if test="sex !=null">#{sex}</if>
            </trim>
        </insert>
        
        <!-- 查询 条件-->
        <select id="selectPerson" resultType="com.test.model.user.Person">
            select * from user 
            <where>
                <if test="id!=null">id = #{id}</if>
                <if test="id!=null">and name = #{name}</if>
                <if test="id!=null">and age = #{age}</if>
            </where>
        </select>
        
        <!-- 查询所有 -->
        <select id="selectAll" resultType="com.test.model.user.Person">
            select * from user
        </select>
        
        <!-- 更新 -->
        <update id="update">
            update user 
            <set>
                <if test="name!=null">name=#{name},</if>
                <if test="age!=null">age=#{age},</if>
                <if test="sex!=null">sex=#{sex},</if>
                <if test="birthday!=null">birthday=#{birthday},</if>
                <if test="birthday!=null">birthday=#{birthday},</if>
                <if test="salary!=null">salary=#{salary},</if>
                <if test="createTime!=null">createTime=#{createTime},</if>
            </set>
            where id = #{id}
        </update>
        
        <!-- 删除 -->
        <delete id="deleteOne">
            delete from user
            <where>
                <if test="id != null">id=#{id}</if>
                <if test="name != null">and name=#{name}</if>
                <if test="age != null">and age=#{age}</if>
            </where>
        </delete>
        
        <!-- 批量删除 -->
        <delete id="deleteMany">
            delete from user where id in
            <foreach collection="list" open="(" close=")" separator="," item="id">
                #{id}
            </foreach>
        </delete>
        
    </mapper>
    View Code

    测试类

    /**
         *插入
         */
        @Test
        public void insert() {
            //创建实体
            Person person = new Person();
            person.setName("Tom");
            person.setAge(18);
            person.setSex("男");
            person.setBirthday("2001-09-01");
            person.setSalary(12000.0);
            Date date = new Date(System.currentTimeMillis());       
            Timestamp createTime = new Timestamp(date.getTime());
            person.setCreateTime(createTime);
            System.out.println(person);
            //新增实体到数据库
            boolean create = personDao.insertPerson(person);
            System.out.println(create);
        }
        
        /**
         * 查询全部
         */
        @Test
        public void selectAll() {
            Collection<Person> selectAll = personDao.selectAll();
            for (Person person : selectAll) {
                System.out.println(person);
            }
        }
        
        /**
         * 条件查询
         */
        @Test
        public void select() {
            Person person = new Person();
    //        person.setId(4);
            person.setName("Tom");
            person.setAge(18);
            Collection<Person> selectPerson = personDao.selectPerson(person);
            for (Person person2 : selectPerson) {
                System.out.println(person2);
            }
        }
        
        /**
         * 根据id查询用户
         */
        @Test
        public void update() {
            //创建实体
            Person person = new Person();
            person.setId(4);
            person.setName("Rose");
            person.setAge(18);
            boolean update = personDao.update(person);
            System.out.println(update);
        }
        
        
        /**
         * 根据id查询用户
         */
        @Test
        public void delete() {
            //创建实体
            Person person = new Person();
            person.setId(4);
            person.setName("Rose");
            person.setAge(18);        
            int b = personDao.deleteOne(person);
            System.out.println(b);
        }
    View Code

    后面要整理。。。。

  • 相关阅读:
    百马百担
    穷举
    折叠次数
    判断年份是否是闰年
    定义xy比大小
    1月21日
    1月20日作业-第三题
    1月20日作业-第二题
    1月18日
    1月18日
  • 原文地址:https://www.cnblogs.com/jumpkin1122/p/11604662.html
Copyright © 2020-2023  润新知