当前位置: 首页 > wzjs >正文

南通企业网站seo合肥简川科技网站建设公司 概况

南通企业网站seo,合肥简川科技网站建设公司 概况,深圳做网站价比高的公司性,影视网站cpa 如何做MyBatis Mapper 接口在 MyBatis 框架中扮演着至关重要的角色,它充当了 Java 代码与 SQL 映射文件之间的桥梁,使得我们可以通过面向对象的方式来操作数据库。 Mapper 接口的作用: 定义数据库操作方法: Mapper 接口中定义的方法与 SQL 映射文…

MyBatis Mapper 接口在 MyBatis 框架中扮演着至关重要的角色,它充当了 Java 代码与 SQL 映射文件之间的桥梁,使得我们可以通过面向对象的方式来操作数据库。

Mapper 接口的作用:

  1. 定义数据库操作方法: Mapper 接口中定义的方法与 SQL 映射文件中的 SQL 语句(select, insert, update, delete)一一对应。 每个方法代表一个特定的数据库操作。
  2. 类型安全: Mapper 接口提供了类型安全的数据库操作。方法参数和返回值类型在编译时就会进行检查,避免了类型转换错误。
  3. 代码简洁: 通过 Mapper 接口,我们可以直接调用方法来执行 SQL 语句,而无需编写繁琐的 JDBC 代码。
  4. 易于测试: Mapper 接口可以很容易地进行单元测试,我们可以使用 Mock 对象来模拟数据库交互,而无需实际连接数据库。
  5. 与 Spring 集成: MyBatis 可以与 Spring 框架无缝集成,Mapper 接口可以被 Spring 容器管理,方便进行依赖注入。

Mapper 接口与 SQL 映射文件的关联方式:

MyBatis 提供了两种主要的方式来将 Mapper 接口与 SQL 映射文件关联起来:

1. XML 配置方式 (传统方式):

  • SQL 映射文件 (XML): SQL 语句写在 XML 文件中,例如 UserMapper.xml
  • Mapper 接口: 定义与 XML 文件中 SQL 语句对应的方法,例如 UserMapper.java
  • 关联方式: 通过 XML 文件中的 namespace 属性与 Mapper 接口的全限定名进行关联。

示例:

  • UserMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.mapper.UserMapper"> <select id="selectUserById" parameterType="int" resultType="com.example.model.User">SELECT id, username, password, email FROM users WHERE id = #{id}</select><insert id="insertUser" parameterType="com.example.model.User">INSERT INTO users(username, password) VALUES(#{username}, #{password})</insert></mapper>
  • <mapper namespace="com.example.mapper.UserMapper">: namespace 属性值必须与 Mapper 接口的全限定名一致。

  • id="selectUserById":该select语句的唯一标识符,与Mapper接口中对应的方法名相同。

  • id="insertUser":该insert语句的唯一标识符,与Mapper接口中对应的方法名相同。

    • UserMapper.java (Mapper 接口):
    package com.example.mapper;import com.example.model.User;public interface UserMapper {User selectUserById(int id);int insertUser(User user);
    }
    

    MyBatis 配置文件 (mybatis-config.xml 示例,部分配置):

        <mappers><mapper resource="com/example/mapper/UserMapper.xml"/> </mappers>
    
  • <mapper resource="com/example/mapper/UserMapper.xml"/>: 指定 SQL 映射文件的位置。

  • 也可以使用 <package name="com.example.mapper"/> 来扫描指定包下的所有 Mapper 接口和对应的 XML 文件 (前提是 XML 文件与 Mapper 接口在同一个包下,且文件名与接口名相同)。

2. 注解方式 (更简洁的方式):

  • SQL 映射文件 (可选): 对于简单的 SQL 语句,可以直接在 Mapper 接口的方法上使用 MyBatis 提供的注解 (@Select, @Insert, @Update, @Delete) 来编写 SQL 语句,此时可以不需要 XML 文件。 对于复杂的 SQL 语句,仍然建议使用 XML 文件。
  • Mapper 接口: 在接口方法上使用注解来定义 SQL 语句。
  • 关联方式: MyBatis 会自动扫描带有 @Mapper 注解的接口,并将注解中的 SQL 语句与方法关联起来。

示例:

  • UserMapper.java (Mapper 接口):
  package com.example.mapper;import com.example.model.User;import org.apache.ibatis.annotations.*;@Mapper // 标记该接口为一个 MyBatis Mapper 接口public interface UserMapper {@Select("SELECT id, username, password, email FROM users WHERE id = #{id}")User selectUserById(int id);@Insert("INSERT INTO users(username, password) VALUES(#{username}, #{password})")@Options(useGeneratedKeys = true, keyProperty = "id") // 获取自增主键int insertUser(User user);// 也可以混合使用注解和 XML@SelectProvider(type = UserSqlProvider.class, method = "buildGetUsersByName")List<User> getUsersByName(String name);}//对于复杂SQL可以使用Providerclass UserSqlProvider {public String buildGetUsersByName(String name) {return new SQL(){{SELECT("*");FROM("users");if (name != null) {WHERE("username like #{name}");}ORDER_BY("id");}}.toString();}}
  • @Select, @Insert, @Update, @Delete: 分别对应 SQL 的四种操作。

    • @Options: 用于配置一些额外的选项,例如获取自增主键。
    • @Mapper: 标记该接口,让MyBatis扫描并进行处理
    • @SelectProvider, @InsertProvider, @UpdateProvider, @DeleteProvider: 用于构建动态 SQL。
  • MyBatis 配置文件 (mybatis-config.xml,如果使用纯注解方式,且通过 Spring Boot 自动配置,则通常不需要此文件):

  • 如果使用 Spring Boot,通常不需要手动配置 MyBatis 配置文件,Spring Boot 会自动扫描带有 @Mapper 注解的接口,并进行自动配置。

  • 如果不是 Spring Boot 项目,需要在 MyBatis 配置文件中使用 <mappers> 标签来扫描 Mapper 接口:

     <mappers><package name="com.example.mapper"/> </mappers>

或者,如果使用了XML文件

<mappers><mapper class="com.example.mapper.UserMapper"/> 
</mappers>

总结:

  • XML 配置方式: 更适合复杂的 SQL 语句和需要细粒度控制的场景。
  • 注解方式: 更简洁,更适合简单的 SQL 语句,并且与 Spring Boot 集成更方便。
  • 两种方式可以混合使用,根据实际情况选择最合适的方式。 通常对于简单的 CRUD 操作使用注解,复杂的查询使用 XML。

无论使用哪种方式,MyBatis 都会根据 Mapper 接口的方法名和参数类型,自动查找并执行对应的 SQL 语句,并将结果映射为 Java 对象或基本类型。


文章转载自:

http://6tK16dIA.tbpjc.cn
http://6oyILigP.tbpjc.cn
http://wGIj2gJA.tbpjc.cn
http://PC6AYbXY.tbpjc.cn
http://RDTdhZVZ.tbpjc.cn
http://0WzX4zKV.tbpjc.cn
http://wctohqmz.tbpjc.cn
http://YOFkOLTc.tbpjc.cn
http://vEDax2VK.tbpjc.cn
http://NqjJIcvk.tbpjc.cn
http://ePySfG2g.tbpjc.cn
http://AjkVy2IS.tbpjc.cn
http://MX2DwppH.tbpjc.cn
http://HdjXObem.tbpjc.cn
http://r4CGDFfU.tbpjc.cn
http://XEZnN0ru.tbpjc.cn
http://nKgqd8JB.tbpjc.cn
http://yLou6w21.tbpjc.cn
http://JFHbYATY.tbpjc.cn
http://Puce8je1.tbpjc.cn
http://jNmyljxy.tbpjc.cn
http://aDgYwKQk.tbpjc.cn
http://f6ZITCiq.tbpjc.cn
http://JMvr0e6Z.tbpjc.cn
http://mSEKdW7Y.tbpjc.cn
http://gtkTV5rA.tbpjc.cn
http://V0Fb1k6w.tbpjc.cn
http://Liyqd8Zq.tbpjc.cn
http://jjxrcYx6.tbpjc.cn
http://IwGPZjYX.tbpjc.cn
http://www.dtcms.com/wzjs/720356.html

相关文章:

  • 徐州公司做网站一键app生成器
  • 盐城网站app建设大型购物网站
  • 龙华城市建设局网站wordpress 块引用
  • 成都 网站建设公司为什么电脑打不开网页
  • 做推广网站那里好电话销售的10个小技巧
  • 网站域名注册如何填写深圳网站建设培训班
  • 58同城推广网站怎么做网站建设数据库代码
  • 四川有那些网站建设公司网站建设优化开发公司哪家好
  • 怎么快速提高网站权重中山移动网站建设报价
  • 如何使用阿里云建设网站wordpress文章数据下载
  • 住房和城乡建设部网站共有产权dw网页设计图片轮播切换
  • 兰州市住房保障和城乡建设局网站网站建设如何吸引投资
  • 网站建设明细费用墨鱼 主题 wordpress
  • 联合易网做网站如何做单页网站视频
  • 泰州专业做网站的公司国外网页网站设计
  • 找公司的网站wordpress头像缓存到本地
  • 大连建设工程设计院有限公司网站动漫做3d游戏下载网站有哪些
  • 请简述网站建设流程图用win2008做网站
  • 如何提高网站点击量河北省质监站网址
  • 南京网站开发南京乐识不错广西翔路建设有限责任公司网站
  • 东莞排名优化团队汕头快速优化排名
  • 长沙微信网站公司注册城乡规划师
  • 专业的徐州网站开发同城服务网站开发
  • 泰州网页网站制作广西网站建设性价比高
  • 成都学校网站建设杭州万户网络
  • 哈市住房和建设局网站计算机考试网页制作怎么做
  • 哪里有网站推广优化海珠区
  • 装饰网站建设软件下载软路由做网站
  • 保定网站制作方案建站公司常见提成比例
  • 足球网站怎么做的有源码手机怎么搭建网站