JDBC连接MySQL与Oracle
JDBC连接MySQL 、JDBC连接Oracle (跳转)
JDBC连接MySQL
import org.junit.Test; import java.sql.*; /**
* JDBC连接MySQL
*/
public class JDBCConnMysql {
/**
* 连接驱动
*/
public static final String DRIVER = "com.mysql.jdbc.Driver"; /**
* 连接数据库URL
* 旧版本5.7以下: jdbc:mysql://127.0.0.1:3306/<database>?useUnicode=true&characterEnocding=utf-8
* 5.7-6版本: jdbc:mysql://127.0.0.1:3306/<database>?useUnicode=true&characterEnocding=utf-8&useSSL=false
* 6版本以上:jdbc:mysql://127.0.0.1:3306/<database>?useUnicode=true&characterEnocding=utf-8&useSSL=false&serverTimezone=UTC
*/
public static final String CONNECT_URL = "jdbc:mysql://<host>:<port>/<database>?useUnicode=true&characterEnocding=utf-8&useSSL=false"; /**
* 连接用户名
*/
public static final String USERNAME = "<username>"; /**
* 连接密码
*/
public static final String PASSWORD = "<password>"; /**
* 查询sql语句
*/
private static String SQL = null; /**
* 创建一个数据库连接
*/
Connection connection = null; /**
* 创建预编译语句对象
*/
PreparedStatement preparedStatement = null; CallableStatement callableStatement = null; /**
* 创建一个结果集对象
*/
ResultSet resultSet = null; /**
* 查询数据
*/
@Test
public void queryAll() {
try {
// 1.加载驱动进入内存
Class.forName(DRIVER);
// 2.连接数据库
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
// 3.执行sql语句:可以有效防止两次执行同一sql,提高性能
SQL = "select * from <table>";
preparedStatement = connection.prepareStatement(SQL);
// 4.遍历数据
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + "\t" + resultSet.getString(2));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 增加数据
*/
@Test
public void add() {
try {
// 1.加载驱动进入内存
Class.forName(DRIVER);
// 2.连接数据库
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
// 3.执行sql语句:可以有效防止两次执行同一sql,提高性能
SQL = "insert into <table>(<column1>,<column2>) values(?,?)";
preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setInt(1, <xxx>);
preparedStatement.setString(2, "<xxx>");
// 4.增加数据
preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 删除数据
*/
@Test
public void del() {
try {
// 1.加载驱动进入内存
Class.forName(DRIVER);
// 2.连接数据库
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
// 3.执行sql语句:可以有效防止两次执行同一sql,提高性能
SQL = "delete from <table> where <row> = ?";
preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setInt(1, <xxx>);
// 4.删除数据
preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 更改数据
*/
@Test
public void update() {
try {
// 1.加载驱动进入内存
Class.forName(DRIVER);
// 2.连接数据库
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
// 3.执行sql语句:可以有效防止两次执行同一sql,提高性能
preparedStatement = connection.prepareStatement("update <table> set <column> = ? where <row> = ?");
preparedStatement.setString(1, "<xxx>");
preparedStatement.setInt(2, <xxx>);
// 4.更改数据
preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 执行存储过程
*/
@Test
public void executeProcedure() {
try {
// 1.加载驱动进入内存
Class.forName(DRIVER);
// 2.连接数据库
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
// 3.执行sql语句:可以有效防止两次执行同一sql,提高性能
SQL = "{call <procedure>(?,?)}";
callableStatement = connection.prepareCall(SQL);
callableStatement.setInt(1, <xxx>);// 输入参数
callableStatement.registerOutParameter(2, JDBCType.FLOAT);// 输出参数
// 4.执行存储过程
boolean flag = callableStatement.execute();// 是否有结果集
while (flag) {
System.out.println("总计:" + callableStatement.getFloat(2));// 取得输出参数
resultSet = callableStatement.getResultSet();// 取得查询结果集
while (resultSet.next()) {
System.out.println(resultSet.getInt("<columnlabel>") + "\t" + resultSet.getFloat("<columnlabel>"));
}
flag = callableStatement.getMoreResults();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (callableStatement != null) {
try {
callableStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 执行函数
*/
@Test
public void executeFunction() {
try {
// 1.加载驱动进入内存
Class.forName(DRIVER);
// 2.连接数据库
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
// 3.执行sql语句:可以有效防止两次执行同一sql,提高性能
SQL = "{?=call <function>(?)}";
callableStatement = connection.prepareCall(SQL);
callableStatement.registerOutParameter(1, JDBCType.FLOAT);// 输出参数
callableStatement.setInt(2, <xxx>);// 输入参数
// 4.执行函数
callableStatement.execute();
System.out.println("总计:" + callableStatement.getFloat(1));// 取得输出参数
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭
if (callableStatement != null) {
try {
callableStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
JDBC连接Oracle
package com.qushihan.JDBC; import oracle.jdbc.OracleTypes;
import org.junit.Test; import java.sql.*; /**
* JDBC连接Oracle
*/
public class JDBCConnOracle {
/**
* 连接驱动
*/
private static final String DRIVER = "oracle.jdbc.OracleDriver"; /**
* 连接数据库URL
*/
private static final String CONNECT_URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; /**
* 连接用户名
*/
private static final String USERNAME = "scott"; /**
* 连接密码
*/
private static final String PASSWORD = "tiger"; /**
* 查询sql语句
*/
private static String SQL = null; /**
* 创建一个数据库连接
*/
Connection connection = null; /**
* 创建预编译语句对象
*/
PreparedStatement preparedStatement = null; CallableStatement callableStatement = null; /**
* 创建一个结果集对象
*/
ResultSet resultSet = null; /**
* 增加数据
*/
@Test
public void add() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
SQL = "INSERT INTO student(id, name, age) VALUES (?,?,?)";
preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setInt(1, 4);
preparedStatement.setString(2, "rose");
preparedStatement.setInt(3, 21);
preparedStatement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 删除数据
*/
@Test
public void del() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
SQL = "DELETE student where NAME = ?";
preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setString(1, "rose");
preparedStatement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 修改数据
*/
@Test
public void update() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
SQL = "UPDATE student SET age = ? WHERE id = ?";
preparedStatement = connection.prepareStatement(SQL);
preparedStatement.setInt(1, 22);
preparedStatement.setInt(2, 4);
preparedStatement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 查询数据
*/
@Test
public void queryAll() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
SQL = "SELECT * FROM student";
preparedStatement = connection.prepareStatement(SQL);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + "\t" + resultSet.getString("name") + "\t" + resultSet.getInt("age"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 准备要执行的存储过程
* CREATE OR REPLACE PROCEDURE GET_AGE_BY_NAME(
* V_NAME IN STUDENT.NAME%TYPE,
* V_AGE OUT STUDENT.AGE%TYPE
* )
* IS
* BEGIN
* SELECT AGE INTO V_AGE
* FROM STUDENT
* WHERE NAME = V_NAME;
* END;
*/
@Test
public void executeProcedure() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
SQL = "{CALL GET_AGE_BY_NAME(?, ?)}";
callableStatement = connection.prepareCall(SQL);
callableStatement.setString(1,"mike");
callableStatement.registerOutParameter(2, OracleTypes.NUMBER);
callableStatement.execute();
int age = callableStatement.getInt(2);
System.out.println("mike年龄为:" + age + "岁");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (callableStatement != null) {
try {
callableStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} /**
* 准备执行的存储函数
* CREATE OR REPLACE FUNCTION COMPUTE_AVERAGE_AGE
* RETURN NUMBER
* AS
* V_SUM NUMBER := 0;
* V_COUNT BINARY_INTEGER := 0;
* CURSOR C IS
* SELECT * FROM STUDENT;
* BEGIN
* FOR V_STUDENT IN C LOOP
* V_SUM := V_SUM+V_STUDENT.AGE;
* V_COUNT := V_COUNT + 1;
* END LOOP;
* RETURN V_SUM/V_COUNT;
* END;
*/
@Test
public void executeFunction() {
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(CONNECT_URL, USERNAME, PASSWORD);
SQL = "{?=call COMPUTE_AVERAGE_AGE()}";
callableStatement = connection.prepareCall(SQL);
callableStatement.registerOutParameter(1, OracleTypes.DOUBLE);
callableStatement.execute();
double average_age = callableStatement.getDouble(1);
System.out.println("平均年龄为:" + average_age + "岁");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (callableStatement != null) {
try {
callableStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
JDBC连接MySQL与Oracle的更多相关文章
- JDBC连接MySQL、Oracle和SQL server的配置
什么是JDBC 我们可以将JDBC看作是一组用于用JAVA操作数据库的API,通过这个API接口,可以连接到数据库,并且使用结构化查询语言(SQL)完成对数据库的查找,更新等操作. JDBC连接的流程 ...
- JDBC连接各种数据库的方法,连接MySql,Oracle数据库
JDBC连接各种数据库的方法: JDBC编程步骤: 1.导入jar包 2.注册驱动 3.获取数据库连接对象 4.定义SQL语句 5.获得执行SQL语句对象statemnet 6.执行SQL语句 7.处 ...
- JDBC 连接Oracle 数据库,JDBC 连接Mysql 数据库
首先是JDBC 连接Oracle 数据库 package com.util; import com.pojo.UserInfo; import java.sql.*; public class DB ...
- JDBC连接MySQL 方法 实例及资料收集
JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一 ...
- Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
Jsp 环境目前最流行的是 Tomcat5.0.Tomcat5.0 自己包含一个 Web 服务器,如果是测试,就没必要把 Tomcat 与 IIS 或 Apache 集成起来.在 Tomcat 自带的 ...
- 修改sqlarchemy源码使其支持jdbc连接mysql
注意:本文不会将所有完整源码贴出,只是将具体的思路以及部分源码贴出,需要感兴趣的读者自己实验然后实现吆. 缘起 公司最近的项目需要将之前的部分业务的数据库连接方式改为jdbc,但由于之前的项目都使用s ...
- Java编程学习之JDBC连接MySQL
JDBC连接MySQL 一.对JDBC连接数据库的步骤1.加载数据库驱动//加载驱动Class.forName(driverClass)-------------------------------- ...
随机推荐
- 每天进步一点点——mysql——mysqlbinlog
一. 简单介绍 mysqlbinlog:用于查看server生成的二进制日志的工具. 二. 命令格式 mysqlbinlog 选项日志文件1 三. 经常使用參数 ...
- SQL递归方式实现省市区县级别查询
数据库脚本 CREATE TABLE [dbo].[Std_Area]( [Id] [int] NOT NULL, [Name] [nvarchar](50) NULL, [ParentId] [in ...
- 看雪CTF第八题
IDA查看Exports有3个TlsCallback 只有TlsCallback_2有用 其中创建6个线程用于代码动态解码smc 只有前三个线程有用 分别对check_part1,check_part ...
- Build GMP on 64bit Windows
1.MSYS2 环境搭建 1.1.安装 msys2 的主页地址: http://www.msys2.org/ 下载32位或64位,我这里 下载了64位 msys2-x86_64-20161025.ex ...
- jqweui 关于$(document.body).infinite的bug
jqweui,0.8.2版本infinite存在bug,会存在下拉不触发的情况,解决办法: 源代码3730行附近 Infinite.prototype.scroll = function() { va ...
- halcon 创建region的最大尺寸问题
gen_region 之类的创建region 之前需要提前设置region的最大尺寸,设置方法如下: set_system('width',2000)set_system('height',2000) ...
- Direct3D 11 Tutorial 2: Rendering a Triangle_Direct3D 11 教程2:渲染一个三角形
概要 在之前的教程中,我们建立了一个最小的Direct3D 11的应用程序,它用来在窗口上输出一个单一颜色.在本次教程中,我们将扩展这个应用程序,在屏幕上渲染出一个单一颜色的三角形.我们将通过设置数据 ...
- C#项目”XXXXX”针对的是”.NETFramework,Version=v4.7.1”但此计算机没有安装它
遇到这样一个问题:C#项目”XXXXX”针对的是”.NETFramework,Version=v4.7.1”但此计算机没有安装它 就是我在打开别人的项目,发现别人的项目.Net Framework的版 ...
- TCP相关面试题(转)
1.TCP三次握手过程 wireshark抓包为:(wireshark会将seq序号和ACK自动显示为相对值) 1)主机A发送标志syn=1,随机产生seq =1234567的数据包到服务 ...
- ArcGIS删除数据异常崩溃
环境 ArcGIS Desktop10.1,ArcSDE10.1,Oracle 11.2.0.4客户端和服务器端(服务器端搭建RAC集群) 问题描述 在使用ArcCatalog连接数据库进行数据删除时 ...