文章目录
一、模糊查询
java
/**
* 通过用户名模糊查询用户信息
* @param mohu
* @return
*/
List<User> getUserByLike(@Param("mohu") String mohu);
xml
<!--List<User> getUserByLike(@Param("mohu") String mohu);-->
<select id="getUserByLike" resultType="com.itheima.mybatis.pojo.User">
select * from tb_user where username like '%${mohu}%';
</select>
java
@Test
public void testGetUserByLike(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
List<User> list = mapper.getUserByLike("a");
list.forEach(System.out::println);
二、批量删除
java
/**
* 批量删除
* @param ids
*/
void deleteMoreUser(@Param("ids") String ids);```
```xml
<!--void deleteMoreUser(@Param("ids") String ids);;-->
<delete id="deleteMoreUser">
delete from tb_user where id in ${ids};
</delete>
java
/**
* 批量删除
*/
@Test
public void testDeleteMoreUser() {
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
mapper.deleteMoreUser("9,10");
}
三、动态设置表名
java
/**
*动态设置表名,查询用户信息
* @param tableName
* @return
*/
List<User> getUserList(@Param("tableName") String tableName);
xml
<!--List<User> getUserList(String tableName);-->
<select id="getUserList" resultType="User">
select * from ${tableName};
</select>
java
/**
* 动态设置表名,查询用户信息
*/
@Test
public void testGetUserList() {
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
List<User> list = mapper.getUserList("tb_user");
list.forEach(System.out::println);
}
四、添加功能获取自增的主键
场景模拟:
t_clazz(clazz_id,clazz_name)
t_student(student_id,student_name,clazz_id)
1、添加班级信息
2、获取新添加的班级的id
3、为班级分配学生,即将某学的班级id修改为新添加的班级的id
java
/**
* 添加用户信息
* @param user
* @return
* useGeneratedKeys:设置使用自增的主键
* keyProperty:因为增删改有统一的返回值是受影响的行数,因此只能将获取的自增的主键放在传输的参
数user对象的某个属性中
*/
int insertUser(User user);
xml
<!--int insertUser(User user);-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
insert into t_user values(null,#{username},#{password},#{age},#{sex})
</insert>
java
public void testJDBC(){
try {
Class.forName("");
Connection connection = DriverManager.getConnection("","","");
String sql = "insert into tb_user values()";
PreparedStatement ps = connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
ResultSet resultSet = ps.getGeneratedKeys();
resultSet.next();
resultSet.getInt(1);
} catch (Exception e) {
e.printStackTrace();
}