`
wengsibo
  • 浏览: 83167 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

自己写了一个通用查询方法

阅读更多
package com.softfz.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test1 {
	
	public static Connection getCon(){
		Connection con = null;
		try {
			String url = "jdbc:oracle:thin:@localhost:1521:oracle";
			String user = "ddd";
			String psd = "ddd";
			Class.forName("oracle.jdbc.driver.OracleDriver");			
			con = DriverManager.getConnection(url,user,psd);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("con:"+con);
		return con;
	}
	
	public List select(List<Map> slist){		
		List list = new ArrayList();
		Connection conn = this.getCon();
		PreparedStatement psmt = null;
		ResultSetMetaData rsmd = null;
		int columnCount = -1;
		ResultSet rs = null;
		
		try {
			for(Object oj :slist){
				Map smap = (Map)oj;
				String sql = (String)smap.get("sql");
				psmt= conn.prepareStatement(sql);
				List mlist = (List)smap.get("list");
				for(int i =0;i<mlist.size();i++){
					psmt.setObject(i+1, mlist.get(i));						
				}
				 rs = psmt.executeQuery();
					
				 while(rs.next()){
					 Map map = new HashMap();
					 rsmd = rs.getMetaData();				
					 columnCount = rsmd.getColumnCount();
					 for(int j=1;j<columnCount;j++){						
						 map.put(rsmd.getColumnName(j), rs.getObject(rsmd.getColumnName(j)));
					 }				
					 list.add(map);				 
				 }	
			} 
					 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub		
		Test1 test = new Test1();
		Map mmap = new HashMap();
		List mlist = new ArrayList();
		List seList = new ArrayList();
		mlist.add("888888");
		mmap.put("sql", "select * from sys_user where v_password=?");
		mmap.put("list", mlist);
		seList.add(mmap);
		
		for(Object oc:test.select(seList)){
			
			System.out.println(oc);
		}
		
	}

}
分享到:
评论

相关推荐

    通用的hibernate查询

    在实际开发中,为了提高代码的复用性和可维护性,我们通常会封装一个通用的分页查询方法。这个方法接受实体类、查询条件、排序方式、当前页和每页大小作为参数,返回分页结果。这种方法可以降低代码冗余,提升开发...

    本人写的Hibernate超级通用DAO

    总结起来,构建一个“Hibernate超级通用DAO”是一个系统工程,需要对Hibernate框架有深入的理解,并熟练掌握其API的使用。通过良好的设计和合理的抽象,我们可以构建出一个强大且灵活的数据访问层,满足各种业务需求...

    使用jquery-easyui写的简单通用查询

    标题“使用jquery-easyui写的简单通用查询”指的是在Web开发中使用jQuery EasyUI框架创建一个功能齐全且可复用的查询组件。jQuery EasyUI是一个基于jQuery的UI库,它提供了一系列预先封装好的UI组件,如表格、下拉...

    通过反射机制写的通用的方法

    在这个通用查询方法中,核心思想是利用反射机制将SQL查询结果映射到Java对象或者对象列表。通常,这个过程会涉及到以下步骤: 1. **解析SQL语句**:首先,编写一个SQL查询,用于从数据库中获取数据。这个SQL可以...

    一个用于C#数据库连接的一个通用类,好东西哦!

    这个通用类的目的是提供一个方便、灵活的方法来处理各种数据库的连接,简化开发过程。在本文中,我们将深入探讨C#中数据库连接的相关知识点,以及如何创建这样一个通用的数据库连接类。 首先,C#中的数据库连接通常...

    VC数据库通用读写类

    "VC数据库通用读写类"是为了解决这个问题而设计的,它提供了一个统一的接口,允许开发者通过ADO(ActiveX Data Objects)连接到不同的数据库系统,实现数据的读取和写入操作。 ADO是微软开发的一种数据访问技术,它...

    JAVA写的通用分页

    本文将详细探讨"JAVA写的通用分页"这一主题,结合描述中的"通用高效分页存储过程实现",我们将深入理解Java分页的原理、实现方式以及优化策略。 首先,分页的基本概念是将大量数据分块展示,而不是一次性加载所有...

    我写的一个C#通用搜索,请大家改进

    这个“我写的一个C#通用搜索”项目,根据描述,它旨在提供一个灵活的搜索机制,允许用户自定义搜索条件,并且已经在SQL Server数据库上进行了测试。这个功能对于数据密集型的应用程序来说非常实用,因为它可以方便地...

    通用数据库读写类

    对于存储过程的支持,通用数据库读写类通常会有一个方法来执行存储过程,如`ExecuteProcedure`,它接受存储过程名和参数,然后调用数据库连接执行。存储过程在数据库管理中有很多优势,比如提高性能、封装复杂的业务...

    Hibernate_通用DAO模式,一个写好的dao层

    该通用DAO模式的核心在于,它提供了一个基础DAO接口,如`BaseDao&lt;T&gt;`,其中`T`代表任意数据实体类型。这个接口通常包含增删改查等基本方法,例如`save()`, `delete()`, `update()`, `findById()`, `findAll()`等。...

    asp txt 通用查询系统手机版 v5.9.rar

    1、增加自定义验证码功能(修改一个数字控制是否使用验证码) 2、新版的使用说明, 另:附上视频教程下载链接、数据转化工具网址供使用。 asp txt 通用查询系统手机版页面展示 相关阅读 同类推荐:站长常用...

    通用查询框架

    在软件开发中,尤其是在企业级应用中,数据查询是一个核心部分,而通用查询框架能够帮助开发者快速实现复杂的数据操作,减少代码重复,提高开发效率。 该框架的核心思想是将SQL查询语句的构建过程抽象化,通过定义...

    Asp.net 通用公用的方法归纳

    创建一个方法,加载XML文件,然后提供查询和解析XML的接口。也可以使用更现代的XmlReader或XDocument,它们在性能和易用性上都有所提升。 5. **操作Cookie**: Asp.net提供了HttpCookie类来处理Cookie。可以封装一...

    asp+txt 通用查询系统手机版 v2019

    asp+txt成绩查询系统是个最简单易用却又最非常实用的查询系统。广泛用于成绩查询,工资查询,物业费查询,证书查询等地方,宾且页面适合手机、微信、平板和电脑访问。操作说明:前台访问:http可以设置密码,但不可...

    C#写的通用数据访问类库

    综上所述,这个“C#写的通用数据访问类库”是一个旨在提高开发效率,简化数据访问代码的工具,它通过提供一套完整的数据操作接口,降低了开发人员对数据库操作的复杂性,使他们能更专注于业务功能的实现。...

    C#编程通用类

    例如,它可能有一个ExecuteNonQuery()方法用于执行非查询SQL,一个ExecuteScalar()方法用于获取单个值,以及一个ExecuteReader()方法用于获取数据集。 2. IOHelp 类: IOHelp 类专注于处理文件和目录操作。它包含...

    springboot + mybatis(通用mapper) + druid多数据源

    2. Mapper接口:每个接口方法对应一个SQL查询,通过动态代理实现。 3. 通用Mapper:提供通用的CRUD方法,减少重复代码。 4. MyBatis-Spring整合:使得MyBatis与Spring无缝集成,支持事务管理。 **Druid核心知识点:...

    sql语句写分页通用代码

    标题中的“sql语句写分页通用代码”意味着我们将讨论如何编写一个可复用的SQL查询,它可以根据不同的需求和场景进行调整,例如改变每页的行数或切换不同的表进行查询。这样的代码通常具有较高的灵活性和可维护性。 ...

    一个基于canvas开发,封装于Vue组件的通用手写签名板

    本项目"sign-canvas"将Vue组件与Canvas技术相结合,创建了一个通用的手写签名板,适用于PC端和移动端的电子签名需求。它不仅实现了基本的手写签名功能,还提供了丰富的附加功能,如重新签名、覆盖签名、下载签名图像...

Global site tag (gtag.js) - Google Analytics