一:JDBC应用程序开发步骤(oracle版):
1、加载驱动程序(不同的数据库产品有不同的驱动程序):
a:首先导入相关的驱动包,oracle的是classes12.jar
b:注册jdbc的驱动程序:(实例化过程中自动注册:造一个人去告诉Oracle我要访了)
Class.forName("oracle.jdbc.driver.OracleDriver");
2、创建数据库的连接对象:(要来连接的钥匙)
Connection conn = DriverManager.getConnection(url, user, password);
url:jdbc:oracle:thin:@<machine_name><:port>:dbname
如:"jdbc:oracle:thin:@192.168.1.112:1521:oracle";
3、创建sql语句对象:
Stagement stmt = conn.createStatement();
3、通过语句对象执行sql语句
如:stmt.execute("insert into form values('lianOracle1','haha111',4566)");
ResultSet re = stmt.executeQuery("select * from form");//返回一个结果集
4、循环遍历结果集:
如:while(re.next()) {
System.out.print(re.getString("name") + " ");
System.out.print(re.getString("address") + " ");
System.out.println(re.getInt("salary"));
}
5、关闭数据库:(后开的先关)
re.close();
stmt.close();
conn.close();
6、例:
import java.sql.*;
public class Oracle {
public static void main(String[] args) {
ResultSet re = null;
Statement stmt = null;
Connection conn = null;
try {
// 连接字符串
String url = "jdbc:oracle:thin:@192.168.1.112:1521:oracle";
String user = "pu";
String password = "pu";
// 造一个人去告诉Oracle我要来拜访了
Class.forName("oracle.jdbc.driver.OracleDriver");
// 要来连接的钥匙,即建立连接
conn = DriverManager.getConnection(url, user, password);
// 创建一个语句对象
stmt = conn.createStatement();
// 通过语句对象执行sql语句
//stmt.execute("insert into form values('lOracle1','haha111',4566)");
// 返回一个结果集
re = stmt.executeQuery("select * from form");
while(re.next()) {
System.out.print(re.getString("name") + " ");
System.out.print(re.getString("address") + " ");
System.out.println(re.getInt("salary"));
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException ee) {
ee.printStackTrace();
} finally {
try {
if (re != null) {
re.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
二、相关知识点:
1、五个重要的接口:
Connection:特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果
Statement:用于执行静态 SQL 语句并返回它所生成结果的对象
PreparedStatement:表示预编译的 SQL 语句的对象
CallableStatement:用于执行 SQL 存储过程的接口
ResultSet:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成
2、Statement与PreparedStatement 如:
sql = "insert into form values
(" + "'" + name + "'" + "," + "'" + address + "'" + "," + salary + ")";
pstmt = conn.prepareStatement("insert into form values(?, ?, ?)");
pstmt.setString(1, name);
pstmt.setString(2, address);
pstmt.setInt(3, salary);
?是占位符,PreparedStatement灵活指定sql语句中的环境变量,写起来简单
附:相关驱动:
-------------------------------oracle------------------
驱动:oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@<machine_name><:port>:dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是1521
-------------------------------mysql-------------------
驱动:org.gjt.mm.mysql.Driver
or: com.mysql.jdbc.Driver
URL:jdbc:mysql://<machine_name><:port>/dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认3306
---------------------------SQL Server------------------
驱动:com.microsoft.jdbc.sqlserver.SQLServerDriver
URL:jdbc:microsoft:sqlserver://<machine_name><:port>;DatabaseName=<dbname>
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是1433