1.Load the Driver
1. Class.forName() | Class.forName().newInstance() | new DriverName()
2. 实例化时自动向DriverManager注册,不需要显式调用DriverManager.registerDriver方法
2.Connect to the DataBase
1. DriverManager.getConnection()
3.Execute the SQL
1. Connection.CreationStatement()
2.Statement.executeQuery()
3.Statement.executeUpdate()
4.Retrieve the result data
1. 循环去的结果 while(rs.next())
5.Show the result data
1. 将数据库中的各种类型转换为Java中的类型(getXXX)方法
6.Close
1.close the resultset. / close the statement / close the connection
实际操作中的知识点:
1.获取安装在本机上的oracle数据库URL:
使用oracle,有一个tnsnames.ora
定义数据库地址的文件。该文件通常位于Oracle安装目录$ORACLE_HOME/NETWORK/ADMIN 我电脑上的示例如下:
SOUJIUSUBDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-7ROL9EN)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SOUJIUSUBDB)
)
)
从这个条目可以看出我的jdbc连接字符串是: jdbc:oracle:thin:@DESKTOP-7ROL9EN:1521:SOUJIUSUBDB
2.Java project中的oracle驱动包导入
这个知识点非常简单了,可以百度java project导入oracle驱动包,有很多回答的说。但是有一点需要注意,oracle驱动包版本要和你的jdk版本兼容。我的电脑上安装的jdk版本是1.8,oracle用的是11g,那么jdbc相对应的驱动包应该是ojdbc6.jar。
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
/**
* Class.forName("oracle.jdbc.driver.OracleDriver.class");
* 这句话为抛出异常,这是为什么??
*Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver.class
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at TestJDBC.main(TestJDBC.java:8)
*/
new oracle.jdbc.driver.OracleDriver();
Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@DESKTOP-7ROL9EN:1521:SOUJIUSUBDB", "scott", "tiger"); //参数1:数据库连接字符串,参数2.3:用户名和密码
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from dept");
while(resultSet.next()) {
System.out.println(resultSet.getString("deptno"));
System.out.println(resultSet.getInt("deptno"));
}
resultSet.close();
statement.close();
connection.close();
}
}