Mybatis 官网: https://mybatis.org/mybatis-3/zh/getting-started.html
namespace 命名空间
namespace绑定一个对应的 Dap/Mapper 接口
<!--namespace: 绑定一个对应的 Dao/Mapper 接口-->
<mapper namespace="com.pro.dao.UserMapper">
<!-- id: 绑定接口中方法 -->
<select id="getUserList" resultType="com.pro.pojo.User">
select * from user
</select>
</mapper>
select
查询语句
id
:绑定 namespace 中接口的方法resultType
:SQL返回值类型parameterType
:参数类型
编写接口
// 根据id查询用户
User getUserById(int id);
编写SQL
<!-- 根据id查询用户 -->
<select id="getUserById" resultType="com.pro.pojo.User" parameterType="int">
select * from user where id = #{id}
</select>
测试
@Test // 根据id查询用户
public void getUserById() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println("getUserById --> " + user);
// 关闭资源
sqlSession.close();
}
insert
增删改操作都差不多,这里就演示 insert
,update
和delete
就只写了 SQL
注意点:增删改需要提交事务
接口
// 新增用户
int addUser(User user);
SQL
<!-- 新增用户, 对象中的属性可以直接拿出来用 -->
<insert id="addUser" parameterType="com.pro.pojo.User">
insert into user(name,pwd) values(#{name},#{pwd})
</insert>
测试
@Test // 新增用户
public void addUser() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User(0, "test", "123456");
int test = mapper.addUser(user);
// 提交事务
sqlSession.commit();
sqlSession.close();
}
update
需要提交事务
<!-- 修改用户 -->
<update id="updateUserById" parameterType="com.pro.pojo.User">
update user set name = #{name}, pwd = ${pwd} where id = #{id}
</update>
delete
需要提交事务
<!-- 删除用户 -->
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>