📄 databasefactory.java
字号:
package com.cstp.hiber.prin.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import com.cstp.hiber.prin.common.TableInfoIntl;
import com.cstp.hiber.prin.dao.BookInfo;
public class DatabaseFactory {
public String insert(TableInfoIntl tableClass,String[] columns){
String sql="";
if(tableClass==null||columns==null)
return null;
sql="insert into "+ tableClass.getTableName();
String columnsBuffer=null;
String valuesBuffer=null;
for(int i=0;i<columns.length;i++){
if(columnsBuffer==null){
columnsBuffer=columns[i];
valuesBuffer="?";
}
else{
columnsBuffer+=","+columns[i];
valuesBuffer+=",?";
}
}
if(columnsBuffer!=null){
sql+="("+ columnsBuffer +") values("+ valuesBuffer +")";
}
else{
return null;
}
return sql;
}
public String getInsertSql(TableInfoIntl tableClass){
String sql="";
if(tableClass==null)
return null;
sql="insert into "+ tableClass.getTableName();
String columnsBuffer=null;
String valuesBuffer=null;
LinkedHashMap columns=tableClass.getColumns();
Iterator it=columns.keySet().iterator();
while(it.hasNext()){
String key=it.next()+"";
String value=columns.get(key)+"";
if(columnsBuffer==null){
columnsBuffer=value;
valuesBuffer="?";
}
else{
columnsBuffer+=","+value;
valuesBuffer+=",?";
}
}
if(columnsBuffer!=null){
sql+="("+ columnsBuffer +") values("+ valuesBuffer +")";
}
else{
return null;
}
return sql;
}
public String getInsertSql(TableInfoIntl tableClass,HashMap<String,Object> values){
String sql="";
if(tableClass==null)
return null;
sql="insert into "+ tableClass.getTableName();
String columnsBuffer=null;
String valuesBuffer=null;
LinkedHashMap columns=tableClass.getColumns();
Iterator it=columns.keySet().iterator();
while(it.hasNext()){
String key=it.next()+"";
String value=columns.get(key)+"";
if(columnsBuffer==null){
columnsBuffer=value;
valuesBuffer="?";
}
else{
columnsBuffer+=","+value;
valuesBuffer+=",?";
}
}
if(columnsBuffer!=null){
sql+="("+ columnsBuffer +") values("+ valuesBuffer +")";
}
else{
return null;
}
return sql;
}
public boolean insertBean(TableInfoIntl tableClass,HashMap<String,Object> values){
String sql=this.getInsertSql(tableClass);
System.out.println(sql);
//System.exit(0);
Connection connection=null;
PreparedStatement pstmt=null;
try{
Class.forName("org.gjt.mm.mysql.Driver");
connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test_db","root","123456");;
pstmt=connection.prepareStatement(sql);
//设置值
LinkedHashMap<String,String> columnInfo=tableClass.getColumns();
//pstmt.setDate(1, java.sql.Date.valueOf(""));
Iterator value_it=columnInfo.keySet().iterator();
int index=1;
while(value_it.hasNext()){
Object key=value_it.next();
String column=columnInfo.get(key);
Object itemValue=values.get(key);
if(itemValue!=null){
System.out.println(itemValue.getClass().getName());
}
boolean isSet=false;
if(itemValue!=null&&itemValue.getClass().getName().equals("java.util.Date")){
System.out.println(itemValue);
//
System.out.println(((java.util.Date)itemValue).toLocaleString());
//itemValue=java.sql.Date.valueOf(((java.util.Date)itemValue).toLocaleString());
isSet=true;
java.sql.Timestamp ts=java.sql.Timestamp.valueOf(((java.util.Date)itemValue).toLocaleString());
pstmt.setTimestamp(index, ts);
//pstmt.setDate(index, java.sql.Date.valueOf(((java.util.Date)itemValue).toLocaleString()));
//itemValue=null;
}
if(!isSet)
pstmt.setObject(index, itemValue);
index++;
}
pstmt.executeUpdate();
pstmt.close();
connection.close();
}
catch(Exception e){
e.printStackTrace();
}
finally{
if(pstmt!=null)
pstmt=null;
if(connection!=null)
connection=null;
}
return true;
}
public boolean insetBean(TableInfoIntl tableClass){
String sql=this.getInsertSql(tableClass);
System.out.println(sql);
HashMap<String,Object> values=tableClass.getColumnValues();
//System.exit(0);
Connection connection=null;
PreparedStatement pstmt=null;
try{
Class.forName("org.gjt.mm.mysql.Driver");
connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test_db","root","123456");;
pstmt=connection.prepareStatement(sql);
//设置值
LinkedHashMap<String,String> columnInfo=tableClass.getColumns();
//pstmt.setDate(1, java.sql.Date.valueOf(""));
Iterator value_it=columnInfo.keySet().iterator();
int index=1;
while(value_it.hasNext()){
Object key=value_it.next();
String column=columnInfo.get(key);
Object itemValue=values.get(key);
if(itemValue!=null){
System.out.println(itemValue.getClass().getName());
}
boolean isSet=false;
if(itemValue!=null&&itemValue.getClass().getName().equals("java.util.Date")){
System.out.println(itemValue);
//
System.out.println(((java.util.Date)itemValue).toLocaleString());
//itemValue=java.sql.Date.valueOf(((java.util.Date)itemValue).toLocaleString());
isSet=true;
java.sql.Timestamp ts=java.sql.Timestamp.valueOf(((java.util.Date)itemValue).toLocaleString());
pstmt.setTimestamp(index, ts);
//pstmt.setDate(index, java.sql.Date.valueOf(((java.util.Date)itemValue).toLocaleString()));
//itemValue=null;
}
if(!isSet)
pstmt.setObject(index, itemValue);
index++;
}
pstmt.executeUpdate();
pstmt.close();
connection.close();
}
catch(Exception e){
e.printStackTrace();
}
finally{
if(pstmt!=null)
pstmt=null;
if(connection!=null)
connection=null;
}
return true;
}
public static void main(String args[]){
DatabaseFactory app=new DatabaseFactory();
// String sql=app.getInsertSql(new BookInfo());
// HashMap<String,Object> data=new HashMap<String,Object>();
// data.put("biTitle", "图书信息");
// data.put("biPublishTime", (new java.util.Date()));
// data.put("biAuthor", "Kevin");
//
// app.insertBean(new BookInfo(), data);
BookInfo tableClass=new BookInfo();
tableClass.setBiAuthor("Mading");
tableClass.setBiClassId(1);
tableClass.setBiPublishTime(new java.util.Date());
app.insetBean(tableClass);
//System.out.println(sql);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -