Oracle JDBC数据库链接方式
一、链接方式
- Oracle jdbc配置,以下方式都可以成功连接数据库
SID格式:
jdbc:oracle:thin:@localhost:1521:SID
如: jdbc:oracle:thin:@192.168.1.1:1521:orcl
ServiceName格式:
jdbc:oracle:thin:@//localhost:1521:SERVICENAME
如: jdbc:oracle:thin:@//192.168.1.1:1521/orcl
thin:小型驱动,驱动方式
localhost :本机ip地址 127.0.0.1
SID:数据库的SID
SERVICENAME:数据库的SID
- MySQL URL
jdbc:mysql://localhost:3306/数据库名称
技巧:
通过一种jdbc的url连接在IDEA成功连接数据库后,点击切换连接类型可将url转换为其它类型的jdbc url连接;
二、驱动类型
在ORACLE中有三种类型的JDBC驱动,都使用相同的 syntax, API, and Oracle extensions,以使JAVA代码在robust clients、Web-based Java applets, and Java stored procedures之间保持轻便灵活:
三种类型如下:
1.JDBC OCI: 此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件
2.JDBC Thin: 这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信 ,因此不需要在使用JDBC Thin的客户端机器上安装客户端软件。
3.JDBC KPRB: 这种驱动由直接存储在数据库中的JAVA程序使用
三、数据库连接代码片段
import oracle.jdbc.driver.OracleDriver;
import java.sql.*;
import java.util.Properties;
/**
* JDBC的六大步骤
* JAVA连接Oracle的三种方式
*/
public static void main(String[] args) {
Connection connect = null;
Statement statement = null;
ResultSet resultSet = null;
try {
//第一步:注册驱动
//第一种方式:类加载(常用)
//Class.forName("oracle.jdbc.OracleDriver");
//第二种方式:利用Driver对象
Driver driver = new OracleDriver();
DriverManager.deregisterDriver(driver);
//第二步:获取连接
//第一种方式:利用DriverManager(常用)
//connect = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "你的oracle数据库用户名", "用户名密码");
//第二种方式:直接使用Driver
Properties pro = new Properties();
pro.put("user", "你的oracle数据库用户名");
pro.put("password", "用户名密码");
connect = driver.connect("jdbc:oracle:thin:@localhost:1521:XE", pro);
//测试connect正确与否
System.out.println(connect);
//第三步:获取执行sql语句对象
//第一种方式:statement
//statement = connect.createStatement();
//第二种方式:PreStatement
PreparedStatement preState = connect.prepareStatement("select * from tb1_dept where id = ?");
//第四步:执行sql语句
//第一种方式:
//resultSet = statement.executeQuery("select * from tb1_dept");
//第二种方式:
//1是指sql语句中第一个?,2是指第一个?的values值
preState.setInt(1, 2);
//执行查询语句
//resultSet = preState.executeQuery();
//执行的任何查询语句,如果有结果集,则返回true,没有的话返回false,注意如果是插入一条数据的话,虽然是没有结果集,返回false,但是却能成功的插入一条数据
boolean execute = preState.execute();
System.out.println(execute);
//第五步:处理结果集
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String city = resultSet.getString("city");
//打印输出结果集
System.out.println( id + " " + name + " " + city );
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//第六步:最后无论如何要关闭资源
try {
if (resultSet!=null) resultSet.close();
if (statement!=null) statement.close();
if (connect!=null) connect.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
四、springboot使用druid连接池连接Oracle数据库的简单配置
#阿里连接池配置
#spring.datasource.druid.driver-class-name=oracle.jdbc.driver.OracleDriver #可配可不配,阿里的数据库连接池会通过url自动搜寻
spring.datasource.druid.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.druid.username=scott
spring.datasource.druid.password=tiger
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-wait=10
#是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。
#在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。
#spring.datasource.druid.pool-prepared-statements=true
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
#spring.datasource.druid.time-between-eviction-runs-millis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
#spring.datasource.druid.min-evictable-idle-time-millis=300000
#配置扩展插件:监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall
#spring.datasource.druid.filters=stat,wall
#spring.datasource.druid.filter.stat.log-slow-sql=true
#spring.datasource.druid.filter.stat.slow-sql-millis=2000
#自定义配置端口号
server.port=8889
#配置项目访问时上下文路径(项目名称)
#server.servlet.context-path=/sbm
#mybatis相关的配置
#实体别名配置 配置上后,以后在mapper文件中的resultType中原来配置的com.guangming.springboot.entity.Dept就可以直接写成dept
mybatis.type-aliases-package=com.guangming.springboot.entity
#mybatis扫描mapper文件的配置
mybatis.mapper-locations=classpath:mapper/*.xml
#静态资源目录配置
spring.resources.static-locations=classpath:/templates/,classpath:/static/,classpath:/resources/