`
awfrun
  • 浏览: 82410 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

实现一个简单处理sql语句的类

    博客分类:
  • java
阅读更多
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循环语句概述 SQL循环语句主要包括WHILE循环和FOR循环,它们允许我们在满足特定条件时重复执行一段代码块。在PL/SQL和T-SQL中,还有BEGIN-END...

    sql语句命令-sql语句命令sql语句命令

    在实际开发中,通常会封装这些基本操作到一个类,如示例中的SqlConn类,以实现更高效和模块化的代码。这个类包含了创建连接、打开/关闭连接以及执行SQL命令的方法,方便在项目中复用。 总结来说,SQL语句命令在...

    XML查询语句转换成SQL语句的实现.pdf

    XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...

    Java打印漂亮的SQL语句(被格式化的SQL语句)

    "标签"进一步强调了这个工具的关键特性,包括"Java输出漂亮的SQL语句",这意味着它是一个Java环境下的解决方案,能够集成到Java项目中,通过Java代码来调用和实现SQL语句的格式化。另一个标签"SQL格式化"则明确了它...

    SQL 执行超长语句

    ### SQL执行超长语句详解 在数据库管理与开发过程中,编写SQL语句是必不可少的一环。...通过采取上述提到的一些策略和技术手段,可以有效缓解因超长SQL语句带来的问题与挑战,最终实现更高效的数据处理与分析能力。

    一个完整程序只有一条SQL语句

    现在,让我们深入探讨如何在一个程序中仅使用一条SQL语句实现CRUD操作: 1. **创建(Create)**: 创建新记录通常涉及INSERT INTO语句。一条SQL语句可能包含多个值,通过这种方式一次性插入多行数据。例如: ```sql...

    根据word文档生成SQL语句(SQLServer) 及 实体类

    例如,一个简单的CREATE TABLE语句可能如下所示: ```sql CREATE TABLE Customers ( CustomerID int NOT NULL PRIMARY KEY, FirstName varchar(50) NOT NULL, LastName varchar(50), Email varchar(100) UNIQUE...

    access 一次执行多条sql语句

    2. **打开连接**: 使用`OleDbConnection`类创建一个连接,并调用`Open`方法打开连接。 3. **开始事务**: 通过`BeginTransaction`方法开始一个事务。 4. **执行SQL语句**: 使用`OleDbCommand`对象设置SQL语句并执行...

    sql语句中用问号代替参数

    例如,以下是一个简单的参数化SELECT语句: ```sql SELECT * FROM Users WHERE username = ? ``` 在这个例子中,`?`是一个参数占位符,它的实际值将在执行查询之前由程序提供。 ### 为什么使用问号参数 1. **防止...

    arcgis中的sql语句

    - **VBE环境下ADO方式执行SQL**:在Visual Basic for Applications (VBA)环境中,使用ActiveX Data Objects (ADO)技术可以实现SQL语句的自动化执行,适用于大规模数据处理和脚本编程。 综上所述,SQL在ArcGIS中的...

    JAVA的SQL帮助类,帮助快速使用SQL语句更新,删除,查询数据

    一个典型的SQL帮助类通常包含以下功能: 1. **数据库连接管理**:提供连接池功能,如使用C3P0、HikariCP或Druid,以提高性能并减少资源消耗。连接的获取和释放被自动处理,避免了数据库资源泄露。 2. **SQL语句的...

    C#将Lambda表达式转成Sql语句

    它可能包括了一个自定义的`ExpressionVisitor`类,这个类遍历表达式树并生成SQL字符串。此外,可能还有一个`DbContext`的子类,用于处理特定的数据模型和数据库操作。 总的来说,将C#的Lambda表达式转换为SQL语句是...

    易语言动态拼接sql语句

    以下是一个简单的易语言动态拼接SQL查询的示例: ```易语言 .数据库连接 = 创建数据库连接("SQLite", "database.db") .动态SQL = "SELECT * FROM 表名 WHERE 条件字段 = '%s'" .条件值 = 输入框("请输入条件值:") ....

    泛型封装的sql语句

    这个类可以包含执行SQL语句的方法,如`ExecuteNonQuery()`用于执行非查询操作,`ExecuteReader()`用于执行查询操作并返回数据读取器,以及`ExecuteScalar()`用于获取单个值等。 在`SqlExecutor<T>`类中,我们可以...

    vc++SQL语句嵌套

    以下是一个简单的示例,展示如何在VC++中嵌套SQL语句: ```cpp #include <sql.h> #include // ODBC初始化 SQLHENV env; SQLHDBC dbc; SQLRETURN ret; // 初始化环境和连接 SQLAllocHandle(SQL_HANDLE_ENV, SQL_...

    Java 使用注解拼接SQL语句

    "Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...

    SQL语句生成器

    《SQL语句生成器——数据库操作的得力助手》 SQL语句生成器是一款专为MySQL数据库设计的强大工具,它极大地简化了数据库管理和...对于需要频繁处理SQL语句的IT专业人士来说,这款工具无疑是一个值得信赖的得力助手。

    PB 从SQL语句获取数据存储(MySQL)

    3. **从SQL语句获取数据存储**:在PB中,数据存储(DataStore)是应用程序内存中的一个对象,它可以包含一个或多个数据窗口(DataWindow)的数据。通过执行SQL语句,开发者可以将数据库中的结果集加载到数据存储中,...

    简单sql语句.rar

    这个名为"简单sql语句.rar"的压缩包显然包含了关于SQL基础学习的资料,特别是针对初学者的教程。主要文件有"简单sql语句.txt",很可能是对SQL基本概念、语法和操作的详细介绍;而"下载说明.txt"可能是指导用户如何...

Global site tag (gtag.js) - Google Analytics