ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MyBatis学习笔记二:MyBatis增删改查

2022-07-22 00:32:04  阅读:191  来源: 互联网

标签:username 改查 Param 增删 user MyBatis password where id


映射文件的增删改查(mapper.xml)

1.建立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="dao.DeptMapper">
	<!--接口返回类型定义区-->
	<!--接口方法对应的sql语句写入-->

2. 基本增删改查语句

MyBatis获取参数值的两种方式:${}和#{}

  • ${}的本质就是字符串拼接(类似宏定义,不会有多余的字符修饰),
  • #{}的本质就是占位符赋值(会根据类型变化,字符串类型会在填充时加上单引号)
    在获取的参数值使用场景中:
    如果是字符类型可以使用#{}'${}'两种方式
    如果是数值型可以使用#{}${}两种方式
<!--接口中的方法  @Param("did"):占位符键值,占位符根据键将对应的形参值传进sql语句-->
  1. 增加数据
<!--
	public boolean save(User user);
	public boolean save(Map<String,Object> map);	//将每条属性写成键值对的形式
	public boolean save(@Param("username") String username, @Param("password") String password, @Param("age") int age, @Param("sex") sex, @Param("email") String email);
-->
<insert id="save">
        insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})
</insert>
  1. 删除数据
<!--
	public boolean deleteById(@Param("id") Integer id);
-->
<delete id="deleteById">
        delete from t_user where id = #{id}
</delete>
  1. 修改数据
<!--
	public boolean update(User user);
-->
<update id="update">
        update t_user set username = #{username},password = #{password},age = #{age},sex = #{sex},email = #{email} where id = #{id}
</update>
  1. 查询单个数据
<!-- resultType是返回值类型
	1.自定义的类需要写进返回值类型,简写需要在核心配置文件的配置文件里面导入,否则要写全类名
	2.非自定义的基本类型可以不写(int double Integer等)
	3.其他 Map--map,List--list
-->
<!--public Dept getDeptById(@Param("did") Integer did)-->
<select id="getDeptById" resultType="Dept">
	select * from t_dept where did = #{did}
</select>
<!--返回类型为list,map要写-->
<!--Map<String, Object> getUserToMap(@Param("id") int id);-->
<select id="getUserToMap" resultType="map">
	select * from t_user where id = #{id}
</select>
  1. 查询多个数据
<!-- 
	接口定义方式一:
		List<Map<String, Object>> getAllUserToMap();
	接口定义方式二:
		@MapKey("id")	//需要指定键值类型
		Map<String, Object> getAllUserToMap();
-->
<select id="getAllUserToMap" resultType="map">
	select * from t_user
</select>

3.特殊SQL执行

  1. 模糊查询
<!--List<User> testMohu(@Param("mohu") String mohu);-->
<select id="testMohu" resultType="User">
	<!--select * from t_user where username like '%${mohu}%'-->
	<!--select * from t_user where username like concat('%',#{mohu},'%')-->
	select * from t_user where username like "%"#{mohu}"%"
</select>
  1. 批量删除
<!--int deleteMore(@Param("ids") String ids);-->
<delete id="deleteMore">
	delete from t_user where id in (${ids})
</delete>
  1. 动态设置表名
<!--List<User> getAllUser(@Param("tableName") String tableName);-->
<!--表名不能用单引号引用-->
<select id="getAllUser" resultType="User">
	select * from ${tableName}
</select>
  1. 获取自增的主键
<!--自增的主键一般在实体类中不进行赋值,当写入数据库,自然就会生成,如何在不进行二次查询的情况下获取主键-->
<!--int insertUser(User user);-->
<!--
	useGeneratedKeys:设置使用自增的主键
	keyProperty:因为增删改有统一的返回值是受影响的行数,不能直接写在返回值上
				,因此只能将获取的自增的主键放在传输的参数user对象的某个属性中
-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
	insert into t_user values(null,#{username},#{password},#{age},#{sex})
</insert>

4. SQL查询返回值类型详解

标签:username,改查,Param,增删,user,MyBatis,password,where,id
来源: https://www.cnblogs.com/sleepyheadLK/p/16504150.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有