Java 操作Oracle数据库
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class Operator {
// 定义连接所需的字符串
// 192.168.0.X是本机地址(要改成自己的IP地址),1521端口号,XE是精简版Oracle的默认数据库名
private static String USERNAMR = "C##NVSSMS";
private static String PASSWORD = "111111";
private static String DRVIER = "oracle.jdbc.driver.OracleDriver";
private static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
// 创建一个数据库连接
Connection connection = null;
// 创建预编译语句对象,一般都是用这个而不用Statement
PreparedStatement pstm = null;
// 创建一个结果集对象
ResultSet rs = null;
/**
* 向数据库中增加数据
* 首先获取表内数据总数,总数+1为新增数据的id值
* @param stuName:学生姓名
* @param gender:学生性别,1表示男性,2表示女性
* @param age:学生年龄
* @param address:学生住址
*/
public void AddData(String stuName, int gender, int age, String address) {
connection = getConnection();
// String sql =
// "insert into student values('1','王小军','1','17','北京市和平里七区30号楼7门102')";
String sql = "select count(*) from student where 1 = 1";
String sqlStr = "insert into student values(?,?,?,?,?)";
int count = 0;
try {
// 计算数据库student表中数据总数
pstm = connection.prepareStatement(sql);
rs = pstm.executeQuery();
while (rs.next()) {
count = rs.getInt(1) + 1;
System.out.println(rs.getInt(1));
}
// 执行插入数据操作
pstm = connection.prepareStatement(sqlStr);
pstm.setInt(1, count);
pstm.setString(2, stuName);
pstm.setInt(3, gender);
pstm.setInt(4, age);
pstm.setString(5, address);
pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ReleaseResource();
}
}
/**
* 向数据库中删除数据
* @param stuName:根据姓名删除数据
*/
public void DeleteData(String stuName) {
connection = getConnection();
String sqlStr = "delete from student where stu_name=?";
System.out.println(stuName);
try {
// 执行删除数据操作
pstm = connection.prepareStatement(sqlStr);
pstm.setString(1, stuName);
pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ReleaseResource();
}
}
/**
* 删除表
* @param stuName:表名称
*/
public void DeleteTable(String name) {
connection = getConnection();
String sqlStr = "DROP TABLE "+name;
try {
// 执行删除数据操作
pstm = connection.prepareStatement(sqlStr);
pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ReleaseResource();
}
}
/**
* 向数据库中修改数据
* @param stuName:学生姓名,根据此值查询要修改的某行值
* @param gender
* @param age
* @param address
*/
public void UpdateData(String stuName, int gender, int age, String address) {
connection = getConnection();
String sql = "select id from student where 1 = 1 and stu_name = ?";
String sqlStr = "update student set stu_name=?,gender=?,age=?,address=? where id=?";
int count = 0;
try {
// 计算数据库student表中数据总数
pstm = connection.prepareStatement(sql);
pstm.setString(1, stuName);
rs = pstm.executeQuery();
while (rs.next()) {
count = rs.getInt(1);
System.out.println(rs.getInt(1));
}
// 执行插入数据操作
pstm = connection.prepareStatement(sqlStr);
pstm.setString(1, stuName);
pstm.setInt(2, gender);
pstm.setInt(3, age);
pstm.setString(4, address);
pstm.setInt(5, count);
pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ReleaseResource();
}
}
/**
* 向数据库中查询数据
*/
public void SelectData(String sql, String path) {
connection = getConnection();
try {
pstm = connection.prepareStatement(sql);
rs = pstm.executeQuery();
ExcelOperate.writeExcel(rs, path);
} catch (SQLException e) {
e.printStackTrace();
} finally {
ReleaseResource();
}
}
/**
* 使用ResultSetMetaData计算列数
*/
public void SelectData2() {
connection = getConnection();
String sql = "select * from employees where 1 = 1";
int count = 0;
try {
pstm = connection.prepareStatement(sql);
rs = pstm.executeQuery();
while (rs.next()) {
count++;
}
ResultSetMetaData rsmd = rs.getMetaData();
int cols_len = rsmd.getColumnCount();
System.out.println("count=" + count + "\tcols_len=" + cols_len);
} catch (SQLException e) {
e.printStackTrace();
} finally {
ReleaseResource();
}
}
/**
* 获取Connection对象
*
* @return
*/
public Connection getConnection() {
try {
Class.forName(DRVIER);
connection = DriverManager.getConnection(URL, USERNAMR, PASSWORD);
System.out.println("成功连接数据库");
} catch (ClassNotFoundException e) {
throw new RuntimeException("class not find !", e);
} catch (SQLException e) {
throw new RuntimeException("get connection error!", e);
}
return connection;
}
/**
* 释放资源
*/
public void ReleaseResource() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstm != null) {
try {
pstm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
转载自:
http://blog.csdn.net/dopamy_busymonkey/article/details/72459529
Java 操作Oracle数据库的更多相关文章
- Java操作Oracle数据库以及调用存储过程
操作Oracle数据库 publicclass DBConnection { //jdbc:oracle:thin:@localhost:1521:orcl publicstaticf ...
- JAVA操作ORACLE数据库的存储过程
一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...
- JAVA操作Oracle数据库中的事务
实验1: create table yggz(code int, salary number(7,2)); insert into yggz values(1, 1000); insert into ...
- Java java jdbc thin远程连接并操作Oracle数据库
JAVA jdbc thin远程连接并操作Oracle数据库 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 编码工具:Eclipse 编码平台:W ...
- loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...
- Java操作Oracle
public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...
- Java读取oracle数据库中blob字段数据文件保存到本地文件(转载)
转自:https://www.cnblogs.com/forever2698/p/4747349.html package com.bo.test; import java.io.FileOutput ...
- dos命令行连接操作ORACLE数据库
C:\Adminstrator> sqlplus "/as sysdba" 查看是否连接到数据库 SQL> select status from v$instance; ...
- .Net Core API使用ODP.NET操作Oracle数据库
.Net Core API使用ODP.NET操作Oracle数据库 1.下载Oracle.ManagerDataAccess.Core. 右键依赖项——管理NuGet程序包. 在浏览选项中查询Orac ...
随机推荐
- Java学习日报7.9
今日内容 阅读了构建之法第一章 工程师的宗旨:我构建,故我在. 哲学家的宗旨:我思,故我在. 科学家的宗旨:我发现故我在. 明天继续研究构建之法这本书!
- 5.从零开始创建一个QT窗口按钮
如何创建一个QT项目 如何创建一个QT项目 1.创建新项目 2.配置选择 3.增加按钮 4.按钮和窗体的大小标签图标设置 5.信号与槽 6.自定义信号与槽 代码 1.创建新项目 点击文件->新建 ...
- 如何快速学会git
相信大多数入门者都对git的原理比较恍惚,今天我们来告诉大家如何快速学会git命令. 1.git init 这个命令会在当前目录里创建一个.git目录,也就是初始化本地仓库.git. 如图先创建文件夹 ...
- 11. const 修饰成员函数
const 限定只读,对函数的实参进行保护 常数据成员:必须出现在类的定义体中,常数据成员必须进行初始化,并且不能被更新,但常数据成员的初始化只能通过构造函数的初始化列表进行 1. 常函数 成员函数加 ...
- 文档驱动开发模式在 AIMS 中的应用与实践
摘要:程序员常会说:我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有一个很老的梗: 我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有这种想法的程序员应该算是一个老鸟了,对于大多 ...
- flask socketio 踩坑记录
在使用python3的flask-socketio+socket.io.js的时候报错 在使用python3的flask-socketio+socket.io.js的时候报错"unsuppo ...
- oracle 常用指令(持续更新中....)
1. 查看所有表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_nam ...
- pthread 读写锁
pthread 读写锁 (Read Write Lock, rwlock) 把对共享资源的访问者分为读者和写者,读者仅仅对共享资源进行读访问,写者仅仅对共享资源进行写操作. 如果使用互斥量 mutex ...
- 【Oracle】dump函数用法
Oracle dump函数的用法 一.函数标准格式: DUMP(expr[,return_fmt[,start_position][,length]]) 基本参数时4个,最少可以填的参数是0个.当完全 ...
- 企业项目迁移go-zero全攻略(一)
作者:Mikael 最近发现 golang 社区里出了一个新兴的微服务框架.看了一下官方提供的工具真的很好用,只需要定义好 .api 文件模版代码都可以一键生成,只需要关心业务:同时 core 中的工 ...