最先要获得Connection!!!!
由Connection创建Statement!!!
用Statement的查询方法来用sql语句!!!
增删改查
ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
while(rs.next()){
System.out.println(rs.getInt("age"));
}
java.sql.OracleDataSource;替代DriverManager用于获得connection
public static void 连接oracle并选择某表打印某表() {
OracleDataSource ods = null;
Statement mStmt = null;
try {
ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:system/123456@//localhost:1521/orcl");
Connection conn = ods.getConnection();
mStmt = conn.createStatement();
mStmt.execute("select * from \"myuser\".\"qsd\"");
ResultSet rs = mStmt.getResultSet();
ResultSetMetaData resultSetMetaData = rs.getMetaData();
int num = resultSetMetaData.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= num; i++) {
System.out.print(resultSetMetaData.getCatalogName(i) + " "
+ rs.getString(i));
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
}
prepareStatement的作用,传参数
String sql = "SELECT name FROM login WHERE user = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "666");//传"666"进上面的第一个问号
事务,假设有sql1,sql2,sql3组成事务
con=DBHelper.getConnection();
try {
con.setAutoCommit(false);//不要自动提交
con.prepareStatement(sql1).execute();
con.prepareStatement(sql2).execute();
con.prepareStatement(sql3).execute();
con.commit();//上面三个sql语句执行都不出错就到了con.commit()
} catch (SQLException e) {
try {
//若出错,跳到这里,回滚;
con.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally{
try {
//恢复事务提交方式为自动提交:
con.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
}
DBHelper.release();//释放连接
}