传智播客 mybatis 框架课程讲义语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动 需要改变 java 代码。 3、 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不 一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。 4、 对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维护,如 果能将数据库记录封装成 pojo parameterType="int" resultType="cn.itcast.mybatis.po.User"> select * from user where id = #{id}
Mybatis 3.3.0 中文用户指南项目文档 项目文档 项目信息 项目信息 项目报表 项目报表 动态 动态 SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句 有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种 痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 采用功能强大的基于 OGNL 的表达式来消除其他元素。 if choose (when, otherwise) trim (where, set) foreach if 动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如:0 码力 | 98 页 | 2.03 MB | 1 年前3
Mybatis 框架课程第二天 System.out.println(user); } } 在控制台输出的执行 SQL 语句如下: 我们在配置文件中没有加入%来作为模糊查询的条件,所以在传入字符串实参时,就需要给定模糊查询的标 识%。配置文件中的#{username}也只是一个占位符,所以 SQL 语句显示为“?”。 2.5.4 模糊查询的另一种配置方式 第一步:修改 变动需要改变 java 代码。 解决: 将 Sql 语句配置在 XXXXmapper.xml 文件中与 java 代码分离。 3.向 sql 语句传参数麻烦,因为 sql 语句的 where 条件不一定,可能多也可能少,占位符需要和参数对应。 解决: Mybatis 自动将 java 对象映射至 sql 语句,通过 statement 中的 parameterType 定义输入参数的 3.2 传递 pojo 包装对象 开发中通过 pojo 传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查 询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。 Pojo 类中包含 pojo。 需求:根据用户名查询用户信息,查询条件放到 QueryVo 的 user 属性中。 3.2.1 编写 QueryVo0 码力 | 27 页 | 1.21 MB | 1 年前3
Apache ShardingSphere v5.5.0 中文文档1.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 i 7.1.4 操作步骤 . 2.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2.4 操作步骤 . . . ShardingSphere‐JDBC 可以通过 Java 和 YAML 这 2 种方式进行配置,开发者可根据场景选择适 合的配置方式。 7.1.2 使用限制 目前仅支持 JAVA 语言 7.1.3 前提条件 开发环境需要具备 Java JRE 8 或更高版本。 7.1.4 操作步骤 1. 规则配置。 详情请参见用户手册。 2. 引入 maven 依赖。org 0 码力 | 557 页 | 4.61 MB | 1 年前3
Apache ShardingSphere 中文文档 5.4.11.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 i 7.1.4 操作步骤 . 2.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2.4 操作步骤 . . . ShardingSphere‐JDBC 可以通过 Java 和 YAML 这 2 种方式进行配置,开发者可根据场景选择适 合的配置方式。 7.1.2 使用限制 目前仅支持 JAVA 语言 7.1.3 前提条件 开发环境需要具备 Java JRE 8 或更高版本。 7.1.4 操作步骤 1. 规则配置。 详情请参见用户手册。 2. 引入 maven 依赖。org 0 码力 | 530 页 | 4.49 MB | 1 年前3
Apache ShardingSphere 中文文档 5.3.21.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 i 7.1.4 操作步骤 . 2.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2.4 操作步骤 . . . ShardingSphere‐JDBC 可以通过 Java 和 YAML 这 2 种方式进行配置,开发者可根据场景选择适 合的配置方式。 7.1.2 使用限制 目前仅支持 JAVA 语言 7.1.3 前提条件 开发环境需要具备 Java JRE 8 或更高版本。 7.1.4 操作步骤 1. 规则配置。 详情请参见用户手册。 2. 引入 maven 依赖。org 0 码力 | 508 页 | 4.44 MB | 1 年前3
Apache ShardingSphere 中文文档 5.2.01.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.4 操作步骤 . . . 2.2 使用限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.3 前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.4 操作步骤 . . . Java,YAML,Spring 命名空间和 Spring Boot Starter 这 4 种方式进行配置,开发者可根据场景选择适合的配置方式。 2.1.2 使用限制 目前仅支持 JAVA 语言 2.1.3 前提条件 开发环境需要具备 Java JRE 8 或更高版本。 2.1.4 操作步骤 1. 规则配置。 详情请参见用户手册。 2. 引入 maven 依赖。org 0 码力 | 449 页 | 5.85 MB | 1 年前3
MyBatis 框架尚硅谷 java 研究院版本:V 1.0= 注意:xml 中特殊符号如”,>,<等这些都需要使用转义字符 5.2 if where 1) If 用于完成简单的判断. 2) Where 用于解决 SQL 语句中 where 关键字以及条件中第一个 and 或者 or 的问题"f".equals(gender)"> and gender = #{gender} 5.3 trim 1) Trim 可以在条件判断完的 SQL 语句前后 添加或者去掉指定的字符 prefix: 添加前缀 prefixOverrides: 去掉前缀 suffix: 添加后缀 suffixOverrides: 去掉后缀条件不同 3) 同一个 SqlSession 两次查询期间执行了任何一次增删改操作 4) 同一个 SqlSession 两次查询期间手动清空了缓存 6.4 二级缓存的使用 1) 二级缓存(second 0 码力 | 44 页 | 926.54 KB | 1 年前3
Apache ShardingSphere 中文文档 5.0.0-alphat_order 在 FROM 的最左侧,ShardingSphere 将会以它作为整个绑定表的主表。所有路由计算将 会只使用主表的策略,那么 t_order_item 表的分片计算将会使用 t_order 的条件。故绑定表之间的 分区键要完全相同。 广播表 指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中均完全一致。适用于数据量不 大且需要与海量数据的表进行关联查询的场景,例如:字典表。 不分片的策略。 3.1. 数据分片 13 Apache ShardingSphere document, v5.0.0-beta SQL Hint 对于分片字段非 SQL 决定,而由其他外置条件决定的场景,可使用 SQL Hint 灵活的注入分片字段。例: 内部系统,按照员工登录主键分库,而数据库中并无此字段。SQL Hint 支持通过 Java API 和 SQL 注释 (待实现)两种方式使用。详情请参见强制分片路由。 语句中没有分片条件,则无法进行分片,需要全路由。 在一些应用场景中,分片条件并不存在于 SQL,而存在于外部业务逻辑。因此需要提供一种通过外部指 定分片结果的方式,在 Apache ShardingSphere 中叫做 Hint。 实现机制 Apache ShardingSphere 使用 ThreadLocal 管理分片键值。可以通过编程的方式向 HintManager 中 添加分片条件,该分片条件仅在当前线程内生效。0 码力 | 301 页 | 3.44 MB | 1 年前3
Apache ShardingSphere 中文文档 5.0.0t_order 在 FROM 的最左侧,ShardingSphere 将会以它作为整个绑定表的主表。所有路由计算将 会只使用主表的策略,那么 t_order_item 表的分片计算将会使用 t_order 的条件。因此,绑定表间 的分区键需要完全相同。 广播表 指所有的分片数据源中都存在的表,表结构及其数据在每个数据库中均完全一致。适用于数据量不大且 需要与海量数据的表进行关联查询的场景,例如:字典表。 行分片的场景。 分片策略 包含分片键和分片算法,由于分片算法的独立性,将其独立抽离。真正可用于分片操作的是分片键 + 分 片算法,也就是分片策略。 强制分片路由 对于分片字段并非由 SQL 而是其他外置条件决定的场景,可使用 SQL Hint 注入分片值。例:按照员工登 录主键分库,而数据库中并无此字段。SQL Hint 支持通过 Java API 和 SQL 注释(待实现)两种方式使用。 详情请参见强制分片路由。 语句中没有分片条件,则无法进行分片,需要全路由。 在一些应用场景中,分片条件并不存在于 SQL,而存在于外部业务逻辑。因此需要提供一种通过外部指 定分片结果的方式,在 Apache ShardingSphere 中叫做 Hint。 实现机制 Apache ShardingSphere 使用 ThreadLocal 管理分片键值。可以通过编程的方式向 HintManager 中 添加分片条件,该分片条件仅在当前线程内生效。0 码力 | 385 页 | 4.26 MB | 1 年前3
共 15 条
- 1
- 2













