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

简介: 这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。

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

相关文章
|
17天前
|
SQL XML Java
Mybatis基础使用知识(注解)
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。 最后 mybatis 框架执行sql 并将结果映射为java对象并返回。采用ORM(对象关系映射)思想解决了实体和数据库映射问题,对jdbc进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。
265 0
SQL XML Java
47 0
|
1月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
121 12
|
2月前
|
SQL XML Java
MyBatis框架如何处理字符串相等的判断条件。
总的来说,MyBatis框架提供了灵活而强大的机制来处理SQL语句中的字符串相等判断条件。无论是简单的等值判断,还是复杂的条件逻辑,MyBatis都能通过其标签和属性来实现,使得动态SQL的编写既安全又高效。
198 0
|
3月前
|
SQL XML Java
MyBatis注解的运用于条件搜索实践
通过上述的实践,我们可以看出MyBatis注解不仅能够实现条件搜索的需求,还能够提供灵活而强大的SQL构造能力,极大地简化了代码的复杂度,提高了开发效率。在实际的项目开发中,结合实际的业务需求合理选择MyBatis的配置方式(注解或XML),能够让数据持久层代码变得更加清晰和易维护。
93 11
|
3月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
885 1
|
3月前
|
前端开发 Java 数据库连接
后端开发中的错误处理实践:原则与实战
在后端开发中,错误处理是保障系统稳定性的关键。本文介绍了错误分类、响应设计、统一处理机制及日志追踪等实践方法,帮助开发者提升系统的可维护性与排障效率,做到防患于未然。
|
5月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
340 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
4月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
759 1
Spring boot 使用mybatis generator 自动生成代码插件
|
7月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
611 0