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

网站建设实例教程重庆seo网站推广费用

网站建设实例教程,重庆seo网站推广费用,上海英文网站建设公司,百度在西安有分公司吗MyBatis 的 代理开发方式(Mapper 接口代理)是其核心特性之一,通过动态代理技术,将 Mapper 接口的方法调用自动映射到 XML 或注解中定义的 SQL 语句。这种方式避免了手动编写 DAO 实现类,极大简化了持久层代码。 1.代理…

MyBatis 的 代理开发方式(Mapper 接口代理)是其核心特性之一,通过动态代理技术,将 Mapper 接口的方法调用自动映射到 XML 或注解中定义的 SQL 语句。这种方式避免了手动编写 DAO 实现类,极大简化了持久层代码。

1.代理开发的核心原理

  1. 动态代理机制
    MyBatis 在运行时通过 JDK 动态代理 为 Mapper 接口生成代理对象。当调用接口方法时,代理对象会根据方法名、参数和返回类型,找到对应的 SQL 并执行。

  2. 映射规则

    • XML 映射:接口方法名与 XML 中的 <select|insert|update|delete> 标签的 id 匹配。
    • 注解映射:直接在接口方法上使用 @Select@Insert 等注解定义 SQL。
  3. 核心组件

    • Mapper 接口:定义数据库操作方法。
    • 映射文件/注解:绑定 SQL 与接口方法。
    • SqlSession.getMapper():获取接口的代理对象。

2.代理开发步骤(XML方式)

2.1定义Mapper接口

public interface UserMapper {// 根据ID查询用户User selectById(int id);// 插入用户int insert(User user);// 更新用户int update(User user);// 删除用户int delete(int id);
}

2.2创建XML映射文件

在resource/mapper/UserMapper.xml中编写SQL:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper"><!-- 根据ID查询 --><select id="selectById" parameterType="int" resultType="User">SELECT * FROM user WHERE id = #{id}</select><!-- 插入用户 --><insert id="insert" parameterType="User">INSERT INTO user (name, age) VALUES (#{name}, #{age})</insert><!-- 更新用户 --><update id="update" parameterType="User">UPDATE user SET name = #{name}, age = #{age}WHERE id = #{id}</update><!-- 删除用户 --><delete id="delete" parameterType="int">DELETE FROM user WHERE id = #{id}</delete>
</mapper>

2.3配置myBatis核心文件

在mybatis-config.xml中加载映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper"><!-- 根据ID查询 --><select id="selectById" parameterType="int" resultType="User">SELECT * FROM user WHERE id = #{id}</select><!-- 插入用户 --><insert id="insert" parameterType="User">INSERT INTO user (name, age) VALUES (#{name}, #{age})</insert><!-- 更新用户 --><update id="update" parameterType="User">UPDATE user SET name = #{name}, age = #{age}WHERE id = #{id}</update><!-- 删除用户 --><delete id="delete" parameterType="int">DELETE FROM user WHERE id = #{id}</delete>
</mapper>

2.4获取对象并调用方法

// 1. 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();// 2. 获取 Mapper 代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);// 3. 调用接口方法执行 SQL
User user = userMapper.selectById(1);
int rows = userMapper.insert(new User("Alice", 25));// 4. 提交事务并关闭会话
sqlSession.commit();
sqlSession.close();

3.代理开发方式(注解方式)

3.1使用注解定义SQL

public interface UserMapper {@Select("SELECT * FROM user WHERE id = #{id}")User selectById(int id);@Insert("INSERT INTO user (name, age) VALUES (#{name}, #{age})")@Options(useGeneratedKeys = true, keyProperty = "id")int insert(User user);@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")int update(User user);@Delete("DELETE FROM user WHERE id = #{id}")int delete(int id);
}

3.2配置扫描mapper接口

在mybatis-config.xml中指定包接口路径

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

4.注意事项

Mapper接口开发方法只需要编写Mapper接口(相当于DAO接口),由MyBatis框架根据接口定义创建接口的动态代理对象。

Mapper接口开发需要遵循以下规范:

  • Mapper.xml文件中的namespace与mapper接口的全限定名相同
  • Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
  • Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的patameterType的类型相同
  • Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType类型相同
http://www.dtcms.com/wzjs/377587.html

相关文章:

  • 网站开发方向精准引流推广团队
  • 网站开发公司会在最后面加上公司优化排名工具
  • 怎么做售房网站成人培训班有哪些课程
  • c web网站开发权限window优化大师
  • 网站虚拟空间作用凡科建站官网免费注册
  • 深圳网站建设制作品牌公司网站推广的技巧
  • 模板网站制作时间seo快速排名工具
  • 什么是网站模板设计百度广告联盟平台的使用知识
  • 兴义做网站的seo查询网站是什么
  • WordPress文章分栏置顶百度seo推广怎么做
  • 长春做网站的公司有哪些百度问答库
  • 自己做键盘的网站免费永久注册顶级域名网站
  • 做医疗器械网站广州网络营销选择
  • 哪个网站做动图百度精准营销获客平台
  • wordpress 4.8zh关键词优化报价
  • 做国外网站关键词用写企业网站推广方法实验报告
  • 绿色学校网站模板百度账号申诉
  • 好的电商网站建设与维护意味着什么河南网站建设哪个公司做得好
  • 行业网站建设分析外链网站推荐几个
  • wordpress停止更新常州谷歌优化
  • 网站建设与管理难学吗百度url提交
  • 浙江做网站公司有哪些突发大事震惊全国
  • 张家口领先的网站建设服务商seo网络推广技术员招聘
  • 用vue做商城网站常用的js如何给企业做网络推广
  • 网上商城开发费用seo如何提高网站排名
  • 南宁网站提升排名如何创建一个网页
  • 一个外国人做的汉子 网站搜索推广
  • 使用oss图片做网站百度信息流怎么做效果好
  • 网站建设制作设计推广百度热搜榜单
  • 昆山建设局图审中心网站it培训机构出来能找到工作吗