2323

#1234# mybatis;

#12345678# #123#.io.File;

#12345678# #123#.sql.Connection;

#12345678# #123#.sql.DriverManager;

#12345678# #123#.sql.SQLException;

#12345678# #123#.sql.Statement;

#12345678# #123#.util.ArrayList;

#12345678# #123#.util.List;

#12345678# org.dom4j.Document;

#12345678# org.dom4j.DocumentException;

#12345678# org.dom4j.Element;

#12345678# org.dom4j.io.SAXReader;

#12345678# org.xml.sax.SAXException;

#123456# #12345# DataMybatis {

#1234567# static String filePath = "D:"+File.separator+"wangwei"+File.separator+"project"+File.separator+"xiaoyu"+File.separator

+"src"+File.separator+"com"+File.separator+"ebiz"+File.separator+"xiaoyu"+File.separator+"dao"+File.separator+"ibatis"+File.separator+"maps"+File.separator+"";

#1234567# static final String DBDRIVER = "com.mysql.jdbc.Driver";

#1234567# static final String DBURL = "jdbc:mysql://10.20.12.175:3306/test";

#1234567# static final String USERNAME = "test";

#1234567# static final String PASSWORD = "test123";

@SuppressWarnings("unchecked")

#1234567# static List<TableInfo> getElement(Element doc, String nodeName) {

List<Element> eleList = doc.elements("resultMap");

Element ele = eleList.get(0);

List<Element> resultList = ele.elements();

List<TableInfo> list = new ArrayList<TableInfo>();

for (Element result : resultList) {

// System.out.println(result.attributeValue("column") + ";" + result.attributeValue("jdbcType"));

TableInfo tableInfo = new TableInfo(result.attributeValue("column"),result.attributeValue("jdbcType"));

list.add(tableInfo);

}

return list;

}

#123456# static void main(String[] argv) throws SQLException, ClassNotFoundException {

Class.forName(DBDRIVER);

Connection conn = DriverManager.getConnection(DBURL,USERNAME,PASSWORD);

List<String> sqlList = getSqlList();

for(String sql:sqlList){

createTable(conn,sql.split(";")[0]);

createTable(conn,sql.split(";")[1]);

}

}

#1234567# static List<String> getSqlList(){

Document doc = null;

List<String> sqlList = new ArrayList<String>();

try {

SAXReader reader = new SAXReader();

reader.setValidation(false);

reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",false);

File file = new File(filePath);

File[] fileList = file.listFiles();

for(File f:fileList){

if(f.getName().endsWith("xml")){

// System.out.println("--------"+f.getName()+"-----------");

doc = reader.read(f);

Element root = doc.getRootElement();

List<TableInfo> list = getElement(root, "");

StringBuffer sb = new StringBuffer();

sb.append("DROP TABLE IF EXISTS " + f.getName().split("\\.")[0].replace("_SqlMap", "") + ";");

sb.append("CREATE TABLE " + f.getName().split("\\.")[0].replace("_SqlMap", "") + " ( ");

for(TableInfo tb:list){

sb.append("").append(tb.getColoumn()).append("");

if("ID".equals(tb.getColoumn().toUpperCase())){

sb.append(" int").append(" auto_increment primary key,");

}else if("VARCHAR".equals(tb.getColoumnType().toUpperCase())){

sb.append(" varchar(255)").append(",");

}else if("INTEGER".equals(tb.getColoumnType().toUpperCase())){

sb.append(" int").append(",");

}else if("INTEGER".equals(tb.getColoumnType().toUpperCase())){

sb.append(" int)").append(",");

}else if("LONGVARCHAR".equals(tb.getColoumnType().toUpperCase())){

sb.append(" text").append(",");

}else if("TIMESTAMP".equals(tb.getColoumnType().toUpperCase())){

sb.append(" date").append(",");

}else if("DECIMAL".equals(tb.getColoumnType().toUpperCase())){

sb.append(" decimal(10,5)").append(",");

}else{

System.err.println(tb.getColoumnType());

}

}

String sqlStr = sb.toString();

sqlStr = sqlStr.substring(0, sqlStr.length() - 1);

sqlStr += ");";

// System.out.println(sqlStr);

sqlList.add(sqlStr);

}

}

} catch (DocumentException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

}

return sqlList;

}

#1234567# static void createTable(Connection conn, String sql) throws SQLException {

Statement stmt = null;

stmt = conn.createStatement();

stmt.executeUpdate(sql);

stmt.close();

}

}

时间: 2024-11-21 02:09:01

2323的相关文章

【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)

2323: [ZJOI2011]细胞 Description 2222年,人类在银河系外的某颗星球上发现了生命,并且携带了一个细胞回到了地球.经过反复研究,人类已经完全掌握了这类细胞的发展规律: 这种细胞最初的形态是"长条形",一端是头,一端是尾,中间是躯干.细胞内部含有一列密码(你可以认为它是这种细胞的DNA).密码是一个长度为n的数字串,且仅含有1~9这9种数字,沿着细胞的躯干从头到尾排列着. 首先,细胞会经历一次分裂.细胞将沿躯干方向分裂成若干个球体,躯干将退化成丝状物,连接着相

UVALive 2323 Modular Multiplication of Polynomials(模拟)

这是一个相对简单的模拟,因为运算规则已经告诉了我们,并且比较简单,不要被吓到…… 思路:多项式除以另外一个多项式,如果能除,那么他的最高次一定被降低了,如果最高次不能被降低,那说明已经无法被除,就是题目要求输出的膜了,降低最高次的方法很简单,只要被除式的最高次 >= 除式的最高次,就将除式的最高次升高到与被除式一样高,然后让被除式减去它,直到不满足上述关系为止. 代码如下: #include<cstdio> #include<algorithm> #include<io

【2016-11-2】【坚持学习】【Day17】【微软 推出的SQLHelper】

从网络上找到 微软原版本的SQLHelper,很多行代码.认真看了,学习了. 代码: 1 using System; 2 using System.Data; 3 using System.Xml; 4 using System.Data.SqlClient; 5 using System.Collections; 6 7 namespace Helper 8 { 9 /// <summary> 10 /// The SqlHelper class is intended to encapsu

Oracle数据库语句大全

转自:http://blog.sina.com.cn/s/blog_b5d14e2a0101c56z.html ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每

中国标准城市区域码

ID 国家 省份 省份编码 城市 城市编码 县区 县区编码 邮编 1 中华人民共和国 北京市 110000 北京市市辖区 110100 东城区 110101 100010 2 中华人民共和国 北京市 110000 北京市市辖区 110100 西城区 110102 100032 3 中华人民共和国 北京市 110000 北京市市辖区 110100 崇文区 110103 100061 4 中华人民共和国 北京市 110000 北京市市辖区 110100 宣武区 110104 100054 5 中华人

RedHat 6.4 搭建rhcs集群

架构拓扑(图片摘自网络) 一.实验环境 os:RedHat 6.4 node5    192.168.2.200    luci管理端 node1    192.168.2.103    集群节点 node2    192.168.2.111    集群节点 虚拟IP     192.168.2.110 初始化操作:关闭所有涉及设备的iptables.selinux=disabled.关闭NetworkManager 注:在该步骤中node2.example.com对应上面环境中提到的node1

文件排序合并

文件排序: sort命令是帮我们根据不同的数据类型进行排序.其语法及经常使用參数格式: sort [选项][输入文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. 參 数: -b 忽略每行前面開始出的空格字符. -c 检查文件是否已经依照顺序排序. -f 排序时.忽略大写和小写字母. -M 将前面3个字母按照月份的缩写进行排序. -n 按照数值的大小排序. -o<输出文件> 将排序后的结果存入指定的文件. -r 以相反的顺序来排序. -t<分隔字符> 指定排序时所用

笔记:集合

Java集合类库将接口(interface)和实现(implementation)分离,首先对集合接口进行说明. 集合接口 集合类的基本接口是 Collection 接口,该接口有两个基本方法: ????????public interface Collection<E>{ ????????????boolean add(E element); ????????????Iterator<E> iterator(); ????????????- ????????} add方法用于向集

(转)理解MySQL——索引与优化

参考资料:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html ———————————— 全文: 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行1