- 浏览: 310334 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
poterliu:
太棒了,这正是我要的效果
带复选框(checkbox)的下拉列表 -
no_bao:
a164906480 写道不好意思啊,不少东西,我用的时候就是 ...
java使用Map进行分组统计 -
a164906480:
不好意思啊,不少东西,我用的时候就是转int的时候光报异常。 ...
java使用Map进行分组统计 -
a164906480:
String[] strArr=null;
4 ...
java使用Map进行分组统计 -
a164906480:
问一下你后面的数是怎么加的吗
java使用Map进行分组统计
import java.io.CharArrayWriter;
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ExeSqlDAO {
private Log log = LogFactory.getLog(this.getClass().getName());
private int rows, cols;
/**
* 执行数据库的更新操作
*
* @param sql SQL语句
* @param con 数据库连接对象
* @exception java.sql.SQLException
*/
//do update
public void update(String sql, Connection con) throws SQLException {
log.info("JDBC SQL: "+sql);
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
pstmt.close();
}
/**
* 批量执行数据库操作
*
* @param sql
* @param con
* @throws SQLException
*/
public void muchUpdate(String[] sql, Connection con) throws SQLException {
for (int i=0;i<sql.length;i++){
if (sql[i]!=null&&sql[i].length()>0&&!sql[i].equals("")){
update(sql[i],con);
}
}
}
/**
* 执行查询数据库操作
*
* @param sql SQL语句
* @param con 数据库连接对象
* @return Result对象
* @exception java.sql.SQLException
*/
//do select
public Resultobj queryExecute(String sql, Connection con) throws SQLException {
Statement stmt = null;
Resultobj result = new Resultobj();
rows = 0;
stmt = con.createStatement();
log.info("JDBC SQL: "+sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
cols = rsmd.getColumnCount();
String s[] = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = rsmd.getColumnLabel(i);
}
result.add(s);
rows++;
if(rs==null){
System.out.println("#############");
}
while (rs.next()) {
s = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = helper(rs, rsmd.getColumnType(i), i);
}
result.add(s);
rows++;
}
result.setCols(cols);
result.setRows(rows);
rs.close();
stmt.close();
return (result);
}
/**
* 执行查询数据库操作
* @param sql SQL语句
* @param con 数据库连接对象
* @param maxRow 取得最大记录个数
* @return Result对象
* @exception java.sql.SQLException
*/
//do select
public Resultobj queryByMaxRow(String sql, Connection con,int intMaxRows) throws SQLException {
Statement stmt = null;
Resultobj result = new Resultobj();
rows = 0;
stmt = con.createStatement();
stmt.setMaxRows(intMaxRows);
log.info("JDBC SQL: "+sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
cols = rsmd.getColumnCount();
String s[] = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = rsmd.getColumnLabel(i);
}
result.add(s);
rows++;
while (rs.next()) {
s = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = helper(rs, rsmd.getColumnType(i), i);
}
result.add(s);
rows++;
}
result.setCols(cols);
result.setRows(rows);
//System.out.print("cols"+cols);
//System.out.print("rows"+rows);
rs.close();
stmt.close();
return (result);
}
/**
* 对记录中的字段的类型转换
* @param rs
* @param dataType
* @param col
* @return
* @throws SQLException
*/
public String helper(ResultSet rs, int dataType, int col) throws SQLException {
String retValue = null;
Integer intObj;
// ask for data depending on the datatype
switch (dataType) {
case Types.DATE :
java.sql.Date date = rs.getDate(col);
if (date != null)
retValue = date.toString();
break;
case Types.TIME :
java.sql.Time time = rs.getTime(col);
if (time != null)
retValue = time.toString();
break;
case Types.TIMESTAMP :
java.sql.Timestamp timestamp = rs.getTimestamp(col);
if (timestamp != null)
retValue = timestamp.toString();
break;
case Types.CHAR :
case Types.VARCHAR :
case Types.LONGVARCHAR :
retValue = rs.getString(col);
break;
case Types.NUMERIC :
case Types.DECIMAL ://zhanpeng 修改了不建议使用的api
java.math.BigDecimal numeric = rs.getBigDecimal(col);
if (numeric != null)
retValue = numeric.toString();
break;
case Types.BIT :
boolean bit = rs.getBoolean(col);
Boolean boolObj = new Boolean(bit);
retValue = boolObj.toString();
break;
case Types.TINYINT :
byte tinyint = rs.getByte(col);
intObj = new Integer(tinyint);
retValue = intObj.toString();
break;
case Types.SMALLINT :
short smallint = rs.getShort(col);
intObj = new Integer(smallint);
retValue = intObj.toString();
break;
case Types.INTEGER :
int integer = rs.getInt(col);
intObj = new Integer(integer);
retValue = intObj.toString();
break;
case Types.BIGINT :
long bigint = rs.getLong(col);
Long longObj = new Long(bigint);
retValue = longObj.toString();
break;
case Types.REAL :
float real = rs.getFloat(col);
Float floatObj = new Float(real);
retValue = floatObj.toString();
break;
case Types.FLOAT :
case Types.DOUBLE :
double longreal = rs.getDouble(col);
Double doubleObj = new Double(longreal);
retValue = doubleObj.toString();
break;
case Types.BINARY :
case Types.VARBINARY :
case Types.LONGVARBINARY :
byte[] binary = rs.getBytes(col);
if (binary != null)
retValue = new String(binary);
break;
case Types.CLOB :
if(rs.getClob(col)!=null){
try {
Clob cBlob =(Clob)rs.getClob(col);
retValue=readClob(cBlob);
} catch (IOException e) {
}
}
break;
}
if (retValue==null) {
retValue = "";
}
return retValue;
}
//处理Clob字段
public String readClob(Clob cBlob)throws java.sql.SQLException, java.io.IOException {
Reader r = cBlob.getCharacterStream();
char[] b = new char[1024 * 3];
int i = 0;
CharArrayWriter caw = new CharArrayWriter();
while ((i = r.read(b)) > 0) {
caw.write(b, 0, i);
}
b = caw.toCharArray();
String result = new String(b);
return result;
}
public Resultobj queryExecute (ResultSet rs) throws SQLException{
Resultobj result = new Resultobj();
ResultSetMetaData rsmd = rs.getMetaData();
int rows = 0;
int cols = rsmd.getColumnCount();
String s[] = new String[cols];
for(int i = 1;i<=cols;i++){
s[i-1] = rsmd.getColumnLabel(i);
}
result.add(s);
rows++;
while(rs.next()){
s = new String[cols];
for(int i =1;i<=cols;i++){
s[i-1]=helper(rs,rsmd.getColumnType(i),i);
}
result.add(s);
rows++;
}
result.setCols(cols);
result.setRows(rows);
return result;
}
}
import java.io.IOException;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ExeSqlDAO {
private Log log = LogFactory.getLog(this.getClass().getName());
private int rows, cols;
/**
* 执行数据库的更新操作
*
* @param sql SQL语句
* @param con 数据库连接对象
* @exception java.sql.SQLException
*/
//do update
public void update(String sql, Connection con) throws SQLException {
log.info("JDBC SQL: "+sql);
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.executeUpdate();
pstmt.close();
}
/**
* 批量执行数据库操作
*
* @param sql
* @param con
* @throws SQLException
*/
public void muchUpdate(String[] sql, Connection con) throws SQLException {
for (int i=0;i<sql.length;i++){
if (sql[i]!=null&&sql[i].length()>0&&!sql[i].equals("")){
update(sql[i],con);
}
}
}
/**
* 执行查询数据库操作
*
* @param sql SQL语句
* @param con 数据库连接对象
* @return Result对象
* @exception java.sql.SQLException
*/
//do select
public Resultobj queryExecute(String sql, Connection con) throws SQLException {
Statement stmt = null;
Resultobj result = new Resultobj();
rows = 0;
stmt = con.createStatement();
log.info("JDBC SQL: "+sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
cols = rsmd.getColumnCount();
String s[] = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = rsmd.getColumnLabel(i);
}
result.add(s);
rows++;
if(rs==null){
System.out.println("#############");
}
while (rs.next()) {
s = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = helper(rs, rsmd.getColumnType(i), i);
}
result.add(s);
rows++;
}
result.setCols(cols);
result.setRows(rows);
rs.close();
stmt.close();
return (result);
}
/**
* 执行查询数据库操作
* @param sql SQL语句
* @param con 数据库连接对象
* @param maxRow 取得最大记录个数
* @return Result对象
* @exception java.sql.SQLException
*/
//do select
public Resultobj queryByMaxRow(String sql, Connection con,int intMaxRows) throws SQLException {
Statement stmt = null;
Resultobj result = new Resultobj();
rows = 0;
stmt = con.createStatement();
stmt.setMaxRows(intMaxRows);
log.info("JDBC SQL: "+sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
cols = rsmd.getColumnCount();
String s[] = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = rsmd.getColumnLabel(i);
}
result.add(s);
rows++;
while (rs.next()) {
s = new String[cols];
for (int i = 1; i <= cols; i++) {
s[i - 1] = helper(rs, rsmd.getColumnType(i), i);
}
result.add(s);
rows++;
}
result.setCols(cols);
result.setRows(rows);
//System.out.print("cols"+cols);
//System.out.print("rows"+rows);
rs.close();
stmt.close();
return (result);
}
/**
* 对记录中的字段的类型转换
* @param rs
* @param dataType
* @param col
* @return
* @throws SQLException
*/
public String helper(ResultSet rs, int dataType, int col) throws SQLException {
String retValue = null;
Integer intObj;
// ask for data depending on the datatype
switch (dataType) {
case Types.DATE :
java.sql.Date date = rs.getDate(col);
if (date != null)
retValue = date.toString();
break;
case Types.TIME :
java.sql.Time time = rs.getTime(col);
if (time != null)
retValue = time.toString();
break;
case Types.TIMESTAMP :
java.sql.Timestamp timestamp = rs.getTimestamp(col);
if (timestamp != null)
retValue = timestamp.toString();
break;
case Types.CHAR :
case Types.VARCHAR :
case Types.LONGVARCHAR :
retValue = rs.getString(col);
break;
case Types.NUMERIC :
case Types.DECIMAL ://zhanpeng 修改了不建议使用的api
java.math.BigDecimal numeric = rs.getBigDecimal(col);
if (numeric != null)
retValue = numeric.toString();
break;
case Types.BIT :
boolean bit = rs.getBoolean(col);
Boolean boolObj = new Boolean(bit);
retValue = boolObj.toString();
break;
case Types.TINYINT :
byte tinyint = rs.getByte(col);
intObj = new Integer(tinyint);
retValue = intObj.toString();
break;
case Types.SMALLINT :
short smallint = rs.getShort(col);
intObj = new Integer(smallint);
retValue = intObj.toString();
break;
case Types.INTEGER :
int integer = rs.getInt(col);
intObj = new Integer(integer);
retValue = intObj.toString();
break;
case Types.BIGINT :
long bigint = rs.getLong(col);
Long longObj = new Long(bigint);
retValue = longObj.toString();
break;
case Types.REAL :
float real = rs.getFloat(col);
Float floatObj = new Float(real);
retValue = floatObj.toString();
break;
case Types.FLOAT :
case Types.DOUBLE :
double longreal = rs.getDouble(col);
Double doubleObj = new Double(longreal);
retValue = doubleObj.toString();
break;
case Types.BINARY :
case Types.VARBINARY :
case Types.LONGVARBINARY :
byte[] binary = rs.getBytes(col);
if (binary != null)
retValue = new String(binary);
break;
case Types.CLOB :
if(rs.getClob(col)!=null){
try {
Clob cBlob =(Clob)rs.getClob(col);
retValue=readClob(cBlob);
} catch (IOException e) {
}
}
break;
}
if (retValue==null) {
retValue = "";
}
return retValue;
}
//处理Clob字段
public String readClob(Clob cBlob)throws java.sql.SQLException, java.io.IOException {
Reader r = cBlob.getCharacterStream();
char[] b = new char[1024 * 3];
int i = 0;
CharArrayWriter caw = new CharArrayWriter();
while ((i = r.read(b)) > 0) {
caw.write(b, 0, i);
}
b = caw.toCharArray();
String result = new String(b);
return result;
}
public Resultobj queryExecute (ResultSet rs) throws SQLException{
Resultobj result = new Resultobj();
ResultSetMetaData rsmd = rs.getMetaData();
int rows = 0;
int cols = rsmd.getColumnCount();
String s[] = new String[cols];
for(int i = 1;i<=cols;i++){
s[i-1] = rsmd.getColumnLabel(i);
}
result.add(s);
rows++;
while(rs.next()){
s = new String[cols];
for(int i =1;i<=cols;i++){
s[i-1]=helper(rs,rsmd.getColumnType(i),i);
}
result.add(s);
rows++;
}
result.setCols(cols);
result.setRows(rows);
return result;
}
}
发表评论
-
xml验证二----java根据xsd验证xml
2013-11-07 09:47 2385xml 转换 xsd 参考 http://51876 ... -
xml验证之----xml转换为xsd(trang.jar)
2013-11-07 09:43 73071、执行环境 Trang的执行环境:JRE1.4+ ... -
swfUpload火狐浏览器firefox不显示上传按钮
2013-10-29 11:01 5145问题描述: 使用swfUpload ... -
Multipart/form-data POST文件上传详解
2013-09-03 18:00 9413Multipart/form-data POST文件上传详解 ... -
增加tomcat并发量
2013-08-01 17:44 5876tomcat默认的连接是线程阻塞的,即protocol配置为 ... -
Tomcat并发数优化的方法总结
2013-08-01 14:07 10301,让Tomcat6 中支持Java语言的特性 NIO( N ... -
java使用Map进行分组统计
2013-07-09 14:43 6537用java读取txt文本,并根据ip段分组合计|后面的值,即i ... -
JDBC事务的保存点处理
2013-05-10 09:55 1670JDBC事务的保存点处理 ... -
<s:iterator> 标签补齐循环固定行数
2013-03-21 16:22 2061比如有一公告列表 每页展现 5条 如果不足5条 ... -
在tomcat的catalina.sh文件中添加了jconsole检测内存配置
2013-01-21 10:32 2499在tomcat的catalina.sh文件中添 ... -
java随机数
2013-01-21 10:23 924public static String getRandom ... -
MyEclipse优化技巧
2012-11-02 11:01 914MyEclipse优化技巧 第一步: ... -
Quartz使用指南(七)-----Spring中使用Quartz进行作业调度
2012-10-22 09:10 17961 Spring中使用Qu ... -
Quartz使用指南(六)-----监听器及存储
2012-10-22 09:10 16711 触发器的监听器和作业的监听器(Trigge ... -
Quartz使用指南(五)-----Cron触发器(CronTrigger)
2012-10-22 09:09 2043<!--[if !supportLists]--> ... -
Quartz使用指南(四)-----触发器(Triggers)
2012-10-19 18:04 31064 触发器(Triggers) 与Job相比,Trig ... -
Quartz使用指南(三)-----标识符、 作业和作业详情(Identifiers&Jobs&JobDetails)
2012-10-19 17:54 1501标识 ... -
Quartz使用指南(二)-----作业和触发器Job&Trigger
2012-10-19 17:49 1788我们可以使Scheduler简单地执行一个实现了Job接 ... -
Quartz使用指南(一)-----Quartz简介
2012-10-19 17:47 1987<!--[endif]--> ... -
Quartz在Spring中集群 Quartz引用外部数据源
2012-10-19 17:40 2581转载于 http://www.iteye.com/topic ...
相关推荐
delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段delphi读写BLOB字段...
kettle通过java代码将数据库blob 字段抽取到本地文件
sql server中的image类型的数据导出到oracle的clob字段中
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
oracle的jdbc驱动程序,用这个版本的操作Clob,blob类型的数据很方便。 博文链接:https://zhenjw.iteye.com/blog/173419
ORACLE中CLOB字段转String类型
Oracle slq bolb转换Base64 CLOB
最近在用oracle的过程中用到了对blob字段模糊查询的问题。接下来通过本文给大家分享关于oracle中clob字段查询慢的问题及解决方法,需要的的朋友参考下吧
从oracle中的BLOB类型字段中取出照片,转存到mysql数据库中。思路是现将oracle中的照片存储在本地文件夹,在将本地图片上传到mysql中。
在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段内容时,我们如果通过简单的拼组sql语句来实现插入,显然就会出现问题,而在...
LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对像(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图像、影音等)。而CLOB,即字符型大型对像(Character Large Object),则与字符集相关,适于...
plsql查询数据库时中文字段为乱解决方法
今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...
第14章 使用Blob和Clob管理图像和文档 14.1 大对象 14.1.1 使用Blob存储二进制数据 14.1.2 使用Clob存储文本数据 14.2 从浏览器上载图像或文档 14.2.1 用于从DBMS下载大对象的servlet 14.3 小结 第15章 ...
首先数据表中的Blob字段在Java领域对象中声明为byte[]类型,而非java.sql.Blob类型。 2.数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即...
swing开发的数据库管理工具,系统自带常用的主流数据库驱动包,其他数据库可以扩展添加(只要添加数据库jdbc驱动的jar包就可以),可以创建和查看用户表(数据可导出成Excel和txt,可以下载或以图片格式直接查看blob字段),...
第14章 使用Blob和Clob管理图像和文档 14.1 大对象 14.1.1 使用Blob存储二进制数据 14.1.2 使用Clob存储文本数据 14.2 从浏览器上载图像或文档 14.2.1 用于从DBMS下载大对象的servlet 14.3 小结 第15章 ...
第14章 使用Blob和Clob管理图像和文档 14.1 大对象 14.1.1 使用Blob存储二进制数据 14.1.2 使用Clob存储文本数据 14.2 从浏览器上载图像或文档 14.2.1 用于从DBMS下载大对象的servlet 14.3 小结 第15章 ...
第14章 使用Blob和Clob管理图像和文档 14.1 大对象 14.1.1 使用Blob存储二进制数据 14.1.2 使用Clob存储文本数据 14.2 从浏览器上载图像或文档 14.2.1 用于从DBMS下载大对象的servlet 14.3 小结 第15章 ...