package com.nokia.ices.radio.utils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.mysql.jdbc.PreparedStatement;
public class OutSql {
public void outsql(String tableName,String savePath,Connection conn,String dataBaseName) throws SQLException{
PreparedStatement pst=null;
ResultSet rs=null;
/*
* 获取表的字段
*/
String column="select COLUMN_NAME from information_schema.columns where table_name='"+tableName+"' and table_schema = '"+dataBaseName+"';";
List<String> columnList=new ArrayList<String>();
pst=(PreparedStatement) conn.prepareStatement(column);
rs=pst.executeQuery();
while(rs.next()){
columnList.add(rs.getString(1));
}
rs.last();
int columnNO=rs.getRow();//存贮表字段的个数
//拼接表的所有字段
StringBuffer sql=new StringBuffer();
for(int i=0;i<columnList.size();i++){
sql.append(columnList.get(i));
if(i<columnList.size()-1){
sql.append(",");
}
}
/*
* 查询表的数据
*/
String selectAll="select "+sql+" from "+tableName;
System.out.println("sql语句:"+selectAll);
//封装表的数据
List<List<Object>> tableList=new ArrayList<List<Object>>();
try {
pst=(PreparedStatement) conn.prepareStatement(selectAll);
rs=pst.executeQuery();
while(rs.next()){
List<Object> rowList=new ArrayList<Object>();
for(int i=1;i<columnNO+1;i++){
rowList.add(rs.getObject(i));
}
tableList.add(rowList);
}
} catch (SQLException e) {
e.printStackTrace();
}
/*
* 转换成sql输出到指定位置
*/
ChangeToString cts=new ChangeToString();
File file = new File(savePath + File.separator + tableName+".sql");
try {
Writer writer = new OutputStreamWriter(new FileOutputStream(file, false), "utf-8");
for(List<Object> list:tableList){
String str=cts.changeToStirng(list);
String insSql = "insert into "+tableName+" values (" + str
+ ");"+ "\n\n";
System.out.println(insSql);
writer.write(insSql );
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java程序读取数据库表 转为sql文件 仅供参考 不得宣传
共23个文件
class:6个
java:6个
prefs:3个
需积分: 50 15 下载量 94 浏览量
2018-04-13
15:16:31
上传
评论 1
收藏 22KB ZIP 举报
温馨提示
程序开始运行读取配置文件,用的是jdbc链接数据库,写了几个类,用程序读取数据库中表的名字,把表里面的内容读取出来转为sql文件,仅供学习参考,禁止上传给他人
资源推荐
资源详情
资源评论
收起资源包目录
tableCopy.zip (23个子文件)
tableCopy
.project 561B
src
test
java
com
nokia
ices
radio
tableCopy
AppTest.java 696B
main
resource
dataBase.properties 303B
java
com
nokia
ices
radio
utils
GetProp.java 681B
ChangeToString.java 718B
OutSql.java 2KB
GetConn.java 796B
tableCopy
App.java 1KB
target
classes
dataBase.properties 303B
com
nokia
ices
radio
utils
OutSql.class 4KB
GetConn.class 1KB
ChangeToString.class 1KB
GetProp.class 886B
tableCopy
App.class 2KB
META-INF
MANIFEST.MF 107B
maven
com.nokia.ices.radio
tableCopy
pom.properties 224B
pom.xml 1009B
test-classes
com
nokia
ices
radio
tableCopy
AppTest.class 647B
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.core.prefs 243B
org.eclipse.core.resources.prefs 119B
pom.xml 1009B
.classpath 1KB
共 23 条
- 1
资源评论
kx86161200
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功