JDBC编程步骤

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();
	}

}

有个问题:上边的代码我在第一步中使用的方法是 new oracle.jdbc.driver.OracleDriver()而不是 Class.forName("oracle.jdbc.driver.OracleDriver.class");因为在我练习的过程中我发现使用Class.forName()会异常报错,错误我记录在了注释中,这个错误我并没有解决。如果有谁看到这篇文章,可以留言分享你的解决办法,感激不尽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值