namespace
1、将上面案例中的UserMapper接口改名为 UserDao;
2、将UserMapper.xml中的namespace改为为UserDao的路径 .
3、再次测试
结论:
配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!
select
- select标签是mybatis中最常用的标签之一
- select语句有很多属性可以详细配置每一条SQL语句
- SQL语句返回值类型。【完整的类名或者别名】
- 传入SQL语句的参数类型 。【万能的Map,可以多尝试使用】
- 命名空间中唯一的标识符
- 接口中的方法名与映射文件中的SQL语句ID 一一对应
- id
- parameterType
- resultType
需求:根据id查询用户
1、在UserMapper中添加对应方法
public interface UserMapper {
// 查询全部用户
List<User> getUserList();
// 根据ID查询用户
User getUserById(int id);
}
2、在UserMapper.xml中添加Select语句
<!--这里要加上mybatis这个数据库的名称是因为在IDEA中连接了数据库-->
<select id="getUserById" resultType="com.fan.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();
}
insert
我们一般使用insert标签进行插入操作,它的配置和select标签差不多!
需求:给数据库增加一个用户
1、在UserMapper接口中增加对应的方法
// insert一个用户
int addUser(User user);
2、在UserMapper.xml中添加insert语句
<!--对象中的属性,可以直接取出来-->
<insert id="addUser" parameterType="com.fan.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 res = mapper.addUser(new User(5, "哈哈", "123333"));
if (res > 0) {
System.out.println("插入成功!");
}
// 提交事务
sqlSession.commit();
sq