模糊查询的两种方式
1:#{username} “张%” 不把%写到标签里面(推荐)
2:‘%${value}%’ “张” 把%写到标签里面
- src\main\resources\UserMapper.xml
//方法一:#{username} “张%” 不把%写到标签里面
<select id="findByUserName" parameterType="String" resultType="com.syy.bean.User">
SELECT * FROM USER WHERE username LIKE #{keyword}
</select>
//方法二:‘%${value}%’ “张” 把%写到标签里面
<select id="findByUserName2" parameterType="String" resultType="com.syy.bean.User">
SELECT * FROM USER WHERE username LIKE '${value}%'
</select>
- 测试类
@Test
public void test01(){
SqlSession sqlSession = MySessionUtils.getSession();
System.out.println(sqlSession);
//List<User> list= sqlSession.selectList("com.syy.bean.User.findByUserName","张%");//查询结果为集合,参1,namespace.id 参2 关键字
List<User> list= sqlSession.selectList("com.syy.bean.User.findByUserName2","张");
for(User user:list){
System.out.println(user);
}
sqlSession.close();
}
Mybatis操作-插入数据
mybatis默认不会提交事务,所以如果是增删改,则需要手动提交事务
调用session
- 映射文件
<insert id="saveUser" parameterType="com.syy.bean.User">
insert into user values(null,#{username},#{birthday},#{sex},#{address});
</insert>
- 测试类
@Test
public void test02SaveUser(){
SqlSession sqlSession = MySessionUtils.getSession();
User user =new User();
user.setUsername("jack");
user.setSex(1);
user.setBirthday(new Date());
user.setAddress("黑龙江");
sqlSession.insert("com.syy.bean.User.saveUser",user);
sqlSession.commit();
sqlSession.close();
}
Mybatis操作-修改用户
映射文件
<update id="updateUser" parameterType="com.syy.bean.User">
update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
</update>
- 测试类
@Test
public void test03UpdateUser(){
SqlSession sqlSession = MySessionUtils.getSession();
User user =new User();
user.setId(30);
user.setUsername("rose");
user.setSex(2);
user.setBirthday(new Date());
user.setAddress("新疆");
sqlSession.update("com.syy.bean.User.updateUser",user);
sqlSession.commit();
sqlSession.close();
}
Mybatis操作-删除用户
- 映射文件
<delete id="deleteById" parameterType="int" >
delete from user where id = #{id}
</delete>
- 测试类
@Test
public void test01(){
// 1 创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 》2 创建SqlSessionFactory对象
InputStream inputStream = Test01Mybatis.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory sessionFactory = sqlSessionFactoryBuilder.build(inputStream);//加载核心配置文件 参1 输入流
// 》3 加载SqlMapConfig.xml配置文件
// 》4 创建SqlSession对象
SqlSession sqlSession = sessionFactory.openSession();
//》5 执行SqlSession对象执行删除
System.out.println(sqlSession);
//delete from user where id = ?
sqlSession.delete("com.syy.bean.User.deleteById",24);//执行删除 参1 是namespace.id 参2 参数值
// 》6 打印结果
// 》7 释放资源
sqlSession.commit();//mybatis的session不会自动提交,必须手动提交
sqlSession.close();
}