import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import com.han.Derby;
public class UpdateStu {
private static Connection conn;
private static PreparedStatement ps;
private static ResultSet rs;
private static ResultSetMetaData rsmd; // ResultSetMetaData has not the close() method
public static void main(String[] rgs){
Derby.loadDriver();// As is said in the class Derby, this action is not necessary with a JRE 1.6 and later.
try {
// create database "ch20"
conn=Derby.createDatabaseAndGetConnection("ch20", "", "");
// drop the table "tb_stu" if it exists
if(Derby.isTableExists("tb_stu", conn)){
ps=conn.prepareStatement("drop table tb_stu");
ps.execute();
}
// create a table "tb_stu" in this database
ps=conn.prepareStatement("create table tb_stu(id char(5), name varchar(20), sex varchar(10), birthday date)");
ps.execute();
// add elements into the table
ps=conn.prepareStatement("insert into tb_stu values( , , , )");
ps.setString(1, "01d05");
ps.setString(2, "Jing LI");
ps.setString(3, "female");
ps.setDate(4, Date.valueOf("1999-10-20"));
ps.executeUpdate();
ps.setString(2, "Hao LI");
ps.setString(3, "male");
ps.setDate(4, Date.valueOf("1988-10-20"));
ps.executeUpdate();
ps.setString(1, "01d15");
ps.setString(2, "Yuanyuan XIONG");
ps.setString(3, "female");
ps.setDate(4, Date.valueOf("2001-10-20"));
ps.executeUpdate();
ps.setString(1, "01d16");
ps.setString(2, "Mei LIU");
ps.setString(3, "female");
ps.setDate(4, Date.valueOf("1979-10-20"));
ps.executeUpdate();
// consult the information of all the students
ps=conn.prepareStatement("select * from tb_stu");
rs=ps.executeQuery();
// display the query results on the console
rsmd=rs.getMetaData();
int numberOfColumns=rsmd.getColumnCount();
String[] columnNames=new String[numberOfColumns];
String[] columnTypeNames=new String[numberOfColumns];
int[] precisions=new int[numberOfColumns];
for(int i=0;i
columnTypeNames[i]=rsmd.getColumnTypeName(i+1);
precisions[i]=rsmd.getPrecision(i+1);
System.out.println(columnNames[i]+" : "
+columnTypeNames[i]+"("
+precisions[i]+")");
}
for(int i=0;i
if(columnName.length()>precisions[i]){
columnName=columnName.substri