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框架(5、分页)

    七.分页 简单使用 1.在要使用Log4j的类中,导入包import org.apache.log4j.Logger; 2.日志对象,参数为当前类的class static Logger logger ...

  2. 后端框架的学习----mybatis框架(3、配置解析)

    3.配置解析 1.核心配置文件 2.环境配置(environment) 3.属性(properties) 可以通过properties属性来实现引用配置文件 这些属性可以在外部进行配置,并可以进行动态 ...

  3. 后端框架的学习----mybatis框架(9、多对一处理和一对多处理)

    9.多对一处理和一对多处理 #多对一 <!--按照结果集嵌套查询--> <select id="getAllStudent1" resultMap="S ...

  4. 后端框架的学习----mybatis框架(8、lombok)

    8.lombok #测试环境搭建 1.导入lombok 2.新建实体类Teacher,Student 3.建立mapper接口 4.建立mapper.xml文件 5.在核心配置文件中绑定注册mappe ...

  5. 后端框架的学习----mybatis框架(6、日志)

    六.日志 如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的帮手 setting设置 <settings> <setting name="logImpl" ...

  6. 学习mybatis框架>从零开始学JAVA

    目录 学习mybatis框架 mybatis框架的介绍 什么是mybatis框架 为什么要使用mybatis框架 mybatis的优点 Mybatis框架环境搭建 去官网下载jar包 创建一个普通的j ...

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

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

  8. 深入学习Mybatis框架(一)- 入门

    1.什么是Mybatis? Mybatis是一个优秀持久层框架,提供了对数据库的一系列操作(增删改查).Mybatis可以避免重复的写JDBC代码,让我们以较少的代码实现对数据库的操作,从而提高开发效 ...

  9. 快速学习mybatis框架

    一.介绍Mybatis(主要从以下两点进行介绍) 1.MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动 ...

随机推荐

  1. Dubbo源码(七) - 集群

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 集群(cluster)就是一组计算机,它们作为一个总体向用户提供一组网络资源.这些单个的计算机系 ...

  2. React报错之Cannot assign to 'current' because it is a read-only property

    正文从这开始~ 总览 当我们用一个null值初始化一个ref,但在其类型中不包括null时,就会发生"Cannot assign to 'current' because it is a r ...

  3. Linux 06 用户组管理

    参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 概述 每个用户都 ...

  4. Docker 15 Compose

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  5. 操作 Excel 函数的快捷键

    使用 Excel 函数的时候,需要用两个基本的快捷键来辅助写函数.输入函数时,Excel 会给出建议,选中函数之后不建议用回车键,因为这样做会出现#NAME?,直接使用Tab键即可.之后,通过Ctrl ...

  6. linux项目环境部署入门

    linux目录 /bin 二进制可执行命令 (ls,cat,mkdir等) /dev 设备特殊文件/etc 系统管理和配置文件/etc/rc.d 启动的配置文件和脚本 /opt 额外安装的可选应用程序 ...

  7. 你言我语 By Twikoo

    主要做了两件事: 一是前端魔改 二是首页调用(替代原 bber) 注明:以下样式.功能代码基于 Twikoo v1.6.4 前端魔改 "管理面板"按钮同步隐藏输入框.先到twiko ...

  8. 【Java】学习路径51-线程组

    平时创建线程的时候,系统会默认为线程分组. 我们可以使用 ThreadGroup tg1 = t1.getThreadGroup(); 取得t1的线程组对象. 然后使用getName获得线程组名称. ...

  9. OpenJudge1.5.17 菲波那契数列

    17:菲波那契数列 总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和. 给出一个正整数k,要求 ...

  10. JavaScript 闭包 —— { }

    闭包是什么 闭包是一个[函数](一个作用域可以访问另一个函数的局部变量) 闭包的作用 延伸变量的作用域 function f() { let num = 21; return function () ...