设为首页
优惠IDC
收藏本站
六狼博客
六狼论坛
开启辅助访问
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
只需一步,快速开始
快捷导航
门户
首页
BBS
云计算
大数据
手机
移动开发android,ios,windows phone,windows mobile
编程
编程技术java,php,python,delphi,ruby,c,c++
前端
WEB前端htmlcss,javascript,jquery,html5
数据库
数据库开发Access,mysql,oracle,sql server,MongoDB
系统
操作系统windows,linux,unix,os,RedHat,tomcat
架构
项目管理
软件设计,架构设计,面向对象,设计模式,项目管理
企业
服务
运维实战
神马
搜索
搜索
热搜:
php
java
python
ruby
hadoop
sphinx
solr
ios
android
windows
centos
本版
帖子
用户
六狼论坛
»
首页
›
WEB前端
›
Html/Css
›
导出数据库数据的方法,适合简单的数据库表格结构 ...
返回列表
查看:
104
|
回复:
0
导出数据库数据的方法,适合简单的数据库表格结构
[复制链接]
java2000.net
java2000.net
当前离线
积分
1008
窥视卡
雷达卡
升级
0.4%
当前用户组为
探花
当前积分为
1008
, 升到下一级还需要 1992 点。
326
主题
326
主题
326
主题
探花
探花, 积分 1008, 距离下一级还需 1992 积分
探花, 积分 1008, 距离下一级还需 1992 积分
积分
1008
发消息
楼主
|
发表于 2013-2-7 19:07:25
|
显示全部楼层
|
阅读模式
<div style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; width: 95%; padding-top: 4px;">
1
如果是导出数据库,可以用java调用数据库的备份SQl语句
2
如果仅仅导出数据,请参考如下样例,其中tablename是表格的名字,pk指是否包含主键
注意:对于二进制和包含特殊字符的字段数据,需要额外处理,目前这个只能用于最简单的。
另:可参考 phpMyAdmin的导出功能
本代码采用SQL Server
2000
数据库
[code
=
Java]
<%
@ page language
=
"
java
"
contentType
=
"
text/html; charset=GBK
"
pageEncoding
=
"
GBK
"
%>
<%
@ page
import
=
"
java.sql.*
"
%>
<%
boolean
showPK
=
ParamUtils.getIntParameter(request,
"
pk
"
,
0
)
==
1
;
String tableName
=
request.getParameter(
"
tablename
"
);
if
(tableName
==
null
||
tableName.trim().length()
==
0
)
...
{
out.println(
"
表格名称为空!
"
);
return
;
}
Connection con
=
null
;
Statement stat
=
null
;
ResultSet rs
=
null
;
try
...
{
con
=
Factory.getDataSource().getConnection();
if
(con
==
null
)
...
{
out.println(
"
得到数据库连接失败!
"
);
return
;
}
stat
=
con.createStatement();
rs
=
stat.executeQuery(
"
select * from
"
+
tableName
+
"
"
+
NoNull.toString(request.getParameter(
"
sql
"
)));
if
(showPK)
...
{
out.print(
"
SET IDENTITY_INSERT dbo.
"
+
tableName
+
"
ON<br>
"
);
}
ResultSetMetaData md
=
rs.getMetaData();
String[] fieldNames
=
new
String[md.getColumnCount()];
StringBuilder builder
=
new
StringBuilder(
"
insert into
"
+
tableName
+
"
(
"
);
for
(
int
i
=
0
; i
<
md.getColumnCount(); i
++
)
...
{
fieldNames
=
md.getColumnName(i
+
1
);
if
(
!
showPK
&&
fieldNames
.equalsIgnoreCase(
"
ID
"
))
...
{
continue
;
}
builder.append(fieldNames
+
"
,
"
);
}
//
去掉最后一个逗号
builder.deleteCharAt(builder.length()
-
1
);
builder.append(
"
) values(
"
);
StringBuilder line
=
new
StringBuilder();
String value;
while
(rs.next())
...
{
line.delete(
0
, line.length());
line.append(builder.toString());
for
(
int
i
=
0
; i
<
fieldNames.length; i
++
)
...
{
if
(
!
showPK
&&
fieldNames
.equalsIgnoreCase(
"
ID
"
))
...
{
continue
;
}
value
=
rs.getString(fieldNames
);
if
(value
==
null
)
...
{
line.append(
"
null,
"
);
}
else
...
{
line.append(
"
'
"
);
line.append(value);
line.append(
"
',
"
);
}
}
line.deleteCharAt(line.length()
-
1
);
line.append(
"
);
"
);
out.println(line.toString()
+
"
<br/>
"
);
}
if
(showPK)
...
{
out.print(
"
SET IDENTITY_INSERT dbo.
"
+
tableName
+
"
OFF<br>
"
);
}
}
catch
(Exception ex)
...
{
out.print(ex);
}
finally
...
{
if
(stat
!=
null
)
...
{
try
...
{
stat.close();
}
catch
(Exception ex)
...
{
}
}
if
(con
!=
null
)
...
{
try
...
{
con.close();
}
catch
(Exception ex)
...
{
}
}
}
%>
[
/
code]
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
linux
nginx
Copyright © 2008-2020
六狼论坛
(http://it.6wolf.com) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.4
京ICP备14020293号-2
本网站内容均收集于互联网,如有问题请联系
QQ:389897944
予以删除
快速回复
返回顶部
返回列表