package com.cn;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class JDBCDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException, DocumentException, IOException {
String url = "jdbc:mysql://localhost:3306/my1";
String userName = "root";
String psd = "";
Connection con = getConnection(url, userName, psd);
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("select * from test1");
ResultSetMetaData metaData = res.getMetaData();
int count = metaData.getColumnCount();
String tableName = metaData.getTableName(1);
String xml = getXml();
Document document = DocumentHelper.parseText(xml);
StringBuffer sqltemp = new StringBuffer();
StringBuffer selectSqlBuff = new StringBuffer();
StringBuffer insertSqltempVal = new StringBuffer();
StringBuffer insertSqlBuffVal = new StringBuffer();
StringBuffer insertSqltemp = new StringBuffer();
StringBuffer insertSqlBuff = new StringBuffer();
// insert into T_NORMAL_TASK_DETAIL (ID,OPENID, TASK_ID,ACTIVE_ID,cycle,start_time,end_time,areaid,t_num,t_total_num,status,t_total,type,INSERT_TIME)
// values(SEQ_TASK_DETAIL.NEXTVAL,#openid#,#taskid#,#activeid#,#cycle#,#startStr#,#endStr#,#lanid#,'0',#ttotalnum#,#status#, #ttotal#,#type#,sysdate)
selectSqlBuff.append("select ");
insertSqltemp.append("insert into "+tableName+" (");
insertSqltempVal.append(" values(");
for (int i = 1; i <= count; i++) {
String string = metaData.getColumnName(i);
sqltemp.append("t."+string+",");
insertSqltemp.append(string+",");
insertSqltempVal.append("#"+string+"#,");
}
String insertSqltempValStr = insertSqltempVal.toString();
String value = insertSqltempValStr.substring(0,insertSqltempValStr.length()-1);
System.out.println("value:"+value);
String sinsert=insertSqltemp.toString();
String insertSqlTemp = sinsert.substring(0,sinsert.length()-1);
insertSqlBuff.append(insertSqlTemp+")"+value+")");
System.out.println(insertSqlBuff.toString());
String s = sqltemp.toString();
String sqlTemp = s.substring(0,s.length()-1);
selectSqlBuff.append(sqlTemp+" from "+tableName + " t");
String selectSql = selectSqlBuff.toString();
System.out.println(selectSql);
Element root = document.getRootElement();
Element select = root.element("select");
Element insert = root.element("insert");
select.setText(selectSql);
insert.setText(insertSqlBuff.toString());
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileWriter("d:\\"+tableName+"sqlMap.xml"), format);// 声明写XML的对象
writer.write(document);
writer.close();
System.out.println("succ");
con = null;
closeConnection(con);
}
private static String getXml() {
String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
"<!DOCTYPE sqlMap PUBLIC \"-//ibatis.apache.org//DTD SQL Map 2.0//EN\" \"http://ibatis.apache.org/dtd/sql-map-2.dtd\" >" +
"<sqlMap namespace=\"\">" +
"<select id=\"\"></select>" +
"<insert id=\"\"></insert>" +
"</sqlMap>";
return xml;
}
/* 获取数据库连接的函数*/
public static Connection getConnection(String url,String userName,String psd) throws SQLException {
Connection con = null; //创建用于连接数据库的Connection对象
try {
Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
con = DriverManager.getConnection(url, userName, psd);// 创建数据连接
} catch (Exception e) {
System.out.println("数据库连接失败" + e.getMessage());
}
return con; //返回所建立的数据库连接
}
/*关闭连接*/
public static void closeConnection(Connection con) throws SQLException{
if(con!=null){
con.close();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
根据表生成sqlMap文件.zip (3个子文件)
根据表生成sqlMap文件
JDBCDemo.java 4KB
dom4j-1.6.1.jar 307KB
mysql-connector-5.1.25-bin.jar 828KB
共 3 条
- 1
资源评论
- AEWERR2016-08-02这个东西确实很好用,但是就一条语句
- Ncoco2019-03-28很好,感谢分享!
- lin5054947842015-07-13不太会用,改了半天配置也没搞懂
高山不再高2
- 粉丝: 3
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功