CRUD(Mybatis)
1.namespace
namespace中的包名要和Dao/Mapper接口的包名一致。
2.select
选择,查询语句;
- id:就是对应的namespace中的方法名
- resultType:sql语句执行的返回值!
- parameterType:参数类型
1.编写接口
// 查询全部用户
List<User> selectUser();
2.编写对应的mapper中的sql语句
<select id="selectUser" resultType="com.Long.pojo.User">
SELECT * FROM mybatis.user
</select>
3.测试
// 查询全部用户
@Test
public void test(){
// 通过工具类获取sqlSession对象
SqlSession sqlSession = utils.getSession();
// 执行sql(反射获得接口调用方法)
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userList = mapper.selectUser();
// 遍历数组
for (User user:userList
) {
System.out.println(user);
}
// 关闭sqlSession对象(避免内存泄漏)
sqlSession.close();
}
3.insert
<insert id="addUser" parameterType="com.Long.pojo.User" >
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
4.update
<update id="updateUser" parameterType="com.Long.pojo.User" >
update mybatis.user set name=#{name},pwd=#{pwd} where id =#{id};
</update>
5.delete
<delete id="deleteUser" parameterType="com.Long.pojo.User" >
delete from mybatis.user where id =#{id};
</delete>
注意点:增删改需要提交事务
// 提交事务
sqlSession.commit();
6.模糊查询
方式一:(可能会产生sql注入)
@Test
public void test5(){
// 通过工具类获取sqlSession对象
SqlSession sqlSession = utils.getSession();
// 执行sql(反射获得接口调用方法)
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userList = mapper.getUserlike("飞");
for (User USER:userList
) {
System.out.println(USER);
}
// 关闭sqlSession对象(避免内存泄漏)
sqlSession.close();
}
<select id="getUserlike" parameterType="String" resultType="com.Long.pojo.User">
select * from mybatis.user where name like "%"#{value}"%";
</select>
方式二:(推荐)
@Test
public void test5(){
// 通过工具类获取sqlSession对象
SqlSession sqlSession = utils.getSession();
// 执行sql(反射获得接口调用方法)
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userList = mapper.getUserlike("%飞%");
for (User USER:userList
) {
System.out.println(USER);
}
// 关闭sqlSession对象(避免内存泄漏)
sqlSession.close();
}
<select id="getUserlike" parameterType="String" resultType="com.Long.pojo.User">
select * from mybatis.user where name like #{value};
</select>