后端框架的学习----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()中设定的属性名

相关文章
|
7月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
539 2
SQL XML Java
272 0
|
7月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
570 12
|
8月前
|
SQL XML Java
MyBatis框架如何处理字符串相等的判断条件。
总的来说,MyBatis框架提供了灵活而强大的机制来处理SQL语句中的字符串相等判断条件。无论是简单的等值判断,还是复杂的条件逻辑,MyBatis都能通过其标签和属性来实现,使得动态SQL的编写既安全又高效。
637 0
|
9月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
2617 1
|
9月前
|
前端开发 Java 数据库连接
后端开发中的错误处理实践:原则与实战
在后端开发中,错误处理是保障系统稳定性的关键。本文介绍了错误分类、响应设计、统一处理机制及日志追踪等实践方法,帮助开发者提升系统的可维护性与排障效率,做到防患于未然。
|
11月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
579 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
11月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1032 1
|
10月前
|
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`注解完成整合
1548 1
Spring boot 使用mybatis generator 自动生成代码插件
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
964 0

热门文章

最新文章