1. namespace
namespace中的包名要和Dao/mapper接口的包名一致
2. select
选择、查询语句:
· id:就是对应的namespace中的方法名
· resultType:Sql语句执行的返回值
· parameterType:参数类型
1. 编写接口
// 根据id查询用户
User getUserById(int id);
2. 编写对应的mapper中的sql语句
<select id="getUserById" parameterType="int" resultType="com.yang.pojo.User">
select * from mybatis.user where id = #{id}
</select>
3. 测试
@Test
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 id="addUser" parameterType="com.yang.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.addUser(new User(4,"哈哈","555555"));
if (res>0){
System.out.println("插入成功");
}
// 提交事务
sqlSession.commit();
sqlSession.close();
}
4. Update
// 修改用户
int updateUser(User user);
<update id="updateUser" parameterType="int">
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,"哈哈哈","555666"));
sqlSession.commit();
sqlSession.close();
}
5. Delete
// 删除一个用户
int deleteUser(int id);
<delete id="deleteUser" parameterType="com.yang.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();
}
注意点:
增删改查需要提交事务!