zoukankan      html  css  js  c++  java
  • Mybatis-05-使用注解开发

    使用注解开发

    1 面向接口编程

    原因:

    解耦、可扩展性、提高复用性

    关于接口的理解

    • 定义与实现的分离

    • 两类接口

      • 一个个体的抽象,abstract class

      • 一个个体某个方面的抽象,interface 

    三个面向:

    • 面向对象

    • 面向过程

    • 面向接口

    2 使用注解开发

    使用步骤:

    1. 注解在接口上实现

     @Select("select * from User")
     List<User> getUsers();
    1. 需要在核心配置文件中绑定接口

     <mappers>
         <mapper class="com.kuang.dao.UserMapper" />
     </mappers>
    1. 测试

    本质:反射机制实现

    底层:动态代理!

    8.3 注解实现CRUD

    1. 我们可以在工具类创建的时候实现自动提交事务

     //参数表示自动提交事务
     public static SqlSession getSqlSession(){
         return sqlSessionFactory.openSession(true);
     }
    1. 编写接口,添加注解

     public interface UserMapper {
     
         @Select("select * from User")
         List<User> getUsers();
     
         //多个参数情况下,必须加上@Param()注解
         @Select("select * from user where id=#{id}")
         User getUserById(@Param("id") int id);
     
         @Insert("insert into user(id,name,pwd) values(#{id},#{name},#{password})")
         int addUser(User user);
     
         @Update("update user set name=#{name},pwd=#{password} where id=#{id}")
         int updateUser(User user);
     
     }

    测试类

    注意:我们必须要将接口注册绑定到我们的核心配置文件中

    关于@Param()注解

    • 基本类型的参数或者String类型,必须加上

    • 引用类型不需要加

    • 如果只有一个基本类型的话,可以不加。

    • 在sql中引用的就是我们这里的注解中的属性

    #{ } 和${ }相比:最好用#{ }

  • 相关阅读:
    CodeForces 7B
    CodeForces 4D
    离散化
    线段树入门
    洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)
    Codeforces 1295D Same GCDs (欧拉函数)
    Codeforces 1295C Obtain The String (二分)
    Codeforces 1295B Infinite Prefixes
    Codeforces 1295A Display The Number(思维)
    Codeforces 1294F Three Paths on a Tree(树的直径,思维)
  • 原文地址:https://www.cnblogs.com/CodeHuba/p/13468890.html
Copyright © 2011-2022 走看看