CURD(增删改查)
1. namespace(命名空间)
namespace中的包名要和Dao/Mapper接口的包名一致
2. select
选择,查询语句;
- id:就是对应的namespace中的方法
- resultType:sql语句执行的返回值
- parameterType:参数类型
- 编写接口
//查询全部用户
List<User> getUserList();
//根据id查询用户
User getUserById(int id);
- 编写对应mapper中的语句
<!-- select查询语句
id相当于UserDaoImpl的方法-->
<select id="getUserList" resultType="com.frr.pojo.User">
select * from mybatis.user
</select>
<!--根据id查询用户-->
<select id="getUserById" parameterType="int" resultType="com.frr.pojo.User">
select * from mybatis.user where id= #{id}
</select>
- 测试
@Test
public void test(){
//第一步:获取SqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//方式一:执行sql
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserList();
//方法二:
// List<User> userList = sqlSession.selectList("com.frr.dao.UserMapper.getUserList");
for (User user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
@Test
//根据id查询用户
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
3. insert
//insert一个用户
int addUser(User user);
<!-- insert一个用户-->
<!-- 对象中的属性可以直接取出来-->
<insert id="addUser" parameterType="com.frr.pojo.User" >
insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
//insert一个用户
//增删改需要提交事务
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int rs = mapper.addUser(new User(4, "jj", "12345"));
if (rs>0){
System.out.println("插入成功");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
4.update
//修改用户
int updateUser(User user);
<!--修改用户-->
<update id="updateUser" parameterType="com.frr.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
</update>
//修改用户
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"zz","11111"));
sqlSession.commit();
sqlSession.close();
}
5. delete
//删除用户
int deleteUser(int id);
<!--删除用户-->
<delete id="deleteUser" parameterType="com.frr.pojo.User">
delete from mybatis.user where id=#{id}
</delete>
//删除用户
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
增删改需要提交事务