java连接本地oracle数据库_JAVA连接oracle数据库的三种方式
1 传统方式连接数据库(效率较低)
此方法连接数据库,其性能、可靠性与稳定性随着用户访问量的增加逐渐下降,跟踪测试表明,其根本问题与Connection对象的创建有关。不过在这里还是讲一下此方法的实现:添加记录到数据库表中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.1.3:1521:ora92";
String username = "scott";
String password = "tiger";
String sql = "insert into users(username,password) values (?,?)";
try {
Class.forName(driver); //oracle.jdbc.driver.OracleDriver();
Connection conn = DriverManager.getConnection(url, username,password);
PreparedStatement ps = conn.prepareStatement(sql); //Statement stat=conn.createStatement();
ps.setString(1, "张三");
ps.setString(2, "lisi");
ps.executeUpdate();
ps.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
2 使用JDBC数据源连接池方式连接数据库(效率高)
用这种方式连接数据库之前,首先需要配置TOMCAT服务器目录下的文件\tomcat5\conf\context.xml文件:
WEB-INF/web.xml
maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.1.3:1521:ora92"/>
配置完后将oracle驱动程序类classes12.jar拷贝到\tomcat5\common\lib目录下即可。在这里强调一下这个问题,我就是遇到这种问题的,最后就是这样给解决的。之前我用了ojdbc5.jar驱动类文件总是不能够建立连接的,而且出现这样的问题:Cannot create JDBC oracle driver of class '' for connect URL 'jdbc:oracle:thin:@192.168.1.3:1521:ora92'"。希望这篇文章给读者有点启发。我的QQ号码:89262840
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
String sql = "insert into users(username,password) values(?,?)";
String username = request.getParameter("username");
try {
Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracle");
Connection conn=ds.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, StringUtil.filterHtml(username));
ps.setString(2, StringUtil.filterHtml(request.getParameter("password")));
result = ps.executeUpdate();
ps.close();
conn.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
3 使用组件的方式连接数据库
本文主要以Commons DbUtils组件来连接数据库。它将JDBC中的一些类进行了二次封装,它不象hibernate(ORMapping)那样将JAVA对象与数据库映射。首先将oracle驱动类文件与Commons DbUtils组件的JAR文件一起引入到项目中。
String sql = "insert into users(username,password) values(?,?)";
String username = request.getParameter("username");
String param[]={StringUtil.filterHtml(username),StringUtil.filterHtml(request.getParameter("password"))
};
try {
Context initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds");
QueryRunner qr = new QueryRunner(ds);
result = qr.update(sql, param);
} catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }
java连接本地oracle数据库_JAVA连接oracle数据库的三种方式相关推荐
- java数组怎么全部初始化_Java数组初始化,这三种方式有什么区别?
首先因为数组初始化要使用的时候必须确定数组的长度,也就是说数组的长度是不可变的. 在JAVA中创建数组有两种方式 : (1)静态创建 如 Object[] arr1 = {"a", ...
- java类初始数组_java中数组初始化的三种方式是什么
java中数组初始化的三种方式是:1.静态初始化,如[int a[] = {2, 0, 1, 9, 2020}]:2.动态初始化,如[int[] c = new int[4]]:3.默认初始化,如[i ...
- java 时间戳 对比_Java中获取时间戳的三种方式对比实现
Java中获取时间戳 三种方式对比 最近项目开发过程中发现了项目中获取时间戳的业务.而获取时间戳有以下三种方式,首先先声明推荐使用System类来获取时间戳,下面一起看一看三种方式. 1.System ...
- springboot:java实现邮件及附件发送、HTML正文的三种方式(一)【附带源码】
0. 引言 邮件发送是我们日常开发中比较常见的功能,常用于预警信息提醒.统计数据定期发送等需求.一般该方法会由前人封装好,实际开发时只需要调用即可,但具体怎么实现的,如何从零实现邮件发送,这是我们要掌 ...
- 对Java多线程编程的初步了解,实现多线程的三种方式以及多线程并发安全的线程同步机制
什么叫进程?什么叫线程? 进程相当于一个应用程序,线程就是进程中的一个应用场景或者说是一个执行单元,一个进程可以启动多个线程,每个线程执行不同的任务,一个线程不能单独存在,他必须是进程的一部分,当进程 ...
- java json的使用方法_JAVA编写JSON常用的三种方法
JAVA编写JSON常用的三种方法 Szx • 2019 年 11 月 15 日 1.jsonlib需要引入的包也多,代码也相对多一些. 2.Gson:谷歌的 3.FastJson:阿里巴巴的,这几个 ...
- java 数组 源码_Java数组转List的三种方式及对比
来源:https://s.yam.com/6wu6n 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析. 一.最常见方式(未必最佳 ...
- java 如何初始化数组_java中初始化数组的三种方式分别是什么
三种初始化方式: 1.静态初始化:创建+赋值 2.动态初始化:先创建再赋值 3.默认初始化:创建之后若不赋值则会被赋对应数据类型的默认值 (视频教程推荐:java视频) 我们来看一下具体代码:publ ...
- java遍历一个map集合_Java遍历Map集合的四种方式
Map 集合的遍历与 List 和 Set 集合不同.Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历.Map 以及实现 Map 的接口类(如 HashMap.Tr ...
- java中break什么意思_Java中break的第三种用法说明
在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...
最新文章
- python类实例化 输入参数名字 下划线_Python 的类的下划线命名有什么不同?
- sql注入_1-4_post盲注
- Dapr集成之GRPC 接口
- 曝光原理_泰国精戈咖啡效果反馈 作用原理曝光
- C语言为四维数组申请动态内存空间的方法(一)
- h264码流文件通过计算first_mb_in_slice区分帧边界
- 深入理解SpringBoot配置
- (六)Oracle学习笔记—— 约束
- 36. Web 主机托管
- 拓端tecdat|R语言Lee-Carter模型对年死亡率建模预测期望寿命
- 蓝牙协议分析工具Wireshark/Frontline/Ellisys的使用
- Android 最常用的设计模式八 安卓源码分析—工厂方法模式factory
- 如何批量将 jpg 图片转换为 png 格式
- 股权架构设计五大关键要点
- (MATLAB)大家来找茬-简易的彩色图像找不同
- input内加小图标
- Resolver error Error Downloading VS Code Server failed - please install either curl or wget on the
- 【离散数学】1. 数理逻辑
- excel分类汇总多个工作表
- Culture Shock