【04】Mybatis笔记--增删改查

【04】Mybatis笔记–增删改查

步骤:

  1. 创建与表对应的实体类
  2. 创建Dao接口
  3. 准备与Dao接口对应的映射配置xml文件
  4. 在主配置文件里面使用标签指向映射配置文件
<!--  SqlMapConfig.xml -->
<!--    配置mappers-->
    <mappers>
        <mapper resource="indi/xu/dao/UserDao.xml"></mapper>
        <mapper resource="indi/xu/dao/AccountDao.xml"></mapper>
    </mappers>


一、实体类:User
package indi.xu.domain;

import java.util.Date;

/**
 * @author a_apple
 * @create 2020-02-05 10:33
 */
public class User {

    private Integer id;
    private String username;
    private String address;
    private String sex;
    private Date birthday;

    //getter(),setter(),toString()...
}

二、UserDao接口
/**
 * @author a_apple
 * @create 2020-02-05 10:35
 */
public interface UserDao {

    /**
     * 查询所有
     */
    List<User> list();

    /**
     * 添加用户
     */
    void add(User user);

    /**
     * 更新用户
     */
    void updateUser(User user);

    /**
     * 根据id删除
     */
    void deleteUser(Integer id);

    /**
     * 查询用户根据id
     */
    User get(Integer id);

    /**
     * 模糊查询
     */
    List<User> findByUserName(String username);

    /**
     * 查询总记录数
     */
    Integer total();

    /**
     * 根据查询条件查询
     */
    List<User> findByCondition(QueryCd qc);
}

三、映射配置文件UserDao.xml

①查询所有用户

<!-- 查询所有-->
<select id="list" resultType="indi.xu.domain.User">
     SELECT * from user;
</select>

②添加用户

注意:

  • add(User user): parameterType指的是传入的参数类型
  • 使用#{},获取属性字段。(以前使用用?的,现在用#{}替代)
  • 如何获取插入对象的id
    • 使用<selectKey>标签
	<!-- 添加用户 -->
    <insert id="add" parameterType="indi.xu.domain.User">
        <!-- 获取插入数据的id
            keyProperty:对应实体类的属性名称
            keyColumn:对应表字段名称
        -->
        <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
            select last_insert_id();
        </selectKey>

        insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday})
    </insert>

③更新对象

<!--更新-->
    <update id="updateUser" parameterType="indi.xu.domain.User">
        update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday} where id = #{id}
    </update>

④删除用户

 <!--删除-->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from user where id = #{uid}
    </delete>

⑤查询一个用户( 根据id )

<!--查询一个-->
<select id="get" parameterType="Integer" resultType="indi.xu.domain.User">
    select * from user where id = #{id}
</select>

⑥模糊查询(根据姓名模糊查询

  • #{}”:采用的是PreparedStatement(预处理可有效防止sql注入
  • ${}”:采用的是Statement (字符串拼接的方式
 <!--模糊查询-->
    <select id="findByUserName" parameterType="String" resultType="indi.xu.domain.User">
        select * from user where username like #{username};
        <!-- select * from user where username like '%${value}%'  采用Statement,上面一种是使用PreparedStatement-->
    </select>

⑦聚合查询:查询总记录数

 <!--聚合查询-->
<select id="total" resultType="Integer">
    select count(*) from user;
</select>

⑧根据自定义条件对象查询

注:

  • QueryCd是条件对象,里面有一个User对象,不能直接写#{username},得通过"user.username"的方式获取
<select id="findByCondition" parameterType="indi.xu.domain.QueryCd" resultType="indi.xu.domain.User">
       <!-- 根据查询条件对象进行模糊查询-->
       select * from user where username like #{user.username};
</select>

⑨UserDao.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="indi.xu.dao.UserDao">
    ...
    <-- 上面的配置的<select>标签 -->
</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值