请助 我想这本来就不是什么问题,你也不用强求来个一一对应~~~~~~~~~他们之间有没有什么一一对应的关系无关紧要比如你的int型数据可以转化为String 再放到数据库,也可以直接放等等方法都可以实现的所以我认为这个问题没有意义 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 各位说的不错奈何一向表现不错的我在这个问题上卡壳了,下面是别人写的一点代码请提意见加一些数据类型的转换package server.ScaleTree;import java.sql.*;import java.io.*;import java.util.*;import javax.swing.*;import server.Mysql.*;import server.SQLServer.*;import server.EntityAttributes;//import java.util.Hashtable;public class ScaleTest { EntityAttributes eatt2 = null; public ScaleTest() { } public static void main(String[] args) { Vector v = new Vector(); EntityAttributes eatt = new EntityAttributes(); // eatt.setAttributesDataType("int(6)"); eatt.setAttributesDataType("double"); eatt.setAttributesDefaultValue("NULL"); eatt.setAttributesName("TEL"); EntityAttributes eatt1 = new EntityAttributes(); eatt1.setAttributesDataType("varchar(60)"); eatt1.setAttributesDefaultValue("NULL"); eatt1.setAttributesName("ADDR"); EntityAttributes eatt2 = new EntityAttributes(); eatt2.setAttributesDataType("varchar(60)"); eatt2.setAttributesName("P"); v.add(eatt); v.add(eatt1); v.add(eatt2); ScaleTree f = new ScaleTree(); // f.CreateTable("Scale4_Tree",v); // f.getTableID("Scale1_Tree"); // f.DropTable("Scale2_Tree"); // f.dropattribute("Scale1_Tree","TEL"); // EntityAttributes eatt3 = new EntityAttributes(); //eatt3.setAttributesDataType("varchar(60)"); // f.CreateTable("Scale6_Tree",v); //f.CreateTable("Scale8_Tree",v); EntityAttributes eatt3 = new EntityAttributes(); eatt3.setAttributesDataType("int"); eatt3.setAttributesDefaultValue("NULL"); eatt3.setAttributesName("PHONE"); EntityAttributes eatt4 = new EntityAttributes(); eatt4.setAttributesDataType("varchar(60)"); eatt4.setAttributesName("Toys"); EntityAttributes eatt5=new EntityAttributes(); eatt5.setAttributesDataType("double"); eatt5.setAttributesName("price"); //EntityAttributes eatt6=new EntityAttributes(); // eatt6.setAttributesDataType("long"); //eatt6.setAttributesDataType("long"); //eatt6.setAttributesName("money"); //EntityAttributes eatt7=new EntityAttributes(); //eatt7.setAttributesDataType("float"); //eatt7.setAttributesName("till"); v.add(eatt3); v.add(eatt4); v.add(eatt5); // v.add(eatt6); // v.add(eatt7); f.CreateTable("Scale13_Tree",v); }} 另一个主类是:package server.ScaleTree;import javax.swing.*;import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import javax.swing.tree.*;import java.util.*;import org.gjt.mm.mysql.*;import server.EntityAttributes;import java.util.Hashtable;public class ScaleTree { private java.sql.Statement stmt = null; private java.sql.Connection conn; public ScaleTree() { try{ DriverManager.registerDriver(new org.gjt.mm.mysql.Driver()); conn = DriverManager.getConnection ( "jdbc:mysql://localhost/syl" , "user", "123456" ); } catch(Exception e){ System.err.println("在创建数据库连接时出错,数据库没有连上!"+e.getMessage()); } }//动态创建表Scale_Tree// @para String tablename表名 //@para Vector v输入字段名称、类型、默认值 public void CreateTable(String tablename,Vector v)//tablename的形式:Scale1_Tree { String createstr = ""; for(int i =0;i < v.size();i++){ String attType = ((EntityAttributes)v.get(i)).getAttributesDataType(); String attName = ((EntityAttributes)v.get(i)).getAttributesName(); String attDefa = ((EntityAttributes)v.get(i)).getAttributesDefaultValue(); if(attDefa.length() ==0){ createstr = createstr + attName+" "+attType+", "; }else{ createstr = createstr + attName+" "+attType+" default "+attDefa+", "; } } try{ String sql = "create table " + tablename + " ( " + "ID varchar(60) NOT NULL," + createstr + " PRIMARY KEY (ID))" ; sql = this.processChinese(sql); stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); stmt.executeUpdate(sql); } catch(SQLException e){ e.printStackTrace(); } } //获取表中ID字段的值public String getTableID(String tablename){String ID = tablename.substring(tablename.indexOf("_")+1);System.out.println("ID:"+ID);Stack tableID = ctclassstack(tablename);String s = this.getID(tableID,ID);System.out.println("s:"+s);return s;} //获得项目中已存在的实体ID栈private Stack ctclassstack(String tablename){Stack stack = new Stack();int row = 0; try { String searche = "select ID from "+tablename; searche = this.processChinese(searche); stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); java.sql.ResultSet rs = stmt.executeQuery(searche); while(rs.next()) { row++; }System.out.println("row:"+row);rs.beforeFirst(); for (int i = 1;i <= row;i++) {rs.next(); String stackelement = rs.getString(1); System.out.println("stackelement:"+ stackelement); stack.addElement(stackelement); }int s = stack.size();System.out.println("stacksize:" + s); rs.close(); } catch(SQLException e) { e.printStackTrace() ; } return stack;} /** * 分派实体ID或实体实例ID * @param ins Stack 项目中已存在的实体ID栈或实例ID栈 * @param entID String "ID"或要生成实例的实体的ID * @return ID */ static public String getID(Stack ins, String entID) { entID = entID + "_"; // 保存实体实例ID的临时栈 Stack tempStack = new Stack(); // 遍历存放所有实例ID号的栈,把所有含有ID_X的ID号压入一个临时栈 // 此时的栈即为ins, ID_X是entID for( int i = 0; i < ins.size(); i ++) { if( ins.get( i).toString() .indexOf( entID) != -1) tempStack.addElement( ins.get( i)); } // 对临时栈排序, 便于算法处理 tempStack = sort( tempStack); // 新项目,还没有实体 if( tempStack.size() == 0) { return entID + 1; } // 项目中已有实体 else { // 取出栈中最大ID号,与栈长作比较 String maxID = tempStack.lastElement().toString() ; int length = Integer.parseInt( maxID.substring( maxID.lastIndexOf( "_") + 1)); // 若相等,则直接返回 if( length == tempStack.size()) { length += 1; return entID + length; } // 若不等,则两两比较,寻差值绝对值大于1的 else { // 用来遍历临时栈 Iterator i = tempStack.iterator() ; String firstElement = i.next() .toString() ; // 取出栈中第一个元素 String secondElement; // 用于暂存第二个元素 // 在遍历前需判断起始元素是否是基于1的 int init = Integer.parseInt( firstElement.substring( firstElement.lastIndexOf( "_") + 1)); if( init != 1) return entID + 1; // 遍历, 依次两两比较 while( i.hasNext()) { secondElement = i.next() .toString() ; // 存在缺位 if( firstElement.compareTo( secondElement) < -1) { int index = Integer.parseInt( firstElement.substring( firstElement.lastIndexOf( "_") + 1)); index += 1; return entID + index; } // 指针后移 firstElement = secondElement; } } } return null; } /** * 对实体标识排序 * @param object * @return 返回排序后的实体集 */ static private Stack sort(Vector object) { // 结果集 Stack result = new Stack(); // 临时集 Vector tmp = new Vector(); // 获取实例标识数字 String str = null; for( int i = 0; i < object.size(); i ++) { str = object.get( i).toString() ; tmp.add( str.substring( str.lastIndexOf( "_") +1)); } // 数组效率最高,转化之 int[] a = new int[ object.size() +1]; String[] b = new String[ object.size() +1]; for( int m = 1; m <= object.size() ; m++) { a[m] = Integer.parseInt( String.valueOf( tmp.get( m-1))); b[m] = object.get( m-1).toString() ; } // 排序号时临时变量 int t = 0; for( int j = 1; j <= object.size() -1; j++) for( int i = 1; i <= object.size() - j; i++) if( a[i] > a[i+1]) { // 距离 t = a[i+1]; a[i+1] = a[i]; a[i] = t; // 对距离排序的同时,相应更改实例对象位置 str = b[i+1]; b[i+1] = b[i]; b[i] = str; } // 最后实例对象入栈 for( int k = 0; k < object.size() ; k++) result.addElement( b[k+1]); return result; }//处理中文信息 private String processChinese(String str) { try { byte[] _str = str.getBytes() ; str = new String( _str, "ISO-8859-1"); } catch( java.io.UnsupportedEncodingException e) { e.printStackTrace() ; } return str; }} 也就是一个界面实现Mysql MS SQL oralce三个数据库的连接 我的email:[email protected],那位兄弟姐妹有兴趣做出来发给我有重谢!!! 我以前买过一本JDBC的书,里面就叙述了这些数据类型间转换的问题。 个界面实现Mysql MS SQL oralce三个数据库的连接的资料在那里有的找的呀请各位指教能发给我最好我的email: [email protected] java的数据类型转化为oracle mysql ms sql 都支持的方法. java通过JDBC如何进行数据的批量DML? java如何识别Linux下的文件夹是真正的文件夹还是"链接"??? JAVA与C++语言比较 accept()接到请求后为什么不执行下面的 DecimalFormat小问题! 欲做C/S模式程序,应该用JAVA的什么技术做 JList问题求教! 送分:处理字符串的问题 请问URLConnection如何使用proxy? jbuilder7.0安装问题 密钥、密码、算法之间是什么关系? 请问怎样拿到一个主机的mac地址!
package server.ScaleTree;import java.sql.*;
import java.io.*;
import java.util.*;import javax.swing.*;
import server.Mysql.*;
import server.SQLServer.*;
import server.EntityAttributes;
//import java.util.Hashtable;
public class ScaleTest {
EntityAttributes eatt2 = null; public ScaleTest() {
} public static void main(String[] args) {
Vector v = new Vector();
EntityAttributes eatt = new EntityAttributes();
// eatt.setAttributesDataType("int(6)");
eatt.setAttributesDataType("double");
eatt.setAttributesDefaultValue("NULL");
eatt.setAttributesName("TEL");
EntityAttributes eatt1 = new EntityAttributes();
eatt1.setAttributesDataType("varchar(60)");
eatt1.setAttributesDefaultValue("NULL");
eatt1.setAttributesName("ADDR"); EntityAttributes eatt2 = new EntityAttributes();
eatt2.setAttributesDataType("varchar(60)"); eatt2.setAttributesName("P");
v.add(eatt);
v.add(eatt1);
v.add(eatt2); ScaleTree f = new ScaleTree();
// f.CreateTable("Scale4_Tree",v);
// f.getTableID("Scale1_Tree");
// f.DropTable("Scale2_Tree");
// f.dropattribute("Scale1_Tree","TEL");
// EntityAttributes eatt3 = new EntityAttributes();
//eatt3.setAttributesDataType("varchar(60)");
// f.CreateTable("Scale6_Tree",v);
//f.CreateTable("Scale8_Tree",v);
EntityAttributes eatt3 = new EntityAttributes();
eatt3.setAttributesDataType("int");
eatt3.setAttributesDefaultValue("NULL");
eatt3.setAttributesName("PHONE"); EntityAttributes eatt4 = new EntityAttributes();
eatt4.setAttributesDataType("varchar(60)"); eatt4.setAttributesName("Toys");
EntityAttributes eatt5=new EntityAttributes();
eatt5.setAttributesDataType("double");
eatt5.setAttributesName("price");
//EntityAttributes eatt6=new EntityAttributes();
// eatt6.setAttributesDataType("long");
//eatt6.setAttributesDataType("long");
//eatt6.setAttributesName("money");
//EntityAttributes eatt7=new EntityAttributes();
//eatt7.setAttributesDataType("float");
//eatt7.setAttributesName("till");
v.add(eatt3);
v.add(eatt4);
v.add(eatt5);
// v.add(eatt6);
// v.add(eatt7);
f.CreateTable("Scale13_Tree",v);
}
}
package server.ScaleTree;import javax.swing.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.util.*;
import org.gjt.mm.mysql.*;
import server.EntityAttributes;import java.util.Hashtable;public class ScaleTree {
private java.sql.Statement stmt = null;
private java.sql.Connection conn;
public ScaleTree() {
try{
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
conn = DriverManager.getConnection (
"jdbc:mysql://localhost/syl" ,
"user",
"123456"
);
}
catch(Exception e){
System.err.println("在创建数据库连接时出错,数据库没有连上!"+e.getMessage());
}
}
//动态创建表Scale_Tree
// @para String tablename表名
//@para Vector v输入字段名称、类型、默认值
public void CreateTable(String tablename,Vector v)//tablename的形式:Scale1_Tree
{
String createstr = "";
for(int i =0;i < v.size();i++){ String attType = ((EntityAttributes)v.get(i)).getAttributesDataType();
String attName = ((EntityAttributes)v.get(i)).getAttributesName();
String attDefa = ((EntityAttributes)v.get(i)).getAttributesDefaultValue();
if(attDefa.length() ==0){
createstr = createstr + attName+" "+attType+", ";
}else{
createstr = createstr + attName+" "+attType+" default "+attDefa+", ";
}
} try{ String sql = "create table " + tablename + " ( " + "ID varchar(60) NOT NULL," + createstr + " PRIMARY KEY (ID))" ;
sql = this.processChinese(sql);
stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.executeUpdate(sql);
}
catch(SQLException e){
e.printStackTrace(); } }
//获取表中ID字段的值
public String getTableID(String tablename){
String ID = tablename.substring(tablename.indexOf("_")+1);
System.out.println("ID:"+ID);
Stack tableID = ctclassstack(tablename);
String s = this.getID(tableID,ID);
System.out.println("s:"+s);
return s;}
//获得项目中已存在的实体ID栈private Stack ctclassstack(String tablename)
{
Stack stack = new Stack();int row = 0;
try
{
String searche = "select ID from "+tablename;
searche = this.processChinese(searche);
stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
java.sql.ResultSet rs = stmt.executeQuery(searche);
while(rs.next())
{
row++;
}
System.out.println("row:"+row);
rs.beforeFirst();
for (int i = 1;i <= row;i++)
{rs.next();
String stackelement = rs.getString(1);
System.out.println("stackelement:"+ stackelement);
stack.addElement(stackelement);
}
int s = stack.size();
System.out.println("stacksize:" + s);
rs.close();
}
catch(SQLException e)
{
e.printStackTrace() ;
}
return stack;
}
/**
* 分派实体ID或实体实例ID
* @param ins Stack 项目中已存在的实体ID栈或实例ID栈
* @param entID String "ID"或要生成实例的实体的ID
* @return ID
*/
static public String getID(Stack ins, String entID)
{
entID = entID + "_"; // 保存实体实例ID的临时栈
Stack tempStack = new Stack(); // 遍历存放所有实例ID号的栈,把所有含有ID_X的ID号压入一个临时栈
// 此时的栈即为ins, ID_X是entID
for( int i = 0; i < ins.size(); i ++)
{
if( ins.get( i).toString() .indexOf( entID) != -1)
tempStack.addElement( ins.get( i));
} // 对临时栈排序, 便于算法处理
tempStack = sort( tempStack); // 新项目,还没有实体
if( tempStack.size() == 0)
{
return entID + 1;
}
// 项目中已有实体
else
{
// 取出栈中最大ID号,与栈长作比较
String maxID = tempStack.lastElement().toString() ;
int length = Integer.parseInt( maxID.substring( maxID.lastIndexOf( "_") + 1));
// 若相等,则直接返回
if( length == tempStack.size())
{
length += 1; return entID + length;
}
// 若不等,则两两比较,寻差值绝对值大于1的
else
{
// 用来遍历临时栈
Iterator i = tempStack.iterator() ; String firstElement = i.next() .toString() ; // 取出栈中第一个元素
String secondElement; // 用于暂存第二个元素 // 在遍历前需判断起始元素是否是基于1的
int init = Integer.parseInt( firstElement.substring( firstElement.lastIndexOf( "_") + 1));
if( init != 1)
return entID + 1; // 遍历, 依次两两比较
while( i.hasNext())
{
secondElement = i.next() .toString() ; // 存在缺位
if( firstElement.compareTo( secondElement) < -1)
{
int index = Integer.parseInt( firstElement.substring( firstElement.lastIndexOf( "_") + 1));
index += 1; return entID + index;
} // 指针后移
firstElement = secondElement;
}
}
} return null;
}
/**
* 对实体标识排序
* @param object
* @return 返回排序后的实体集
*/
static private Stack sort(Vector object)
{
// 结果集
Stack result = new Stack(); // 临时集
Vector tmp = new Vector();
// 获取实例标识数字
String str = null;
for( int i = 0; i < object.size(); i ++)
{
str = object.get( i).toString() ;
tmp.add( str.substring( str.lastIndexOf( "_") +1));
} // 数组效率最高,转化之
int[] a = new int[ object.size() +1];
String[] b = new String[ object.size() +1];
for( int m = 1; m <= object.size() ; m++)
{
a[m] = Integer.parseInt( String.valueOf( tmp.get( m-1)));
b[m] = object.get( m-1).toString() ;
} // 排序号时临时变量
int t = 0;
for( int j = 1; j <= object.size() -1; j++)
for( int i = 1; i <= object.size() - j; i++)
if( a[i] > a[i+1])
{
// 距离
t = a[i+1]; a[i+1] = a[i]; a[i] = t;
// 对距离排序的同时,相应更改实例对象位置
str = b[i+1]; b[i+1] = b[i]; b[i] = str;
} // 最后实例对象入栈
for( int k = 0; k < object.size() ; k++)
result.addElement( b[k+1]); return result;
}//处理中文信息
private String processChinese(String str)
{
try
{
byte[] _str = str.getBytes() ;
str = new String( _str, "ISO-8859-1");
}
catch( java.io.UnsupportedEncodingException e)
{
e.printStackTrace() ;
}
return str;
}}