用惯框架,来让你写一下JDBC的插入与封装,会让你崩溃的,哈哈,正在做JDBC项目,就现写了个JDBC助手,派上了大用场,呵呵
package com.sharp.hrm.util;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class ResultSetMetaData_Test {
private static Connection conn;
private static final String TABLENAME = "hrm_user" ;
private static final String entityClassString = "user";
@BeforeClass
public static void setUp(){
conn = ConnectionFactory.getConnection();
System.out.println("conn---->" + conn);
}
@Test
public void showMetadata() throws SQLException {
DatabaseMetaData md = conn.getMetaData();
System.out.println("getDatabaseMajorVersion: "
+ md.getDatabaseMajorVersion());
System.out.println("getDatabaseMinorVersion: "
+ md.getDatabaseMinorVersion());
System.out.println("getDatabaseProductName: "
+ md.getDatabaseProductName());
System.out.println("getDatabaseProductVersion: "
+ md.getDatabaseProductVersion());
System.out.println("getDefaultTransactionIsolation: "
+ md.getDefaultTransactionIsolation());
System.out.println("getURL: " + md.getURL());
System.out.println("getUserName: " + md.getUserName());
}
@Test
public void showMeatdataOfTable()
throws SQLException {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select * from " + TABLENAME);
ResultSetMetaData rmsds = rs.getMetaData();
int count = rmsds.getColumnCount();
if(rs.next()){
for (int i = 1; i <= count; i++) {
System.out.print("列名: " + rmsds.getColumnName(i) + "\t");
System.out.print("数据类型: " + rmsds.getColumnTypeName(i) + "\t");
System.out.print("字段值: " + rs.getObject(rmsds.getColumnName(i)));
System.out.println();
}
System.out.println();
}
}
@Test
public void showMeatdataOfTable_INSERT()
throws SQLException {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select * from " + TABLENAME);
ResultSetMetaData rmsds = rs.getMetaData();
int count = rmsds.getColumnCount();
if(rs.next()){
StringBuffer sb = new StringBuffer();
sb.append("INSERT INTO hrm_employee(");
for (int i = 1; i <= count; i++) {
if(!"id".equals(rmsds.getColumnName(i))){
if(i != count){
sb.append(rmsds.getColumnName(i) + ", ");
}else{
sb.append(rmsds.getColumnName(i));
}
}
}
sb.append(") VALUES(");
for (int i = 1; i <= count; i++) {
if(!"id".equals(rmsds.getColumnName(i))){
if(i != count){
sb.append("?,");
}else{
sb.append("?");
}
}
}
sb.append(")");
System.out.println(sb.toString());
}
}
@Test
public void showMeatdataOfTable_SETVALUES()
throws SQLException {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select * from " + TABLENAME);
ResultSetMetaData rmsds = rs.getMetaData();
int count = rmsds.getColumnCount();
if(rs.next()){
StringBuffer sb = new StringBuffer();
for (int i = 1; i <= count; i++) {
if(i != count){
sb.append(entityClassString + ".get" + rmsds.getColumnName(i).substring(0,1).toUpperCase() + rmsds.getColumnName(i).substring(1) + "(), ");
}else{
sb.append(entityClassString + ".get" + rmsds.getColumnName(i).substring(0,1).toUpperCase() + rmsds.getColumnName(i).substring(1) + "()");
}
}
System.out.println(sb.toString());
}
}
@Test
public void showMeatdataOfTable_UPDATE()
throws SQLException {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select * from " + TABLENAME);
ResultSetMetaData rmsds = rs.getMetaData();
int count = rmsds.getColumnCount();
if(rs.next()){
StringBuffer sb = new StringBuffer();
sb.append("UPDATE SET ");
for (int i = 1; i <= count; i++) {
if(!"id".equals(rmsds.getColumnName(i))){
if(i != count){
sb.append(rmsds.getColumnName(i) + " = ? ,");
}else{
sb.append(rmsds.getColumnName(i) + " = ?");
}
}
}
sb.append(" WHERE id = ? ");
System.out.println(sb.toString());
}
}
@Test
public void showMeatdataOfTable_TOObject()
throws SQLException {
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select * from " + TABLENAME);
ResultSetMetaData rmsds = rs.getMetaData();
int count = rmsds.getColumnCount();
if(rs.next()){
StringBuffer sb = new StringBuffer();
for (int i = 1; i <= count; i++) {
sb.append(entityClassString + ".set" + FirstCharToUpperCase(rmsds.getColumnName(i)) + "(rs.get" + processType(rmsds.getColumnTypeName(i)+"")+ "(\"" + TABLENAME + "." + rmsds.getColumnName(i) + "\"));\n");
}
System.out.println(sb.toString());
}
}
public static String FirstCharToUpperCase(String name){
return name.substring(0,1).toUpperCase() + name.substring(1);
}
public static String processType (String name){
String result = null;
switch(name){
case "VARCHAR":
result = "String";
break;
case "INT":
result = "Int";
break;
case "TIMESTAMP":
result = "Timestamp";
break;
case "DATETIME":
result = "Timestamp";
break;
}
return result;
}
@AfterClass
public static void tearDown(){
ConnectionFactory.close();
}
}
java
运行