日期:2014-05-20 浏览次数:21403 次
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
/**
* This example shows how to programmatically get and directly use an unpooled
* DataSource
*/
public final class UseJndiDataSource {
public static void main(String[] args) {
try {
String jndiName = args[0];
InitialContext ctx = new InitialContext();
// acquire the DataSource... this is the only c3p0 specific code
// here
DataSource ds = (DataSource) ctx.lookup(jndiName);
// get hold of a Connection an do stuff, in the usual way
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM foo");
while (rs.next())
System.out.println(rs.getString(1));
} finally {
// c3p0 DataSources will properly deal.
attemptClose(rs);
attemptClose(stmt);
attemptClose(con);
}
} catch (Exception e) {
e.printStackTrace();
}
}
static void attemptClose(ResultSet o) {
try {
if (o != null)
o.close();
} catch (Exception e) {
e.printStackTrace();
}
}
static void attemptClose(Statement o) {
try {
if (o != null)
o.close();
} catch (Exception e) {
e.printStackTrace();
}
}
static void attemptClose(Connection o) {
try {
if (o != null)
o.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private UseJndiDataSource() {
}
}