JDBC连接Oracle11g(附jar包)

  •  ​​​​JDBC简介

JDBC全称为:Java DataBase Connectivity(java数据库连接)。SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。 

  • 编写JDBC程序的步骤

  1. 导包(导入厂商提供的数据库驱动)  

  2. 注册驱动

  3. 连接数据库

  4. 操作数据库(执行sql)

  5. 关闭资源

  • JDBC中的类

1.DriverManager : 用于注册驱动,获得连接。 

DriverManager.registDriver(new Driver()),这种注册驱动方式实际开发中不用。在驱动类的代码中,有一个静态代码块已经做了注册驱动的事情。 所以我们只需要加载驱动类,就相当于调用了 registDriver 方法。如果调用registDriver 方法, 那么相当于创建了两个Driver对象,浪费资源.

所以开发中使用Class.forName("com.mysql.jdbc.Driver")方法注册驱动。驱动类的名称是以字符串的形式填写,那么我们把该名称放到配置文件中,每次从配置文件中读取. 那么切换驱动类就非常方便. 也就意味着切换数据库方便.

2.Connection : 代表连接 , 获得Statement对象

DriverManager.getConnection("url","用户名","密码");

void setAutoCommit(boolean autoCommit) 设置是否自动提交

void commit() 提交

void rollback() 回滚

Savepoint setSavepoint(String name) 设置保存点

Statement createStatement() 创建statement对象

CallableStatement prepareCall(String sql) 调用数据库的存储过程

PreparedStatement prepareStatement(String sql) 创建 PreparedStatement 对象

3.Statement : 运送sql语句

该对象可以理解为一个 向数据库运送sql语句的 "小车";

方法:

void addBatch(String sql) 向车上添加语句. (用于批量执行sql语句); insert update delete

int[] executeBatch() 将车上的语句 运送给数据库执行. 返回值存放每个语句执行后影响的行数. 因为是多个语句,所以用数组装.

void clearBatch() 清除车上的语句.

----以上3个方法是批量执行sql相关的----------------------

boolean execute(String sql) 执行一个sql语句. 如果该语句返回结果集 返回值为true(select). 如果该语句不返回结果集 返回false(insert update delete);

ResultSet executeQuery(String sql) 执行一个有结果集的查询. 会将结果集包装到resultset对象中.(select)

int executeUpdate(String sql) 执行一个没有结果集的语句. 会将语句影响的行数返回.(insert update delete)

开发时一般用PrepareStatement方法,使用PrepareStatement对象 在执行sql语句时,会分为两步. 第一步将sql语句 "运送" 到mysql上编译. 再回到 java端 拿到参数 运送到mysql端. 用户填写的 sql语句,就不会参与编译. 只会当做参数来看. 避免了sql注入问题;

4.ResultSet : 运行的结果

当执行的语句是查询语句时, resultSet对象用于封装查询结果.

方法:

boolean next() 该方法让结果集中的指针(游标)往下移动一行.并且判断改行是否有数据。 有返回true,没有返回false

String getString(int cloumnCount) 从当前指向的行中获得String 类型的数据. 根据列所在的索引位置取.

String getString(String columnName) 从当前指向的行中获得String 类型的数据. 根据列名取.

getXXX系列方法 有很多种, 没个针对的都是数据库中的不同类型.

char/varchar---getString   int---getInt  bigint---getLong  float/double---getFloat/getDouble 

datetime/timestamp---getDate(只表达年月日)/getTimeStamp(表达年月日时分秒)

  • JDBC查询案例

数据库位Oracle11g,需要的jar包为ojdbc6.jar     

点击【下载地址】

下载地址   提取码: sfwh

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;

public class OracleJdbc {
	@Test
	public void testOracle() {
		Connection conn = null;// 创建一个数据库连接
		PreparedStatement ps = null;// 创建预编译语句对象,用这个不用Statement
		ResultSet resultSet = null;// 创建一个结果集对象
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序,不用DriverManager
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";// Oracle地址
			String user = "scott";// 数据库用户名
			String password = "tiger";// 数据库密码
			conn = DriverManager.getConnection(url, user, password);// 获取连接
			String sql = "select * from student where name=?";// 预编译语句,“?”代表参数
			ps = conn.prepareStatement(sql);// 实例化预编译语句
			ps.setString(1, "小李");// 设置参数,前面的1表示第一个问号(第二个问号就用2)
			resultSet = ps.executeQuery();// 执行查询
			while (resultSet.next()) {// 当结果集不为空时
				System.out.println(resultSet.getString("age"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 从小到大释放. resultSet < Statement < Connection
			// 释放时调用close方法即可. 如果其中一个对象的关闭 出现了异常. 也要保证其他的对象关闭方法被调用.
			try {
				if (resultSet != null) {
					resultSet.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				try {
					if (ps != null) {
						ps.close();
					}
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					try {
						if (conn != null) {
							conn.close();
						}
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}
}

 

要使用Oracle的JAR包连接Oracle数据库,需要进行以下配置: 1. 在pom.xml文件中添加Oracle的驱动依赖: ```xml <dependencies> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> </dependencies> ``` 请注意,上述代码中的版本号(19.3.0.0)是根据你使用的Oracle版本而定的,请根据实际情况选择相应的版本。 2. 在application.properties或application.yml配置文件中添加以下属性: ```properties spring.datasource.url=jdbc:oracle:thin:@localhost:1521:ORCL spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=oracle.jdbc.OracleDriver ``` 请将`localhost`替换为你的数据库地址,`1521`替换为相应的端口号,`ORCL`为数据库实例名称,`your_username`和`your_password`为你的数据库用户名和密码。 3. 在你的Spring Boot应用程序中,可以使用`JdbcTemplate`来执行SQL查询。例如,你可以在一个@Service类中注入JdbcTemplate并使用它来执行查询: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; @Service public class MyService { private final JdbcTemplate jdbcTemplate; @Autowired public MyService(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void executeQuery() { String sql = "SELECT * FROM my_table"; List<Map<String, Object>> result = jdbcTemplate.queryForList(sql); // 处理查询结果 } } ``` 以上是使用Oracle的JAR包连接Oracle数据库并配置Spring Boot中的JDBC的基本步骤。根据实际情况,你可能还需要调整配置或添加其他依赖项以满足你的需求。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值