import java.util.Enumeration;
import java.util.Hashtable;
import org.junit.Test;
import com.crz.utils.log.LogUtil;
/**
*
* @Title: StringToHql.java
* @Description: TODO(字符串转换为hql语句)
* @author awfhome@163.com
* @date 2010-4-30
* @version V1.3
*/
public class StringToHql {
private String hql ="";
private Hashtable map = null;
//初始化1
public StringToHql(){
}
//初始化2
public StringToHql(String hql){
map = new Hashtable(); //初始化
this.hql = hql;
}
/**
* 创建hql语句
*/
public StringToHql createQuery(String hql){
map = new Hashtable(); //初始化
this.hql = hql;
return this;
}
/**设置String类型参数*/
public StringToHql setParameterString(String name,String val){
map.put(name, val);
return this;
}
/**设置Integer类型参数*/
public StringToHql setParameterString(String name,Integer val){
map.put(name, val);
return this;
}
/**设置Double类型参数*/
public StringToHql setParameterString(String name,Double val){
map.put(name,val);
return this;
}
/**
* 处理hql语句(数据库标准的hql)
*/
public String doHql(){
if(hql!=null && !"".equals(hql)){
String tem = "";
Enumeration e = map.keys();
while(e.hasMoreElements()){
tem = (String)e.nextElement(); //key ~ String
if(map.get(tem) instanceof Integer) {
this.hql = hql.replace(":" + tem, "" +(Integer) map.get(tem)+" ");
}else if(map.get(tem) instanceof String){
this.hql = hql.replace(":" + tem, "'" +(String) map.get(tem)+"'");
}else if(map.get(tem) instanceof Double){
this.hql = hql.replace(":" + tem, "" +(Double) map.get(tem)+" ");
}
}
}else {
System.out.println("没有sql语句");
}
LogUtil.info("这次调用的sql语名[StringToHql]: " + hql);
return hql;
}
/**
* 测试,使用方法
*/
@Test
public void test1(){
StringToHql st = new StringToHql();
st.createQuery("from Manager where anutoh=:anutoh");
st.setParameterString("anutoh", "小明");
String hql = st.doHql();
System.out.println(hql);
}
@Test
public void test2(){
String hql = new StringToHql("from Manager where anutoh=:anutoh and mone=:mone")
.setParameterString("anutoh", "小明2")
.setParameterString("mone", 4500.5)
.doHql();
System.out.println(hql);
}
}
分享到:
相关推荐
本话题将详细讲解一个简单的SQL循环语句脚本及其相关知识。 一、SQL循环语句概述 SQL循环语句主要包括WHILE循环和FOR循环,它们允许我们在满足特定条件时重复执行一段代码块。在PL/SQL和T-SQL中,还有BEGIN-END...
在实际开发中,通常会封装这些基本操作到一个类,如示例中的SqlConn类,以实现更高效和模块化的代码。这个类包含了创建连接、打开/关闭连接以及执行SQL命令的方法,方便在项目中复用。 总结来说,SQL语句命令在...
XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...
"标签"进一步强调了这个工具的关键特性,包括"Java输出漂亮的SQL语句",这意味着它是一个Java环境下的解决方案,能够集成到Java项目中,通过Java代码来调用和实现SQL语句的格式化。另一个标签"SQL格式化"则明确了它...
### SQL执行超长语句详解 在数据库管理与开发过程中,编写SQL语句是必不可少的一环。...通过采取上述提到的一些策略和技术手段,可以有效缓解因超长SQL语句带来的问题与挑战,最终实现更高效的数据处理与分析能力。
现在,让我们深入探讨如何在一个程序中仅使用一条SQL语句实现CRUD操作: 1. **创建(Create)**: 创建新记录通常涉及INSERT INTO语句。一条SQL语句可能包含多个值,通过这种方式一次性插入多行数据。例如: ```sql...
例如,一个简单的CREATE TABLE语句可能如下所示: ```sql CREATE TABLE Customers ( CustomerID int NOT NULL PRIMARY KEY, FirstName varchar(50) NOT NULL, LastName varchar(50), Email varchar(100) UNIQUE...
2. **打开连接**: 使用`OleDbConnection`类创建一个连接,并调用`Open`方法打开连接。 3. **开始事务**: 通过`BeginTransaction`方法开始一个事务。 4. **执行SQL语句**: 使用`OleDbCommand`对象设置SQL语句并执行...
例如,以下是一个简单的参数化SELECT语句: ```sql SELECT * FROM Users WHERE username = ? ``` 在这个例子中,`?`是一个参数占位符,它的实际值将在执行查询之前由程序提供。 ### 为什么使用问号参数 1. **防止...
- **VBE环境下ADO方式执行SQL**:在Visual Basic for Applications (VBA)环境中,使用ActiveX Data Objects (ADO)技术可以实现SQL语句的自动化执行,适用于大规模数据处理和脚本编程。 综上所述,SQL在ArcGIS中的...
一个典型的SQL帮助类通常包含以下功能: 1. **数据库连接管理**:提供连接池功能,如使用C3P0、HikariCP或Druid,以提高性能并减少资源消耗。连接的获取和释放被自动处理,避免了数据库资源泄露。 2. **SQL语句的...
它可能包括了一个自定义的`ExpressionVisitor`类,这个类遍历表达式树并生成SQL字符串。此外,可能还有一个`DbContext`的子类,用于处理特定的数据模型和数据库操作。 总的来说,将C#的Lambda表达式转换为SQL语句是...
以下是一个简单的易语言动态拼接SQL查询的示例: ```易语言 .数据库连接 = 创建数据库连接("SQLite", "database.db") .动态SQL = "SELECT * FROM 表名 WHERE 条件字段 = '%s'" .条件值 = 输入框("请输入条件值:") ....
这个类可以包含执行SQL语句的方法,如`ExecuteNonQuery()`用于执行非查询操作,`ExecuteReader()`用于执行查询操作并返回数据读取器,以及`ExecuteScalar()`用于获取单个值等。 在`SqlExecutor<T>`类中,我们可以...
以下是一个简单的示例,展示如何在VC++中嵌套SQL语句: ```cpp #include <sql.h> #include // ODBC初始化 SQLHENV env; SQLHDBC dbc; SQLRETURN ret; // 初始化环境和连接 SQLAllocHandle(SQL_HANDLE_ENV, SQL_...
"Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...
《SQL语句生成器——数据库操作的得力助手》 SQL语句生成器是一款专为MySQL数据库设计的强大工具,它极大地简化了数据库管理和...对于需要频繁处理SQL语句的IT专业人士来说,这款工具无疑是一个值得信赖的得力助手。
3. **从SQL语句获取数据存储**:在PB中,数据存储(DataStore)是应用程序内存中的一个对象,它可以包含一个或多个数据窗口(DataWindow)的数据。通过执行SQL语句,开发者可以将数据库中的结果集加载到数据存储中,...
这个名为"简单sql语句.rar"的压缩包显然包含了关于SQL基础学习的资料,特别是针对初学者的教程。主要文件有"简单sql语句.txt",很可能是对SQL基本概念、语法和操作的详细介绍;而"下载说明.txt"可能是指导用户如何...