前言 JDBC Request 主要是向数据库发送一个 JDBC 请求(sql 语句),并获取返回的数据集 它需要和数据库连接池配置(JDBC Connection Configuration)一起使用...limit 类似作用,限制 sql 语句返回结果集的行数 Handle ResultSet 如何定义 callable statements 返回的结果集;默认是存储为字符串 sql 语句 语句结尾不需要添加...Limit ResultSet 和 limit 类似作用,限制 sql 语句返回结果集的行数 Handle ResultSet 如何定义 callable statements...知识点 如果在 sql 语句中使用变量,且是字符串类型,需要加上引号(前提是变量值没有加引号),如 '${name}' 如果在 Parameter values 中使用变量,且是字符串类型,不需要加上引号...知识点 Limit ResultSet 是对 sql 语句返回的结果集限制行数 限制只返回了 10 条数据,然后 Limit ResultSet = 6 限制结果集最终只返回 6 条数据 limit
(String sqlString):执行查询数据库的SQL语句 ,返回一个结果集(ResultSet)对象。...等 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 语句。...2、执行查询返回的结果是一个ResultSet对象。 • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 行中数据的访问。...(2) 创建Callable实现类的实例,使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值。...如果任务已完成,则返回 true future.isCancelled(); // 如果在任务正常完成前将其取消,则返回 true future.cancel(true); // 试图取消对此任务的执行
否则,每个属性会按需加载 true 、 false false multipleResultSetsEnabled 是否允许单一语句返回多结果集(需要驱动支持) true 、 false true useColumnLabel...任意正整数 未设置 (null) defaultFetchSize 为驱动的结果集获取数量(fetchSize)设置一个提示值。此参数只可以在查询设置中被覆盖。...如果允许使用则设置为 false。...这个设置仅针对嵌套结果 select 语句适用:如果为 true,就是假设包含了嵌套结果集或是分组,这样的话当返回一个主结果行的时候,就不会发生有对前面结果集的引用的情况。...它将列出语句执行后返回的结果集并给每个结果集一个名称,名称是逗号分隔的 1.2.2 insert 插入语句的配置规则更加丰富,在插入语句里面有一些额外的属性和子元素用来处理主键的生成,而且有多种生成方式
子查询 在嵌套查询中,最外面查询结果集返回给调用方,称为外部查询。嵌套在外部查询内的查询称为子查询,子查询的结果集供外部查询使用。 根据是否依赖外部查询,可将子查询分为自包含子查询和相关子查询。...自包含子查询不依赖外部查询,相关子查询则依赖外部查询。 子查询结果是在运行时计算的,查询结果会跟随查询表的变化而改变。子查询可以返回单个值(标量)、多个值或者整个表结果。...,但当子查询的返回结果集中包含NULL值时,上述查询语句则不会返回任何数据。...有时候会看到即使外部查询未使用ORDER BY但查询结果集按预期顺序返回了结果,这是由于数据库自身优化的结果,依然无法保证每次查询都能按预期结果返回。...可以使用存储过程:sp_refreshview和sp_refreshsqlmodule来更新视图的元数据,或者使用ALTER语句修改视图定义。
否则,每个延迟加载属性会按需加载 false multipleResultSetsEnabled 是否允许单个语句返回多结果集(需要数据库驱动支持) true useColumnLabel 使用列标签代替列名...如果在 javaType 属性中也同时指定,则注解上的配置将被忽略。...如果在 jdbcType 属性中也同时指定,则注解上的配置将被忽略。...resultOrdered 这个设置仅针对嵌套结果 select 语句:如果为 true,将会假设包含了嵌套结果集或是分组,当返回一个主结果行时,就不会产生对前面结果集的引用。...它将列出语句执行后返回的结果集并赋予每个结果集一个名称,多个名称之间以逗号分隔。
---- Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。...存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。...由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。...3、存储过程减轻网络流量 对于同一个针对数据库对象的操作,如果这一操作所涉及到的T-SQL语句被组织成一存储过程,那么当在客户机上调用该存储过程时,网络中传递的只是该调用语句,否则将会是多条SQL语句。...当使用msg_id引发使用sp_addmessage创建的用户定义消息时,raiserror上指定严重性将覆盖sp_addmessage中定义的严重性。 任何用户可以指定0-18直接的严重级别。
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。...存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。...由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。...'proc_temp', 'P') is not null) drop proc proc_temp go create proc proc_temp with recompile as...当使用msg_id引发使用sp_addmessage创建的用户定义消息时,raiserror上指定严重性将覆盖sp_addmessage中定义的严重性。
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。...存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 ...由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。...', 'P') is not null) drop proc proc_temp go create proc proc_temp with recompile as select *...当使用msg_id引发使用sp_addmessage创建的用户定义消息时,raiserror上指定严重性将覆盖sp_addmessage中定义的严重性。
1>方法executeQuery 用于产生单个结果集(ResultSet)的语句,例如:被执行最多的SELECT 语句。 ...这个方法被用来执行 SELECT 语句,但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。...如果执行后第一个结果是ResultSet,则返回true,否则返回false。...但如果在不清楚SQL语句的类型时则只能使用execute方法来执行该SQL语句了。...//获取结果集 ResultSetMetaData rsmd = rs.getMetaData(); //ResultSetMetaData是用于分析结果集的元数据接口
, 值得注意的是,在jdbc request中可以通过这个名称选择合适的连接池进行使用。...:insert into、update set、delete from Callable statement:执行多条sql语句,分号隔开,调用存储过程的语句;call add_age(); 传值输入或...null或?...是字符串就用varchar, Variable names:保存sql语句返回结果的变量名,例如:有多少列;就设置多少个参数,用逗号隔开 假如,sql语句返回2行,3列,且variables names...tips:运行结果将会以多个map形式的list保存在所设置的变量中,结果中的列名作为map的key值,列的值作为map的value;使用方法columnValue = vars.getObject("
数据量(尺寸)越大,提高I/O越重要. 2、纵向、横向分割表,减少表的尺寸(sp_spaceuse) 3、升级硬件 4、根据查询条件,建立索引、优化索引、优化访问方式,限制结果集的数据量...有四个并发选项: READ_ONLY:不允许通过游标定位更新(Update),且在组成结果集的行中没有锁。 OPTIMISTIC WITH valueS:乐观并发控制是事务控制理论的一个标准部分。...在悲观并发控制中,在把数据库的行读入游标结果集时,应用程序将试图锁定数据库行。在使用服务器游标时,将行读入游标时会在其上放置一个更新锁。...如果在事务内打开游标,则该事务更新锁将一直保持到事务被提交或回滚;当提取下一行时,将除去游标锁。如果在事务外打开游标,则提取下一行时,锁就被丢弃。...null) from Table 的返回值是不同的!!!
Mapper 接口表示的返回值类型或者返回结果集的元素类型。...ResultSetHandler - 负责将 JDBC 返回的 ResultSet 结果集对象转换成 List 类型的集合。...2)执行 SQL 语句以及处理响应结果集 ResultSet 动态 SQL 语句生成之后,MyBatis 将执行 SQL 语句,并将可能返回的结果集转换成 List 列表。...MyBatis 在对结果集的处理中,支持结果集关系一对多和多对一的转换,并且有两种支持方式,一种为嵌套查询语句的查询,还有一种是嵌套结果集的查询。 3.4....CachingExecutor 会在二级缓存中查看是否有匹配的数据,如果匹配,则直接返回缓存结果;如果缓存中没有,再交给真正的 Executor 对象来完成查询,之后 CachingExecutor 会将真正
:基础语句处理器(抽象类),它基本把语句处理器接口的核心部分都实现了,包括配置绑定、执行器绑定、映射器绑定、参数处理器构建、结果集处理器构建、语句超时设置、语句关闭等,并另外定义了新的方法 instantiateStatement...handler.query:向数据库发出sql执行,返回结果集 @Override public List doQuery(MappedStatement ms, Object parameter...如果只有一个结果集(存储过程可能有多个),则get(0),返回则是我们需要的结果 @Override public List handleResultSets(Statement stmt...new ResultSetWrapper(rs, configuration) : null; } 2、结果集转换pojo handleRowValues:结果集转换pojo内容 最终将结果放入multipleResults...赋值 执行sql,与jdbc代码一样 ResultSetHandler:封装结果集,将结果集转换为pojo
怎么在插入数据的时候生成主键返回值 一、JDBC处理CLOB和BLOB数据 1.1、JDBC处理CLOB(在MySQL中是TEXT) 环境: create table tb_clob_test_...中设置事务的隔离级别 在JDBC中一些基本的设置事务的操作 //MySQL设置事务隔离级别,一般不会再JDBC代码中设置,会直接在MySQL服务器中去设置 conn.setTransactionIsolation...结果: ? 因为我们的SQL语句为"insert into user(id,name,age) values(?,?,?)"...4.3、ResultSetMetaData ResultSetMetaData是由ResultSet对象通过getMetaData方法获取而来,主要是针对由数据库执行的SQL脚本命令获取的结果集对象...关于该结果集元数据对象的其他具体功能和方法请查阅有关ResultSetMetaData的API文档。
如果执行后第一个结果为 ResultSet 对象, 则返回 true; 如果执行后第一个结果为受影响的行数或没有任何结果, 则返回 false。...executeQuery(): 只能执行查询语句, 执行后返回代表查询结果的 ResultSet 对象。 (5)、操作结果集。...如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。可以通过操作该对象取得查询结果。...- 返回一个boolean值, 如果执行后第一个结果是ResultSet,则返回true,否则返回false 2 executeQuery 执行Select语句 - 返回查询到的结果集...如果在批量更新的 addBatchO方法中添加了 select 查询语句, 程序将直接出现错误。
使用该子句,可以方便地在同一个查询中定义多个分组集。...:将一组由SELECT查询返回的结果行插入到目标表中。...:将存储过过程或动态SQL批处理返回的结果集插入目标表。 ...我们希望能够从修改过的行中返回数据,这时就可以使用OUTPUT子句。...如果在运行时,标量子查询返回了多个值,则查询会失败。
原文链接:http://www.cnblogs.com/tandaxia/p/4888623.html 补充:关于一个循环插入数据sql语句问题 需求:随机从一个表查出5条ID,然后插入到另外一个表中。...实现:刚开始使用游标,后面头说效率不好,影响性能,然后改成临时表插入结果集。...之前没写过这种sql, 感觉效果很棒,记录一下: ---- 使用游标循环插入------- IF OBJECT_ID('sp_AddRecord') IS NOT NULL DROP proc...sp_AddRecord GO CREATE proc sp_AddRecord @ID int -- 传入的id参数 as BEGIN Tran --使用游标循环插入到记录表中...,实现同样的效果,效率更好 ----- IF OBJECT_ID('sp_AddRecord') IS NOT NULL DROP proc sp_AddRecord GO CREATE proc
领取专属 10元无门槛券
手把手带您无忧上云