Mybatis 2.Mybatis基础的CRUD操作
补充一个操作,idea中可以直接连接数据库
CRUD测试
@Test
public void test1(){
SqlSession sqlSession = UserUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> user = mapper.getUser();
for (User user1 : user) {
System.out.println(user1);
}
}
@Test //按照id查询
public void test2(){
SqlSession sqlSession = UserUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
User user = mapper.selectUserById(2);
System.out.println(user);
}
@Test //添加
public void test3(){
SqlSession sqlSession = UserUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
int value = mapper.createUser(new User(5, "李潇潇", "123455"));
sqlSession.commit();
sqlSession.close();
}
@Test //删除
public void test4() {
SqlSession sqlSession = UserUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
mapper.deleteUser(5);
sqlSession.commit();
sqlSession.close();
}
@Test //修改
public void test5(){
SqlSession sqlSession = UserUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
mapper.updateUser(new User(2,"李潇潇","12345"));
sqlSession.commit();
sqlSession.close();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atXiao.dao.UserDao">
<select id="getUser" resultType="com.atXiao.pojo.User">
select * from user
</select>
<select id="selectUserById" resultType="com.atXiao.pojo.User">
select * from user where id=#{id}
</select>
<insert id="createUser" parameterType="com.atXiao.pojo.User">
insert into user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
<update id="updateUser" parameterType="com.atXiao.pojo.User">
update user set name =#{name},pwd=#{pwd} where id=#{id}
</update>
</mapper>
注意:增删改的时候一定要去提交事务,不然操作不会生效
一些错误分析:
dao对应的标签不要写错
resource绑定的mapper,需要使用路径 /
程序配置文件必须符合规范
NullpointerException,没有注册到资源
输出的xml文件中存在中文乱码问题,有时候连中文也不能存在
maven资源没有导出的问题