一.Mybatis的CRUD使用详解
注意:增删改需要提交事务。
namespace(UserMapper.xml)
namespace中的包名需要和Dao/mapper接口的包名一致。
<!--nameSpace绑定一个对应的Dao接口-->
<mapper namespace="com.zhu.dao.UserMapper">
1.1 select
1.编写接口:
List<User> getUserList();
2.编写对应的mapper对应的sql语句:
选择、查询语句。
<select id="getUserList" resultType="com.zhu.pojo.User">
select * from mybatis.user;
</select>
-
id:对应的nameSpace中的方法名。
-
resultType:Sql语句的返回值。
-
parameterType:参数类型。
3.测试类:
@Test
public void test(){
//测试
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List<User> userList = userDao.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
效果如下:
1.编写接口:
<select id="getUserById" parameterType="int" resultType="com.zhu.pojo.User">
select * from mybatis.user where id = #{id};
</select>
2.编写对应的mapper对应的sql语句:
更具id查询对应信息:
User getUserById(int id);
3.测试类:
@Test
public void getUserById(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User userById = mapper.getUserById(1);
System.out.println(userById);
sqlSession.close();
}
效果如下:
1.2 insert
1.编写接口:
int addUser(User user);
2.编写对应的mapper对应的sql语句:
增加:
<insert id="addUser" parameterType="com.zhu.pojo.User" >
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
3.测试类:
@Test
public void addUser(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int haha = mapper.addUser(new User(4, "haha", "32423"));
if (haha>0){
System.out.println("插入成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
注意:增删改需要提交事务。
效果如下:
1.3 update
1.编写接口:
int updateUser(User user);
2.编写对应的mapper对应的sql语句:
增加:
<update id="updateUser" parameterType="com.zhu.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id = #{id};
</update>
3.测试类:
@Test
public void updateUser(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"哈哈","4234"));
//提交事务
sqlSession.commit();
sqlSession.close();
}
注意:增删改需要提交事务。
测试截图如下:
1.3 delete
1.编写接口:
int daeleteUser(int id);
2.编写对应的mapper对应的sql语句:
增加:
<delete id="daeleteUser" parameterType="com.zhu.pojo.User">
delete from mybatis.user where id=#{id};
</delete>
3.测试类:
@Test
public void deleteUser(){
SqlSession sqlSession = Mybatisutils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.daeleteUser(4);
//提交事务
sqlSession.commit();
sqlSession.close();
}
注意:增删改需要提交事务。
测试截图如下:
二.常见错误
- 标签不要匹配错
- resource 绑定 mapper, 需要使用路径!
- 程序配置文件必须符合规范!
- NullPointerException, 没有注册到资源!
- 输出的 xml 文件中存在中文乱码问题!
- maven 资源没有导出问题!