Java连接MySQL数据库和Oracle数据库并进行简单的SQL操作的一次尝试
MySQL和Oracle的JDBC的maven dependency如下:
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
<!-- oracle -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
由于Oracle授权问题,Maven不提供Oracle JDBC driver,maven添加oracle jdbc依赖的方法见:http://www.cnblogs.com/wuyouwulv/p/maven_configure_oracle_jdbc.html
代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date; public class SQLTest { private static String APPENDED_DB_INFO = "?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai"; public static Connection getMySQLConnection(String dbUrl, String dbUser, String dbPwd) throws ClassNotFoundException, SQLException {
// 加载驱动器,下面的代码为加载MySQL驱动器
Class.forName("com.mysql.jdbc.Driver");
// 注册MySQL驱动器
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 建立数据库连接
return java.sql.DriverManager.getConnection(dbUrl, dbUser, dbPwd);
} public static Connection getOracleConnection(String dbUrl, String dbUser, String dbPwd) throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.driver.OracleDriver");
return java.sql.DriverManager.getConnection(dbUrl, dbUser, dbPwd);
} public static void main(String[] args) {
String dbUrl = "jdbc:mysql://host:port/dbname" + APPENDED_DB_INFO;
String dbUser = "mysql_username";
String dbPwd = "mysql_password";
Statement stmt = null;
ResultSet rs = null; // 连接MySQL数据库
try {
Connection con = getMySQLConnection(dbUrl, dbUser, dbPwd);
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT id,age,date FROM user"); while(rs.next()) {
int product_id = rs.getInt(1);
int categories_id = rs.getInt(2);
Date date_added = rs.getDate(3); System.out.println(product_id + "," + categories_id + "," + date_added);
} } catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} // 连接Oracle数据库
dbUrl = "jdbc:oracle:thin:@host:port:dbname";
dbUser = "oracle_username";
dbPwd = "oracle_password"; try {
Connection con = getOracleConnection(dbUrl, dbUser, dbPwd);
stmt = con.createStatement();
String sql = "select name id from user";
rs = stmt.executeQuery(sql); while(rs.next()){
String res = rs.getString(1);
System.out.println(res);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Java连接MySQL数据库和Oracle数据库并进行简单的SQL操作的一次尝试的更多相关文章
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- 【JDBC】Java 连接 MySQL 基本过程以及封装数据库工具类
一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- 转载:Java连接MySQL 数据库的正确操作流程
转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- Java 连接 MySQL 数据库
最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...
- java连接MySql数据库 zeroDateTimeBehavior
JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常, 就是所见的:java.sql.SQLException: Cannot convert va ...
- MySQL学习(一)——Java连接MySql数据库
MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...
随机推荐
- Gruntjs提高生产力(一)
gruntjs是一个基于nodejs的自动化工具,只要熟悉nodejs或者又一定js经验就可以熟练应用. 1. 安装 a. 保证已安装了nodejs,并带有npm b.安装客户端命令行工具,grunt ...
- 实现Callable接口创建线程
创建执行线程有四种方式: 实现implements接口创建线程 继承Thread类创建线程 实现Callable接口,通过FutureTask包装器来创建线程 使用线程池创建线程 下面介绍通过实现Ca ...
- ASP.NET经典权限解决方案,适用于OA、CRM、ERP、HR等应用系统
经典权限解决方案 1.权限简介 一般的管理系统都需要对用户的操作进行一定的限制,有的用户可以有许多操作,有的则有少量的操作.这样就需要一个授权机制,基于角色的授权机制描述了某个角色拥有一定数量的操作授 ...
- .NET中使用Redis:http://www.cnblogs.com/yangecnu/p/Introduct-Redis-in-DotNET.html
.NET中使用Redis Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http: ...
- location.host 与 location.hostname 的区别
JavaScript 中,大多数情况下,我们不会发现 location.host 与 location.hostname 的区别,因为大多数情况下,我们的网页用的是 80 端口. 他们的区别: loc ...
- Win10安装Ubuntu16.04 双系统
Tips: 双系统Ubuntu可以使用机器的GPU硬件,虚拟机不可以 压缩卷留的空间尽量大一点,不要相信50G够用 选UEFI,并关闭 Secure Boot,不要选 Legacy 选UEFI,就要在 ...
- vue之全局守卫
Vue的路由守卫是什么东西呢? 第一次接触很懵逼,知道自己遇到了这样一个需求, 在页面之间进行路由跳转时,需要进行一个判断,如果下一个页面是需要登录后才能进入的页面,那么就需要在点击进入该页面的时候进 ...
- native 方法列表说明
方法列表说明 关于static const JNINativeMethod method_table[]方法列表的原型如下: typedef struct { const char* name; co ...
- Linux 用C语言实现简单的shell(2)
不知不觉两周没有发文了,因为“一万美金的福特奖学金答辩”,ACM比赛,网络论文阅读和网络大作业一大堆事把时间冲散了,所以先写一篇博文补上之前一坑. 之前发了一篇关于linux 用C语言实现简单shel ...
- HDU3555 Bomb 数位DP第一题
The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the ti ...