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. Taurus.MVC WebAPI 入门开发教程5:控制器安全校验属性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  2. PicGo+GitHub 图床搭建

    前言 用GitHub搭建图床,在很久之前我就有了解,但由于市面上有挺多免费的图床,比如我之前一直在用的 路过图床,所以一直懒得动手搭建GitHub图床.一直到前两天我在完善博客的相册时,发现 路过图床 ...

  3. Aoac唤醒的软件方案

    Aoac唤醒 这篇文章包含了Win10下的Aoac唤醒和Win11下的Aoac唤醒的不同地方,在结尾处: 从Win10时代开始,通过软件来唤醒机器是一个很常见的事情了,但是很少有文档去将如何通过AOA ...

  4. NOI P序列题 (二分)

    题面 题解 --WQS二分 想到这个这题就完了. 赛时没想到这个你就完了. 时间复杂度 O ( n log ⁡ a ) O(n\log a) O(nloga) 不难发现这题有凸性,可以WQS二分. 我 ...

  5. 【JDBC】学习路径1-JDBC背景知识

    学习完本系列JDBC课程后,你就可以愉快使用Java操作我们的MySQL数据库了. 各种数据分析都不在话下了. 第一章:废话 JDBC编程,就是写Java的时候,调用了数据库. Java Databa ...

  6. Python入门系列(三)一学就会-基础数据类型

    数据类型 您可以使用type()函数获取任何对象的数据类型. x = 5 print(type(x)) 数字类型 x = 1 # int y = 2.8 # float z = 1j # comple ...

  7. Neural ODE相关论文摘要翻译

    *****仅供个人学习记录***** Neural Ordinary Differential Equations[2019] 论文地址:[1806.07366] Neural Ordinary Di ...

  8. 五 工厂方法模式【Factory Method Pattern】 来自CBF4LIFE 的设计模式

    女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是"造人"的工作,这个词被现代人滥用了.这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛 ...

  9. Java循环解析

    Java循环解析 while循环(先判断) int i=0; while (i<100){    i++;    System.out.println(i); } DoWhile循环(先执行,后 ...

  10. 01_Linux基础-部署-VMware-Xshell-Xftp-内核-安迪比尔定理

    01_Linux基础-部署-VMware-Xshell-Xftp-内核-安迪比尔定理 博客:https://blog.csdn.net/cpen_web CentOS开源 免费 --- CentOS是 ...