其他分享
首页 > 其他分享> > MyBatis学习笔记二:MyBatis增删改查

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

作者:互联网

映射文件的增删改查(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