@Select
当我们使用注解进行开发时,我们就可以不需要UseMapper.xml这个文件
包结构如下
但是我们需要在mybatis-config.xml文件下进行配置mapper(将接口注册绑定到我们的核心配置文件中)
<mappers>
<mapper class="com.wang.dao.UserMapper"></mapper>
</mappers>
接口添加方法和注解
@Select("select * from mybatis.user")
List<User> getUser();
测试
@Test
public void test(){
SqlSession sqlSession= MybatisUtils.getSqlSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> list=userMapper.getUser();
System.out.println(list);
sqlSession.close();
}
结果
@Param
- 接口中
@Select("select * from mybatis.user where id=#{id}")
User getUserByid(@Param("id") int id);
当我们方法中的参数类型是基本类型时,我们可以用@Param这个注解进行标注
- 测试
@Test
public void test(){
SqlSession sqlSession= MybatisUtils.getSqlSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=userMapper.getUserByid(1);
System.out.println(user);
sqlSession.close();
}
- 结果:
然而当我们改变@Param中的属性 - 接口中
我们再次进行测试发现程序报错,并没有找到id
当我们将SQL语句中的#{id}改为#{id1}后,发现程序正常运行
说明当我们使用@Param进行注解后,@Param的属性值才是我们最终使用的属性值
注意:引用类型不要使用@Param进行注解
增删改查的注解-
- @Insert(“insert into user(id,name,pwd) values(#{id},#{name},#{pwd})”)
- @Update(“update user set name=#{name},pwd=#{pwd} where id=#{id}”)
- @Delete("delete from user where id=#{id} ")