GuzzBaseDao
如果继承GuzzBaseDao,可以使用basedao中提供的常用查询方法进行查询。
ReadonlyTranSession
ReadonlyTranSession为guzz对外提供的查询操作入口,获取方法:
TransactionManager tm = guzzContext.getTransactionManager() ;
ReadonlyTranSession session = getTransactionManager().openDelayReadTran() ;
try{
SearchExpression se = SearchExpression.forClass(SystemLog.class) ;
se.and(Terms.eq("categoryId", 18)) ;
se.setOrderBy("importance desc, id asc") ;
return session.list(se) ;
}finally{
session.close() ;
}
ReadonlyTranSession提供按照检索表达式SearchExpression,SQL语句CompiledSQL,以及guzz.xml中配置的sql语句id进行查询的接口。
SearchExpression:
SearchExpression类似于hibernate中的criteria,不过功能没有criteria强大。
CompiledSQL:
guzz将sql语句进行预编译生成CompiledSQL,在预编译时sql语句允许参数命名和businessName,属性名替换,进行预编译的SQL和guzz.xml中允许定义的sql规则相同。示例如下:
TransactionManager tm = super.getTransactionManager() ;
String sql = "update @@" + SystemLog.class.getName() + " set @importance = :level where @id = :id" ;
CompiledSQL cs = tm.getCompiledSQLBuilder().buildCompiledSQL(SystemLog.class, sql) ;
WriteTranSession session = tm.openRWTran(true) ;
try{
session.executeUpdate(cs.bind("level", 3).bind("id", 5)) ;
}finally{
session.close() ;
}
CompiledSQL为线程安全的对象,对于重复执行的sql,建议将编译好的CompiledSQL缓存以来,避免重复解析。在guzz.xml中定义的sql,在guzz内部就是以CompiledSQL进行存储和管理的。
通过guzz.xml中定义的id查询:
类似ibatis。
WriteTranSession
WriteTranSession为写api接口。
TransactionManager tm = super.getTransactionManager() ;
WriteTranSession session = tm.openRWTran(true) ;
在获取时,传入参数是否自动提交事务。true:自动提交;false:手动提交。
如果设置为false,在这执行完操作后,需要调用session.commit()或者session.rollback()结束事务。
WriteTranSession只允许通过主键进行查询操作,查询时从主数据库操作。其他方法与ReadonlyTranSession用法类似。
事务一致性
如果需要执行事务处理,在获取WriteTranSession时需要关闭自动提交事务: tm.openRWTran(false) ;
随后针对此WriteTranSession进行任意操作即可,包括从此WriteTranSession创建JDBCTemplate执行raw
sql,或者创建Batcher执行批量操作,在所有操作完成后commit()或者rollback(),guzz将完成多组机器多项操作的分布式事
务。
分享到:
相关推荐
一、实验目的 1. 掌握SELECT语句的基本语法和查询...1. 熟练数据库查询语句; 2. 掌握数据库查询的实现方式; 3. 完成实验报告; 四、实验内容 以数据库原理实验4数据库中数据为基础,请使用T-SQL 语句实现以下操作:
1.链接数据库,2.创建数据库,3.常用查询 4.日常监控 5 授权检查
交互式SQL查询操作 本资源是数据库实验第四部分,主要内容是交互式SQL查询操作。实验目的包括熟悉数据库的交互式SQL工具、熟悉通过SQL对数据库进行操作。实验工具使用的是MS SQL Server 2012。实验内容包括创建学生...
数据库查询是IT领域中至关重要的一个环节,尤其是在大数据和信息化时代。这个名为“databasesearch数据库查询示例程序.rar”的压缩包显然包含了关于如何执行数据库查询的实例代码或教程。让我们深入探讨一下数据库...
实验的重点是创建数据库和基本表,以及进行基本的查询操作。难点在于掌握select语句中where子句的各种运算符的使用。 实验内容涵盖以下几个方面: 1. 数据库管理工具配置: - 使用Microsoft SQL Server配置管理器...
数据库查询语言是指用于查询和操作数据库中的数据的语言。常用的数据库查询语言包括SQL、SQL Server等。 8. 数据库安全性: 数据库安全性是指保护数据库免受未经授权的访问、修改和破坏的措施。包括身份验证、...
7. 数据库查询 * SELECT 语句 * FROM 子句 * WHERE 子句 * GROUP BY 子句 * HAVING 子句 * ORDER BY 子句 8. 数据库函数 * COUNT 函数 * SUM 函数 * AVG 函数 * MAX 函数 * MIN 函数 * 等等 9. 数据库...
本数据库SQL实验报告涵盖了数据库设计、数据库应用系统设计、SQL Server 2005的操作和使用、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构设计、数据库的建立和管理、数据库系统的测试和调试、团队合作和...
数据库原理简答题汇总1涵盖了数据库系统的组成部分、数据库管理系统的功能、数据库设计、数据模型、操作语言、查询语言、索引、锁机制、事务、备份和恢复、安全机制、性能优化、分布式数据库系统和数据仓库等多个...
- 结构化查询语言(SQL)是用于处理关系数据库的标准语言,包括数据查询、数据插入、数据更新和数据删除等操作。 - SQL语法包括SELECT、INSERT、UPDATE、DELETE等命令,以及CREATE、ALTER、DROP等数据库对象操作。...
本文实例讲述了thinkPHP5框架实现多数据库连接,跨数据连接查询操作。分享给大家供大家参考,具体如下: 1. 多数据库连接 方法1:在需要连接其他数据库的地方,使用Db::connect()方法动态连接数据库,方法参数为...
1. 数据库简介 - 数据库的作用与重要性 - 关系型数据库与非...5. 数据库管理和优化 - 数据库的设计、实施、测试和维护 - 性能优化和安全管理 6. 示例项目 - 电商网站数据库设计 - 社交媒体数据存储策略 7. 总结
3. 结果集处理:DbHelper还包含处理数据库查询结果的方法,例如将ResultSet转换为List对象或其他数据结构。这使得开发者可以更方便地处理查询结果,而无需直接操作低级别的数据库API。 4.事务处理:DbHelper通常会...
第一章:数据库系统概论 1、数据库基本概念 2、数据管理技术的发展 3、数据库系统的结构 4、数据模型 第二章:关系数据库 1.关系数据库概述 ...5.数据查询 6.视图 第五章:数据库编程 第六章:数据
5. 计算机任务调度备份数据库 —— 5.1 数据库实时备份 6. 数据库维护 —— 6.1 检查并启动DB2数据库服务 —— 6.2 查看数据库并手动备份 —— 6.3 慎用【频繁的停止数据库】 7. 数据库完全卸载 —— 7.1 卸载注意...
* 选择题:选择、投影、连接等数据库查询操作。 * 判断题:判断数据库查询结果是否正确。 * 填空题:填空数据库查询语句的空白处。 4. 存储过程和视图: * 创建存储过程:使用 CREATE PROCEDURE 语句来创建存储...
数据库系统概论是指对数据库系统的基本概念、结构、功能和应用进行系统性的介绍和讲解的学科...5. 数据库查询语言:数据库查询语言是用来查询和检索数据库中数据的语言,常见的数据库查询语言包括结构化查询语言(SQL)
这个模块提供了丰富的API和函数,使得开发者能够高效、便捷地实现对ACCESS数据库的创建、查询、更新、删除等常见操作。 在易语言中,MDB模块通常包括以下核心功能: 1. 数据库连接:模块提供了一系列的函数,如...
“实施工程师面试笔试题(数据库)” 在这份面试笔试题中,我们可以总结出以下几个重要的知识点: ...这份面试笔试题涵盖了数据库设计、数据库开发、数据库操作、数据库查询优化和数据库事务处理等多个方面的知识点。