您的位置:首页 > 其它

JDBC 初步

2010-08-11 02:32 127 查看
1

.


JDBC 即 java database connection

java 与数据库连接的一项技术,就我现在认为的.

首先是,要在工作环境上加入,D:/oracle/product/10.1.0/Db_2/jdbc/lib 中的classes12.jar 文件.

第二步,下面写一个jdbc 的初步应用小程序好了.

import java.sql.*;
public class BlogJDBC {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
String sql = null;
ResultSet  rs = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
//获取数据库连接的驱动,即载入驱动

String url = "jdbc:oracle:thin:@192.168.1.12:1521:orcl";
conn = DriverManager.getConnection(url,"scott","tiger");
//建立数据库连接,即注册驱动,,, 为固定连接串,@+hostip+端口号+数据库sid
//后面两个字符串分别为 数据库的用户名 . 密码

stmt = conn.createStatement();
//创建Statement对象
sql = "select * from dept";
rs = stmt.executeQuery(sql);
//调用并执行SQL语句

while(rs.next()) {
System.out.println(rs.getString(1));
//访问ResultSet中的记录集并从中取出记录
}
} catch(ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
//依次关闭ResultSet、Statement和Connection对象
} catch(SQLException e) {
e.printStackTrace();
}
}
}
}


2

.


statement 包括 PreparedStatement 和 CallableStatement

preparedStatement 能进行如下操作:

pstmt = conn.prepareStatement
("insert into dept2 values (?, ?, ?)");
pstmt.setInt(1, deptno);
pstmt.setString(2, dname);
pstmt.setString(3, loc);
pstmt.executeUpdate();


一般编程中多使用preparedStatement

CallableStatement 能进行如下操作:

CallableStatement cstmt = conn.prepareCall
("{call p(?, ?, ?, ?)}");

cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);

cstmt.setInt(1, 3);
cstmt.setInt(2, 4);
cstmt.setInt(4, 5);
cstmt.execute();


3

.

以下是一个批处理的下程序

import java.sql.*;
public class TestTransaction {
public static void main(String[] args) {

Connection conn = null;
Statement stmt = null;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:SXT", "scott", "tiger");

conn.setAutoCommit(false);
stmt = conn.createStatement();
stmt.addBatch("insert into dept2 values (51, '500', 'haha')");
stmt.addBatch("insert into dept2 values (52, '500', 'haha')");
stmt.addBatch("insert into dept2 values (53, '500', 'haha')");
stmt.executeBatch();
conn.commit();
conn.setAutoCommit(true);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e) {

e.printStackTrace();

try {
if(conn != null)
{
conn.rollback();
conn.setAutoCommit(true);
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}finally {
try {
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: