Mybatis 框架课程第二天
电话:400-618-9090 Mybatis 框架课程第二天 第1章 回顾 1.1 自定义流程再分析 传智播客——专注于 Java、.Net 和 Php、网页平面设计工程师的培训 北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090 1.2 mybatis 环境搭建步骤 第一步:创建 maven 工程 第二步:导入坐标 第三步:编写必要代码(实体类和持久层接口) '%${value}%' 我们在上面将原来的#{}占位符,改成了${value}。注意如果用模糊查询的这种写法,那么${value}的写 法就是固定的,不能写成其它名字。 第二步:测试,如下: /** * 测试模糊查询操作 */ @Test public void testFindByName(){ //5.执行查询一个方法 Dao,通常有两个方法,即原始 Dao 开发方式和 Mapper 接口代理开发方式。而现在主流 的开发方式是接口代理开发方式,这种方式总体上更加简便。我们的课程讲解也主要以接口代理开发方式为主。在 第二章节已经给大家介绍了基于代理方式的 dao 开发,现在给大家介绍一下基于传统编写 Dao 实现类的开发方式。 5.1 Mybatis 实现 DAO 的传统开发方式 5.1.1 持久层 Dao0 码力 | 27 页 | 1.21 MB | 1 年前3传智播客 mybatis 框架课程讲义
//获取预处理statement preparedStatement = connection.prepareStatement(sql); //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个 参数为设置的参数值 preparedStatement.setString(1, "王五"); //向数据库发出sql执行查询,查询出结果集 resultSet = preparedStatement 根据用户名称模糊查询用户信息列表 添加用户 更新用户 删除用户 1.6.2 第一步:创建 java 工程 使用 eclipse 创建 java 工程,jdk 使用 1.7.0_72。 1.6.3 第二步:加入 jar 包 加入 mybatis 核心包、依赖包、数据驱动包。 1.6.4 第三步:log4j.properties 在 classpath 下创建 log4j.properties Mapper(namespace)二级缓存 Mybatis 一级缓存的作用域是同一个 SqlSession,在同一个 sqlSession 中两次执行相同的 sql 语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中获取 数据将不再从数据库查询,从而提高查询效率。当一个 sqlSession 结束后该 sqlSession 中的 一级缓存也就不存在了。Mybatis 默认开启一级缓存。 Mybatis0 码力 | 75 页 | 1.16 MB | 1 年前3Mybatis 3.3.0 中文用户指南
接口的方法。不过让我们再看一遍下面的例子: BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(101); 第二种方法有很多优势,首先它不是基于字符串常量的,就会更安全;其次,如果你的 IDE 有代码补全功能,那么你可以在有了已映射 SQL 语句的基础之上利用这个功能。 PDFmyURL - the best 会从结果集中得到每条记录, 然后比较它的 vehicle 类型的值。 如果它匹配任何一个鉴别器的实例,那么就使用 这个实例指定的结果映射。换句话说,这样 做完全是剩余的结果映射被忽略(除非它被扩展,这在第二个示例中讨论) 。如果没有任何 一个 实例相匹配,那么 MyBatis 仅仅使用鉴别器块外定义的结果映射。所以,如果 carResult 按如下声明:如果这些条件没有一个能匹配上将会怎样?最终这条 SQL 会变成这样: SELECT * FROM BLOG WHERE 这会导致查询失败。如果仅仅第二个条件匹配又会怎样?这条 SQL 最终会是这样: SELECT * FROM BLOG WHERE AND title like ‘someTitle’ 这个查询也会失败。这个问题不能简单 0 码力 | 98 页 | 2.03 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0-alpha
解 析器经历了 3 代产品的更新迭代。 第一代 SQL 解析器为了追求性能与快速实现,在 1.4.x 之前的版本使用 Druid 作为 SQL 解析器。经实际 测试,它的性能远超其它解析器。 第二代 SQL 解析器从 1.5.x 版本开始,ShardingSphere 采用完全自研的 SQL 解析引擎。由于目的不同, ShardingSphere 并不需要将 SQL 转为一颗完全的抽象语法 0 排列在队列的最后一 3.1. 数据分片 42 Apache ShardingSphere document, v5.0.0-beta 位。之前队列中排名第二的 t_score_2 的数据结果集则自动排在了队列首位。 在进行第二次 next 时,只需要将目前排列在队列首位的 t_score_2 弹出队列,并且将其数据结果集游标 指向的值返回至客户端,并下移游标,继续加入队列排队,以此类推。当一个结果集中已经没有数据了, 调用结束后,取出的结果集是“Jetty”的分数总和。与 此同时,所有的数据结果集中的游标都将下移至数据值“Jetty”的下一个不同的数据值,并且根据数据 结果集当前游标指向的值进行重排序。因此,包含名字顺着第二位的“John”的相关数据结果集则排在 的队列的前列。 流式分组归并与排序归并的区别仅仅在于两点: 1. 它会一次性的将多个数据结果集中的分组项相同的数据全数取出。 2. 它需要根据聚合函数的类型进行聚合计算。0 码力 | 301 页 | 3.44 MB | 1 年前3Apache ShardingSphere 中文文档 5.0.0
ShardingSphere‐JDBC 的优势在于对 Java 应用的友好度。 3.1.2 ShardingSphere-Proxy ShardingSphere‐Proxy 是 Apache ShardingSphere 的第二个产品。它定位为透明化的数据库代理端,提 供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前提供 MySQL 和 PostgreSQL (兼容 openGauss 等基于 PostgreSQL 更新。更新完毕后,抛出空指 针,则两个库的内容都能够回滚。 不支持项 • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提 交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。 XA 事务 支持项 • 支持数据分片后的跨库事务; • 两阶段提交保证操作的原子性和数据的强一致性; • 服务宕机重启后,提交/回滚中的事务可自动恢复; • 支持同时使用 Apache ShardingSphere 的链路追踪信息。缺点是 OpenTracing 协议发展并不稳定,较新的版本 实现者较少,且协议本身过于中立,对于个性化的相关产品的实现不如原生支持强大。 第二种方式是使用 SkyWalking 的自动探针。Apache ShardingSphere 团队与Apache SkyWalking 团队共 同合作,在 SkyWalking 中实现了 Apache0 码力 | 385 页 | 4.26 MB | 1 年前3Apache ShardingSphere 中文文档 5.4.1
给使用者,在不同的场景使用最适合的分布式事务解决方案。 LOCAL 事务 不支持项 • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提 交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。 XA 事务 不支持项 • 服务宕机后,在其它机器上恢复提交/回滚中的数据; • MySQL 事务块内,SQL 执行出现异常,执行 Commit,数据保持一致; • 挑战 在迁移过程中,不应该对正在运行的业务造成影响。尽可能减少迁移时数据不可用的时间窗口,是数据 迁移的第一个挑战; 其次,数据迁移不应该对现有的数据造成影响,如何保证数据的正确性,是数据迁移的第二个挑战。 8.6.3 目标 减少数据迁移时的业务影响,提供一站式的通用数据迁移解决方案,是 Apache ShardingSphere 数据迁 移的主要设计目标。 8.6.4 应用场景 假 Apache ShardingSphere document 3. 通过命令行启动 Native Image, 需要带上 4 个参数。第一个参数为 ShardingSphere Proxy 使用的端 口,第二个参数为你编写的包含 server.yaml 的 /conf 文件夹,第三个参数为绑定端口的 Address, 第四个参数为 Force Start,如果为 true 则保证 ShardingSphere0 码力 | 530 页 | 4.49 MB | 1 年前3Apache ShardingSphere 中文文档 5.3.2
给使用者,在不同的场景使用最适合的分布式事务解决方案。 LOCAL 事务 不支持项 • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提 交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。 XA 事务 不支持项 • 服务宕机后,在其它机器上恢复提交/回滚中的数据; • MySQL 事务块内,SQL 执行出现异常,执行 Commit,数据保持一致; • 挑战 在迁移过程中,不应该对正在运行的业务造成影响。尽可能减少迁移时数据不可用的时间窗口,是数据 迁移的第一个挑战; 其次,数据迁移不应该对现有的数据造成影响,如何保证数据的正确性,是数据迁移的第二个挑战。 8.6.3 目标 减少数据迁移时的业务影响,提供一站式的通用数据迁移解决方案,是 Apache ShardingSphere 数据迁 移的主要设计目标。 8.6.4 应用场景 假 -DskipTests clean package 3. 通过命令行启动 Native Image, 需要带上 4 个参数。第一个参数为 ShardingSphere Proxy 使用的端 口,第二个参数为你编写的包含 server.yaml 的 /conf 文件夹,第三个参数为绑定端口的 Address, 第四个参数为 Force Start,如果为 true 则保证 ShardingSphere0 码力 | 508 页 | 4.44 MB | 1 年前3Apache ShardingSphere v5.5.0 中文文档
给使用者,在不同的场景使用最适合的分布式事务解决方案。 LOCAL 事务 不支持项 • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提 交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。 XA 事务 不支持项 • 服务宕机后,在其它机器上恢复提交/回滚中的数据; • MySQL 事务块内,SQL 执行出现异常,执行 Commit,数据保持一致; • 挑战 在迁移过程中,不应该对正在运行的业务造成影响。尽可能减少迁移时数据不可用的时间窗口,是数据 迁移的第一个挑战; 其次,数据迁移不应该对现有的数据造成影响,如何保证数据的正确性,是数据迁移的第二个挑战。 8.6.3 目标 减少数据迁移时的业务影响,提供一站式的通用数据迁移解决方案,是 Apache ShardingSphere 数据迁 移的主要设计目标。 8.6.4 应用场景 假 -DskipTests clean package 3. 通过命令行启动 Native Image, 需要带上 4 个参数。第一个参数为 ShardingSphere Proxy 使用的端 口,第二个参数为你编写的包含 global.yaml 的 /conf 文件夹,第三个参数为绑定端口的 Address, 第四个参数为 Force Start,如果为 true 则保证 ShardingSphere0 码力 | 557 页 | 4.61 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.1
ShardingSphere‐JDBC 的优势在于对 Java 应用的友好度。 3.1.2 ShardingSphere-Proxy ShardingSphere‐Proxy 是 Apache ShardingSphere 的第二个产品。它定位为透明化的数据库代理端,提 供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前提供 MySQL 和 PostgreSQL (兼容 openGauss 等基于 PostgreSQL 更新。更新完毕后,抛出空指 针,则两个库的内容都能够回滚。 不支持项 • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提 交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。 XA 事务 支持项 • 支持数据分片后的跨库事务; • 两阶段提交保证操作的原子性和数据的强一致性; • 服务宕机重启后,提交/回滚中的事务可自动恢复; • 支持同时使用 解 析器经历了 3 代产品的更新迭代。 第一代 SQL 解析器为了追求性能与快速实现,在 1.4.x 之前的版本使用 Druid 作为 SQL 解析器。经实际 测试,它的性能远超其它解析器。 第二代 SQL 解析器从 1.5.x 版本开始,ShardingSphere 采用完全自研的 SQL 解析引擎。由于目的不同, ShardingSphere 并不需要将 SQL 转为一颗完全的抽象语法0 码力 | 409 页 | 4.47 MB | 1 年前3Apache ShardingSphere 中文文档 5.2.0
更新。更新完毕后,抛出空指 针,则两个库的内容都能够回滚。 不支持项 • 不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提 交之前,第一个库宕机,则只有第二个库数据提交,且无法回滚。 XA 事务 支持项 • 支持 Savepoint 嵌套事务; • PostgreSQL/OpenGauss 事务块内,SQL 执行出现异常,执行 Commit,事务自动回滚; 挑战 在迁移过程中,不应该对正在运行的业务造成影响。尽可能减少迁移时数据不可用的时间窗口,是数据 迁移的第一个挑战; 其次,数据迁移不应该对现有的数据造成影响,如何保证数据的正确性,是数据迁移的第二个挑战。 3.7.3 目标 减少数据迁移时的业务影响,提供一站式的通用数据迁移解决方案,是 Apache ShardingSphere 数据迁 移的主要设计目标。 3.7.4 应用场景 假 解 析器经历了 3 代产品的更新迭代。 第一代 SQL 解析器为了追求性能与快速实现,在 1.4.x 之前的版本使用 Druid 作为 SQL 解析器。经实际 测试,它的性能远超其它解析器。 第二代 SQL 解析器从 1.5.x 版本开始,ShardingSphere 采用完全自研的 SQL 解析引擎。由于目的不同, ShardingSphere 并不需要将 SQL 转为一颗完全的抽象语法0 码力 | 449 页 | 5.85 MB | 1 年前3
共 13 条
- 1
- 2