📄 20.txt
字号:
例程20-1
//BatchUpdate.java
import java.sql.*;
public class BatchUpdate
{
public static void main(String args[]) throws SQLException
{
ResultSet rs = null;
PreparedStatement ps = null;
String url = "jdbc:mySubprotocol:myDataSource";
Connection con;
Statement stmt;
//加载数据库驱动程序
try
{
Class.forName("myDriver.ClassName");
}
catch(java.lang.ClassNotFoundException e)
{
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try
{
//建立连接
con = DriverManager.getConnection(url,
"myLogin", "myPassword");
//提交连接请求
con.setAutoCommit(false);
//创建数据库操作语句
stmt = con.createStatement();
stmt.addBatch("INSERT INTO COFFEES " +
"VALUES('Amaretto', 49, 9.99, 0, 0)");
stmt.addBatch("INSERT INTO COFFEES " +
"VALUES('Hazelnut', 49, 9.99, 0, 0)");
stmt.addBatch("INSERT INTO COFFEES " +
"VALUES('Amaretto_decaf', 49, 10.99, 0, 0)");
stmt.addBatch("INSERT INTO COFFEES " +
"VALUES('Hazelnut_decaf', 49, 10.99, 0, 0)");
int [] updateCounts = stmt.executeBatch();
//操作语句提交
con.commit();
con.setAutoCommit(true);
//设置结果集
ResultSet uprs = stmt.executeQuery("SELECT * FROM COFFEES");
System.out.println("Table COFFEES after insertion:");
//从结果集中提取查询结果
while (uprs.next())
{
String name = uprs.getString("COF_NAME");
int id = uprs.getInt("SUP_ID");
float price = uprs.getFloat("PRICE");
int sales = uprs.getInt("SALES");
int total = uprs.getInt("TOTAL");
System.out.print(name + " " + id + " " + price);
System.out.println(" " + sales + " " + total);
}
uprs.close();
stmt.close();
con.close();
}
catch(BatchUpdateException b)
{
System.err.println("-----BatchUpdateException-----");
System.err.println("SQLState: " + b.getSQLState());
System.err.println("Message: " + b.getMessage());
System.err.println("Vendor: " + b.getErrorCode());
System.err.print("Update counts: ");
int [] updateCounts = b.getUpdateCounts();
for (int i = 0; i < updateCounts.length; i++)
{
System.err.print(updateCounts[i] + " ");
}
System.err.println("");
}
catch(SQLException ex)
{
System.err.println("-----SQLException-----");
System.err.println("SQLState: " + ex.getSQLState());
System.err.println("Message: " + ex.getMessage());
System.err.println("Vendor: " + ex.getErrorCode());
}
}
}
例程20-2
//Select.java
import java.net.URL;
import java.sql.*;
class Select
{
public static void main(String argv[])
{
try
{
//创建连接URL
String url = "jdbc:odbc:wombat";
/ 建立连接
Connection con = DriverManager.getConnection(url, "kgh", "");
//创建语句
Statement stmt = con.createStatement();
//执行查询,返回结果集
ResultSet rs = stmt.executeQuery("SELECT a, b, c, d, key FROM Table1");
//从结果集中提取查询结果
System.out.println("Got results:");
while (rs.next())
{
//从当前行的记录中获取各个字段中的值
int a = rs.getInt(1);
BigDecimal b = rs.getBigDecimal(2);
char c[] = rs.getString(3).tocharArray();
boolean d = rs.getBoolean(4);
String key = rs.getString(5);
// 打印中前面的值:
System.out.print(" key=" + key);
System.out.print(" a=" + a);
System.out.print(" b=" + b);
System.out.print(" c=");
for (int i = 0; i < c.length; i++)
{
System.out.print(c[i]);
}
System.out.print(" d=" + d);
System.out.print("\n");
}
stmt.close();
con.close();
}
catch (java.lang.Exception ex)
{
ex.printStackTrace();
}
}
}
例程20-3
//UpdateSQL.java
// Update a couple of rows in a database.
import java.net.URL;
import java.sql.*;
class UpdateSQL
{
public static void main(String argv[])
{
try
{
//创建URL
String url = "jdbc:odbc:wombat";
//建立连接
Connection con = DriverManager.getConnection(url, "kgh", "");
//创建语句.
PreparedStatement stmt = con.prepareStatement(
"UPDATE Table1 SET a = ? WHERE key = ?");
//设置语句内容
stmt.setInt(1, 34);
stmt.setString(2, "count");
stmt.executeUpdate();
System.out.println("Updated \"count\" row OK.");
stmt.setString(2, "mirror");
stmt.executeUpdate();
System.out.println("Updated \"mirror\" row OK.");
stmt.close();
con.close();
}
catch (java.lang.Exception ex)
{
ex.printStackTrace();
}
}
}
例程20-4
import java.net.URL;
import java.sql.*;
class SimpleSelect
{
public static void main (String args[])
{
//JDBC-ODBC桥URL定义
String url = "jdbc:odbc:my-dsn";
//查询语句初始化
String query = "SELECT * FROM emp";
try
{
//加载JDBC-ODBC桥
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
DriverManager.setLogStream(System.out);
//建立连接
Connection con = DriverManager.getConnection (url, "my-user", "my-passwd");
//调用判断连接告警方法
checkForWarning (con.getWarnings ());
//获取DatabaseMetaData类型变量实例
DatabaseMetaData dma = con.getMetaData ();
System.out.println("\nConnected to " + dma.getURL());
System.out.println("Driver " + dma.getDriverName());
System.out.println("Version " + dma.getDriverVersion());
//创建语句
Statement stmt = con.createStatement ();
//发送查询语句,创建返回结果的结果集
ResultSet rs = stmt.executeQuery (query);
//调用显示结果集内容的方法
dispResultSet (rs);
//关闭结果集
rs.close();
//关闭语句
stmt.close();
//关闭连接
con.close();
}
catch (SQLException ex)
{
System.out.println ("\n*** SQLException caught ***\n");
//显示异常信息
while (ex != null)
{
System.out.println ("SQLState: " + ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage ());
System.out.println ("Vendor: " + ex.getErrorCode ());
ex = ex.getNextException ();
System.out.println ("");
}
}
catch (java.lang.Exception ex)
{
// Got some other type of exception. Dump it.
ex.printStackTrace ();
}
}
//显示告警信息方法
private static boolean checkForWarning (SQLWarning warn) throws SQLException
{
boolean rc = false;
//如果告警对象不为空,则显示告警内容
if (warn != null)
{
System.out.println ("\n *** Warning ***\n");
rc = true;
while (warn != null)
{
System.out.println ("SQLState: " +warn.getSQLState ());
System.out.println ("Message: " +warn.getMessage ());
System.out.println ("Vendor: " +warn.getErrorCode ());
System.out.println ("");
warn = warn.getNextWarning ();
}
}
return rc;
}
//显示结果集方法
private static void dispResultSet (ResultSet rs)throws SQLException
{
int i;
//获取ResultSetMetaData实例变量
ResultSetMetaData rsmd = rs.getMetaData ();
//驱动结果集的行数
int numCols = rsmd.getColumnCount ();
//显示每列的列名信息
for (i=1; i<=numCols; i++)
{
if (i > 1) System.out.print(",");
System.out.print(rsmd.getColumnLabel(i));
}
System.out.println("");
//依次读取结果集中的内容
boolean more = rs.next ();
while (more)
{
//获取每列中的数据内容
for (i=1; i<=numCols; i++)
{
if (i > 1) System.out.print(",");
System.out.print(rs.getString(i));
}
System.out.println("");
//取得下一行的内容
more = rs.next ();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -