7、使用注解开发

1、注解在接口上实现

    /**
* 查询用户
*/
@Select("select * from user")
public List<User> getUsers();

2、需要在核心配置文件中绑定接口

    <mappers>
<package name="com.zheng.Dao"/>
</mappers>

本质:反射机制实现
底层:动态代理

使用注解实现增删改查
1、接口

public interface UserMapper {

    /**
* 查询用户
*/
@Select("select * from user")
public List<User> getUsers(); /**
* 根据id查询用户
*/
@Select("select * from user where id=#{id}")
public User selectUserById(@Param("id") String id); /**
* 增加
*/
@Insert("insert into user (id,name,pwd) values (#{id},#{name},#{pwd})")
public int addUser(User user); /**
* 修改
*/
@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
public int update(User user); /**
* 删除一个用户
*/
@Delete("delete from user where id=#{id}")
public int deleteUser(String id); } 2、测试

public class UserDaoTest {

@Test  //查询所有的用户
public void test() {
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUsers();
for (User user : userList) {
System.out.println(user); }
sqlSession.close(); } @Test //根据id查询用户
public void selectUserById(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper user = sqlSession.getMapper(UserMapper.class);
User user1 = user.selectUserById("1");
if(user1!=null){
System.out.println(user1);
}else{
System.out.println("查询失败");
}
sqlSession.close(); } @Test //增加用户
public void addUser(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res= mapper.addUser(new User("3","老刘","999"));
if(res>0){
System.out.println("增加成功!!!"); }else{
System.out.println("增加失败");
}
sqlSession.close();
} @Test //修改用户
public void updateUser(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.update(new User("3", "范梦涵", "1234567"));
if(res>0){
System.out.println("修改成功"); }else {
System.out.println("修改失败!!!");
}
sqlSession.close();
} @Test //删除用户
public void deleteUser(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.deleteUser("3");
if(res>0){
System.out.println("删除成功!!!"); }else{
System.out.println("提交失败");
}
sqlSession.close();
}
}

注意
我们可以在工具类创建的时候实现自动提交事务

  • 测试类
    【注意:我们必须要将接口注册绑定到我们的核心配置文件中】

  • 关于@Param()注解

  • 基本类型的参数或者String类型,需要加上

  • 引用类型不需要加

  • 如果只有一个基本类型的话,可以忽略,但是建议大家都加上

  • 我们在SQL中引用的就是我们这里的@Param()中设定的属性名

最新文章

  1. web api Route属性定义
  2. ThinkPHP实现支付宝接口功能
  3. HTML5 -入门 (---css样式-------------(css基础与css选择器)---------------------—)
  4. [转]透过 Linux 内核看无锁编程
  5. php中Content-type说明
  6. 2.Redis常用命令
  7. 2014-10-28——iframe多层嵌套时获取元素总结
  8. 熟悉熟悉常用的几个算法用JS的实现
  9. placeholder在ie浏览器里不显示的问题解决
  10. bootstrap-导航、选项卡
  11. myplan
  12. 30种IT技能让你年薪过10万美元!
  13. bindingredirect 没有效果
  14. code blocks 快捷键
  15. spring,hibernate配置事务 beans.xml
  16. NodeJs中process.cwd()与__dirname的区别
  17. DTCMS插件的制作实例电子资源管理(三)前台模板页编写
  18. 如何实现Selenium自动化读取H5手机缓存
  19. 高可用Redis(十二):Redis Cluster
  20. ReSharper反编译C#类库

热门文章

  1. you need to load the kernel first
  2. Redis-浅谈主从同步
  3. 参考MySQL Internals手册,使用Golang写一个简单解析binlog的程序
  4. Apache DolphinScheduler 1.3.8 发布
  5. Luogu P3273 [SCOI2011]棘手的操作(左偏树)
  6. 【c语言简单算法】1-阶乘
  7. KingbaseES R6 主备流复制集群创建级联复制案例
  8. [Python]-os模块-文件读取
  9. 【Spring】Spring bean中id和name的差异
  10. 阿里云OSS存储前端API上传(签名上传)