`
myreligion
  • 浏览: 205679 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

5. 数据库查询操作

    博客分类:
  • guzz
阅读更多

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将完成多组机器多项操作的分布式事 务。

分享到:
评论

相关推荐

    数据库实验二:2.数据库单表查询

    一、实验目的 1. 掌握SELECT语句的基本语法和查询...1. 熟练数据库查询语句; 2. 掌握数据库查询的实现方式; 3. 完成实验报告; 四、实验内容 以数据库原理实验4数据库中数据为基础,请使用T-SQL 语句实现以下操作:

    4.数据库常用操作和监控命令.pptx

    1.链接数据库,2.创建数据库,3.常用查询 4.日常监控 5 授权检查

    数据库实验4 交互式SQL(三)查询操作(B).doc

    交互式SQL查询操作 本资源是数据库实验第四部分,主要内容是交互式SQL查询操作。实验目的包括熟悉数据库的交互式SQL工具、熟悉通过SQL对数据库进行操作。实验工具使用的是MS SQL Server 2012。实验内容包括创建学生...

    databasesearch数据库查询示例程序.rar_数据 查询_数据库查询

    数据库查询是IT领域中至关重要的一个环节,尤其是在大数据和信息化时代。这个名为“databasesearch数据库查询示例程序.rar”的压缩包显然包含了关于如何执行数据库查询的实例代码或教程。让我们深入探讨一下数据库...

    数据库实验一实验一 熟悉数据库管理工具、数据库和表的基本操作 一、实验目的: 1.了解SQL Server或MYSQL数据库的基本知识; 2.熟悉SQL Se

    实验的重点是创建数据库和基本表,以及进行基本的查询操作。难点在于掌握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实验报告.doc

    本数据库SQL实验报告涵盖了数据库设计、数据库应用系统设计、SQL Server 2005的操作和使用、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构设计、数据库的建立和管理、数据库系统的测试和调试、团队合作和...

    数据库原理简答题汇总1

    数据库原理简答题汇总1涵盖了数据库系统的组成部分、数据库管理系统的功能、数据库设计、数据模型、操作语言、查询语言、索引、锁机制、事务、备份和恢复、安全机制、性能优化、分布式数据库系统和数据仓库等多个...

    上课讲的的教案 数据库教案 数据库教案 数据库教案................

    - 结构化查询语言(SQL)是用于处理关系数据库的标准语言,包括数据查询、数据插入、数据更新和数据删除等操作。 - SQL语法包括SELECT、INSERT、UPDATE、DELETE等命令,以及CREATE、ALTER、DROP等数据库对象操作。...

    thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例

    本文实例讲述了thinkPHP5框架实现多数据库连接,跨数据连接查询操作。分享给大家供大家参考,具体如下: 1. 多数据库连接 方法1:在需要连接其他数据库的地方,使用Db::connect()方法动态连接数据库,方法参数为...

    数据库实战学习路径目录大纲.md

    1. 数据库简介 - 数据库的作用与重要性 - 关系型数据库与非...5. 数据库管理和优化 - 数据库的设计、实施、测试和维护 - 性能优化和安全管理 6. 示例项目 - 电商网站数据库设计 - 社交媒体数据存储策略 7. 总结

    DbHelper数据库操作类

    3. 结果集处理:DbHelper还包含处理数据库查询结果的方法,例如将ResultSet转换为List对象或其他数据结构。这使得开发者可以更方便地处理查询结果,而无需直接操作低级别的数据库API。 4.事务处理:DbHelper通常会...

    介绍数据库概念以及相关内容.doc

    第一章:数据库系统概论 1、数据库基本概念 2、数据管理技术的发展 3、数据库系统的结构 4、数据模型 第二章:关系数据库 1.关系数据库概述 ...5.数据查询 6.视图 第五章:数据库编程 第六章:数据

    易语言 MDB(ACCESS)数据库操作模块

    这个模块提供了丰富的API和函数,使得开发者能够高效、便捷地实现对ACCESS数据库的创建、查询、更新、删除等常见操作。 在易语言中,MDB模块通常包括以下核心功能: 1. 数据库连接:模块提供了一系列的函数,如...

    DB2数据库相关操作笔记很实用-数据备份,数据还原,定时备份等

    5. 计算机任务调度备份数据库 —— 5.1 数据库实时备份 6. 数据库维护 —— 6.1 检查并启动DB2数据库服务 —— 6.2 查看数据库并手动备份 —— 6.3 慎用【频繁的停止数据库】 7. 数据库完全卸载 —— 7.1 卸载注意...

    《SQL-Server数据库技术》试卷F卷答案.docx

    * 选择题:选择、投影、连接等数据库查询操作。 * 判断题:判断数据库查询结果是否正确。 * 填空题:填空数据库查询语句的空白处。 4. 存储过程和视图: * 创建存储过程:使用 CREATE PROCEDURE 语句来创建存储...

    关于数据库系统概论.md

    数据库系统概论是指对数据库系统的基本概念、结构、功能和应用进行系统性的介绍和讲解的学科...5. 数据库查询语言:数据库查询语言是用来查询和检索数据库中数据的语言,常见的数据库查询语言包括结构化查询语言(SQL)

    数据库原理实验,熟悉操作SQL语言

    数据库原理实验是学习数据库技术的重要环节,其主要目标是让学生深入理解数据库的工作原理,并熟练掌握SQL(Structured Query Language)这一数据库查询语言。SQL是用于管理关系数据库的标准语言,包括数据查询、...

Global site tag (gtag.js) - Google Analytics