第12章 Java 数据库操作

  • 格式:doc
  • 大小:46.00 KB
  • 文档页数:6

第12章 Java 数据库操作 实验1 JDBC-ODBC桥接器 2.模板代码 Excel.java import java.sql.*; public class Excel { public static void main(String args[]) { Connection con; Statement sql; ResultSet rs; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ System.out.println(""+e); } try{ con=DriverManager.getConnection("jdbc:odbc:star","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECT * FROM message"); while(rs.next()){ String number=rs.getString(1); String name=rs.getString(2); String unit=rs.getString(3); double price=rs.getInt(4); System.out.println(number+","+name+","+unit+","+price); } con.close(); } catch(SQLException e){ System.out.println(e); } } }

实验2 查询、更新和插入操作

2.模板代码 LookCar.java import java.sql.*; import java.util.List;

public class LookCar { public static void main(String args[]) { Connection con; Statement sql; ResultSet rs; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { System.out.println("" + e); } try { con = DriverManager.getConnection("jdbc:odbc:mycar", "", ""); sql = con.createStatement(); rs = sql.executeQuery("INSERT INTO list VALUES('001','奔驰',390000,'2008-12-20')");// 向list表插入记录:('001','奔驰',390000,'2008-12-20') rs = sql.executeQuery("INSERT INTO list VALUES('002','奥迪',320000,'2009-07-20')");// 向list表插入记录:('002','奥迪',320000,'2009-07-20') rs = sql.executeQuery("INSERT INTO list VALUES('003','宝马',350000,'2009-10-10')");// 向list表插入记录:('003','宝马',350000,'2009-10-10') rs = sql.executeQuery("SELECT * FROM list"); while (rs.next()) { String number = rs.getString(1); String name = rs.getString(2); double price = rs.getDouble(3); Date madeDate = rs.getDate(4); System.out.println(number + "," + name + "," + price + ","+ madeDate); } rs = sql.executeQuery("UPDATE list SET price=380000 WHERE number='001'");// 将list表中number是001的price的值更新为380000 rs = sql.executeQuery("SELECT * FROM list WHERE number='001'");// 查询number为001的记录 boolean boo = rs.next(); if (boo) { String number = rs.getString(1); String name = rs.getString(2); double price = rs.getDouble(3); Date madeDate = rs.getDate(4); System.out.println(number + "," + name + "," + price + ","+ madeDate); } con.close(); } catch (SQLException e) { System.out.println(e); } } }

实验3 预处理语句 2.模板代码 Prepare.java import java.sql.*; import java.util.Calendar; public class Prepare { public static void main(String args[]) { Connection con; PreparedStatement pre; ResultSet rs; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e){ System.out.println(""+e); } Calendar calendar=Calendar.getInstance(); calendar.set(2007,0,1); //注意0代表一月 Date date1=new Date(calendar.getTimeInMillis()); calendar.set(2007,5,1); Date date2=new Date(calendar.getTimeInMillis()); calendar.set(2008,10,1); Date date3=new Date(calendar.getTimeInMillis()); String [] number={"006","007","008"}; String [] name={"速腾","宝来","荣威"}; double [] price={168000,98000,260000}; Date [] date={date1,date2,date3}; try{ con=DriverManager.getConnection("jdbc:odbc:mycar","",""); String sql="SELECT * FROM list"; pre=con.prepareStatement(sql);//con调用prepareStatement()方法,sql做参数返回一个预处理语句 rs=pre.executeQuery(); while(rs.next()) { String nu=rs.getString(1); String na=rs.getString(2); double pr=rs.getDouble(3); Date madeDate=rs.getDate(4); System.out.println(nu+","+na+","+pr+","+madeDate); } pre=con.prepareStatement("INSERT INTO list VALUES(?,?,?,?)"); for(int i=0;ipre.setString(1, number[i]); //pre调用方法将条件中第1个?的值设置为number[i] pre.setString(2, name[i]);//pre调用方法将条件中第2个?的值设置为name[i] pre.setDouble(3,price[i]); //pre调用方法将条件中第3个?的值设置为price[i] pre.setDate(4, date[i]); //pre调用方法将条件中第4个?的值设置为date[i] pre.executeUpdate(); } pre=con.prepareStatement("SELECT * FROM list WHERE number>=?"); pre.setString(1,number[0]); //pre调用方法将条件中?的值设置为number[0] rs=pre.executeQuery(); while(rs.next()) { String nu=rs.getString(1); String na=rs.getString(2); double pr=rs.getDouble(3); Date madeDate=rs.getDate(4); System.out.println(nu+","+na+","+pr+","+madeDate); } pre=con.prepareStatement("UPDATE list SET price=? WHERE number=?"); pre.setDouble(1,159800); //pre调用方法将条件中第1个?的值的值设置为159800 pre.setString(2,number[0]); //pre调用方法将条件中第2个?的值设置为number[0] pre.executeUpdate(); pre=con.prepareStatement ("SELECT * FROM list Where number='"+number[0]+"'"); rs=pre.executeQuery(); boolean boo=rs.next(); if(boo) { String nu=rs.getString(1); String na=rs.getString(2); double pr=rs.getDouble(3); Date madeDate=rs.getDate(4); System.out.println(nu+","+na+","+pr+","+madeDate); } con.close(); } catch(SQLException e){ System.out.println(e); } } }