抽取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();
结果