DatabaseMetaData meta = con.getMetaData();
ResultSet rsTable = meta.getTables(null, null, this.Clazz.getSimpleName(), null);
if(rsTable.next()){
表存在
}
推断完表后,我们就该做做下一步:假设没表,新建。添数据:
新建表的语句:
CREAT TABLE tablename (id varchar(255) , age int(255))
后面的參数是 : 你的变量名 变量类型(变量长度) , ......
加入数据的语句:
insert into tablename (id , age) values (1,1)
这里就不具体解释了
其它的连接数据库直接上代码:
//----------------------------- 连接数据库 --------------------------------------//
public Connection ConnectingMysql() throws SQLException{
String drivename = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/dbhouse";
String userName = "root";//mysqlusername
String password = "root";//mysql用户密码
try {
Class.forName(drivename);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
connection = DriverManager.getConnection(url, userName, password);
return connection;
}
//---------------------------------------------------------------------------------------//
还有个值得注意的地方:
关于最后运行sql语句的时候,statement这个接口下的三个带execute的方法,非常easy混淆。
二、关于反射传递的数据
首先传入的是我要保存的对象名,通过newinstance()方法取出我的对象
Object object = this.Clazz.newInstance();
再来就是循环输出对象中的变量名和变量类型,提示输入
for (Field field : this.Clazz.getDeclaredFields())
System.out.println("please input "+field.getName()+"("+field.getType().getSimpleName()+"):");
String valueString = scanner.nextLine(); //输入数据
Object value = null;
if(field.getType().equals(String.class)) //推断数据类型
{
value = valueString;
}
......还有非常多其它的类型推断我就不贴在这里了
每次输入完毕,保存对象信息
field.set(object, value);
最后。保存数据给全局变量,以便最后传给数据库做准备
dataName += field.getName() + ","; //全部数据的名字
if(field.getType().equals(Integer.class) || field.getType().equals(int.class)){
data[dataLength ++] = field.getName() + " int(255),"; //为数据库的creat table 做准备
dataType += "int,"; //数据类型
System.out.println("datatype : " + dataType);
dataValue += valueString + ","; //数据值
System.out.println("datavalue : " + dataValue);
}
else {
data[dataLength ++] = field.getName() + " varchar(255),";
dataType += "varchar,";
System.out.println("datatype : " + dataType);
dataValue += valueString + ",";
System.out.println("datavalue : " + dataValue);
}
到这里。基本就已经完毕了。数据库中的insert 以及create table 也直接上代码
不上台面的方法大家就睁一仅仅眼闭一仅仅眼吧。