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()中设定的属性名

后端框架的学习----mybatis框架(7、使用注解开发)相关推荐

  1. 深入学习Mybatis框架(二)- 进阶

    1.动态SQL 1.1 什么是动态SQL? 动态SQL就是通过传入的参数不一样,可以组成不同结构的SQL语句. 这种可以根据参数的条件而改变SQL结构的SQL语句,我们称为动态SQL语句.使用动态SQ ...

  2. [转载] 快速学习-Mybatis框架概述

    参考链接: Java在竞争性编程中的快速I/O 第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互 ...

  3. mybatis plus 事务管理器_学习MyBatis 框架

    1. 框架是什么? a 框架就就是写好的功能架构 一些重复的代码的深度的封装 b 框架也是一个半成品 调用同时 也需要告诉框架一些信息 c一般以配置文件方式告知框架 多数会使用Xml作为框架的配置文件 ...

  4. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】

    第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定 ...

  5. 如何自学php框架,如何学习php框架

    原标题:如何学习php框架 PHP作为网络开发的强大语言之一,现在应用非常广泛,主要运用于中小型企业.具有开放源代码,跨平台性强,开发快捷,效率高,面向对象,并且简单易学,容易于上手,并且是开源产品. ...

  6. MyBatis复习(十):注解开发

    MyBatis有两种开发方式:XML开发和注解开发 注解与XML对应表格 注解 对应XML 说明 @Insert <insert> 新增SQL @Update <update> ...

  7. MyBatis(三)--注解开发

    1 注解开发介绍 1.1 为什么要有注解开发 注解可以简化开发操作,省略映射配置文件的编写 1.2 常用的注解 @Insert("查询的SQL语句"):实现新增操作 @Update ...

  8. 黑马程序员视频教程学习mybatis框架常用注释SQL语句学习笔记?

    mybatis学习笔记 常用注释增删改查SQL语句 常用注释拓展SQL语句 解决实体类属性和数据库表中的属性名称不相同的问题: mybatis注解之一对一查询: mybatis注解之一对多查询: my ...

  9. 【java学习之路】(java框架)005.mybatis框架整合及逆向工厂

    03mybatis框架整合及逆向工厂 1.三大框架整合 ​ 在老期的项目中,一般都是使用ssm项目做开发的,虽然现在的主流开发是springboot来做开发,但是ssm的基本整合还是需要掌握的. 1. ...

最新文章

  1. 鸿蒙系统手机用户体验,鸿蒙系统真的来了!用户体验流畅度远超安卓,任正非扳回一城!...
  2. python中da_Python中字符的编码与解码
  3. mycat mysql ha 方案_7、基于 HA 机制的 Mycat 高可用--mycat
  4. MongoDB C#:DateTimeOffset到BsonType DateTime的序列化程序
  5. Behavior Language Processing with Graph based Feature Generation for Fraud DetectioninOnline Lending
  6. activity 点击后传递数据给fragment_ViewModel+LiveData实现Fragment间通信
  7. 两个字符串 char* a, char* b,输出b在a中的位置次序。
  8. 20165333 2017-2018-2《Java程序设计》课程总结
  9. 计算机仿真是北大核心期刊,计算机仿真 北大核心期刊统计源期刊 CSCD核心期刊...
  10. KafkaConsumer实现精确的latest(结尾)开始消费
  11. java生成chk文件_java web实现在线编辑word,并将word导出(一)
  12. Boolean中0与1的转化
  13. GIthub上关于新冠肺炎数据整理的项目汇总
  14. node启动之后内存占用过高解决方案
  15. 关于性能测试中使用物理机和虚拟机的区别
  16. java tpl文件_解决Layui tpl模板渲染文件上传不起作用
  17. QQ小程序——无法正常创建项目与uniapp联动问题
  18. Git入门教程之注册(一)
  19. 最新Java开发进阶!我的华为面试经历分享,请查收
  20. 陶哲轩career advice 翻译

热门文章

  1. DML、DDL、DCL是什么?
  2. 零跑C11斩获大奖,带来了极致的挑战
  3. Windows远程连接电脑宿主机,管理服务器的几种快捷方式。
  4. P and V
  5. 电脑录屏是哪个快捷键?3个录屏快捷键,教你快速录屏
  6. MySQL-索引概述及结构
  7. 快手在线查询权重网站源码+接口
  8. ECLIPSE中添加TPTP插件
  9. 关于keil编译显示Flash Download failed -Could not load file xxxx.axf
  10. 手机上传日志文件给服务器,手机内容远程上传到服务器