mybatis各种小知识点一

抽取sql片段

<!--抽取重复的sql片段-->
    <sql id="user_field">
        select id,username,password,gender,regist_time
        from t_user
    </sql>
    <!--根据id查询-->
    <select id="queryUserById" resultType="User">
        <include refid="user_field"></include>
        where id=#{arg}
    </select>

接下来操作的表

操作的表

使用map传参,定义接口

/*使用map传参查询*/
    User queryUserByMap(Map map);

mapper文件,定义sql语句

<!--使用map传参-->
    <select id="queryUserByMap" resultType="User">
        select *
        from t_user
        where id=#{id} and username=#{username}
    </select>

测试

 Map map = new HashMap();
 map.put("id",1);
 map.put("username","铁山靠");
 System.out.println(map);
 User user = mapper.queryUserByMap(map);
 System.out.println(user);
 sqlSession.close();

结果
在这里插入图片描述

使用user对象传参,定义接口

/*使用User对象传参*/
User queryByUser(User user);

mapper文件,定义sql语句

<!--使用User对象传参-->
<select id="queryByUser" resultType="User">
    select *
    from t_user
    where id=#{id} and password=#{password}
</select>

测试

user.setId(1);
user.setPassword("123");
User user1 = mapper.queryByUser(user);
System.out.println(user1);
sqlSession.close();

结果
在这里插入图片描述

使用模糊查询,返回list集合,查询时使用concat拼接sql语句,定义接口

/*模糊查询,返回list集合,查询时使用concat拼接sql语句*/
List<User> queryUserReturnList(String string);

mapper文件,定义sql语句

<!--模糊查询,返回list集合,查询时使用concat拼接sql语句-->
<select id="queryUserReturnList" resultType="User">
    select *
    from t_user
    where gender LIKE concat('%',#{gender},'%');
</select>

测试

/*模糊查询,返回list集合,查询时使用concat拼接sql语句*/
/*queryUserReturnList*/
System.out.println("queryUserReturnList-------------------------");
List<User> users = mapper.queryUserReturnList("3");
for(User user2:users){
    System.out.println(user2);
}
sqlSession.close();

结果
在这里插入图片描述

使用插入数据,并且主键回填,定义接口

/*插入数据,并且主键回填*/
int insertData(User user);

mapper文件,定义sql语句

<!--插入数据,并且主键回填-->
<!--    /*主键回填,将新增的id,存入到java对象和逐渐对应的属性中去*/-->
<!--        <selectKey order="AFTER" resultType="int" keyProperty="id">-->
<!--            select last_insert_id()-->
<!--        </selectKey>-->
<insert id="insertData" parameterType="User" useGeneratedKeys="true" keyProperty="id">
    insert into t_user (username,password,gender,regist_time)
    values (#{username},#{password},#{gender},#{regist_time})
</insert>

测试

User user = new User();
user.setUsername("导师田斌");
user.setPassword("933");
user.setGender(30);
user.setDatetime("2021/08/26");
System.out.println(user);
int rows = mapper.insertData(user);
System.out.println(rows == 1 ? "插入成功" : "插入失败");
System.out.println(user);
sqlSession.commit();
sqlSession.close();

结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值