全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java连接Oracle数据库的方法解析

Oracle数据库先创建一个表和添加一些数据

1.先在Oracle数据库中创建一个student表:

create table student
(
 id number(11) not null primary key,
 stu_name varchar(16) not null,
 gender number(11) default null,
 age number(11) default null,
 address varchar(128) default null
);

2.向表中增添一些数据

insert into student values('1','王小军','1','17','北京市和平里七区30号楼7门102')

MyEclipse里编写java代码

1.将ojdbc6.jar导入项目中

   先创建一个项目,然后在鼠标移到项目上右键-->new-->folder;folder name:lib;这样就在项目中创建了一个文件夹lib;然后将ojdbc6.jar包导入该文件夹中

   该包下载地址链接:http://wd.:81//201612/yuanma/ojdbc6_jb51.rar

   鼠标移到该包上;右键-->build path-->add to build path;

2.创建一个类,开始编码

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 OperateOracle {
 // 定义连接所需的字符串
 // 192.168.0.X是本机地址(要改成自己的IP地址),1521端口号,XE是精简版Oracle的默认数据库名
 private static String USERNAMR = "orcl";
 private static String PASSWORD = "orcl";
 private static String DRVIER = "oracle.jdbc.OracleDriver";
 private static String URL = "jdbc:oracle:thin:@192.168.0.X:1521:xe";
 // 创建一个数据库连接
 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:学生姓名,根据此值查询要修改的某行值
 * @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() {
 connection = getConnection();
 String sql = "select * from student where 1 = 1";
 try {
 pstm = connection.prepareStatement(sql);
 rs = pstm.executeQuery();
 while (rs.next()) {
 String id = rs.getString("id");
 String name = rs.getString("stu_name");
 String gender = rs.getString("gender");
 String age = rs.getString("age");
 String address = rs.getString("address");
 System.out.println(id + "\t" + name + "\t" + gender + "\t"
 + age + "\t" + address);
 }
 } 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();
 }
 }
 }
}

正如测试类中所注释的,此处只可按照正确的方式去连接Oracle数据库,操作增删改查操作,但是对于一些错误操作的处理机制还不够完善。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# java Oracle数据库  # 创建一个  # 数据库中  # 鼠标  # 右键  # 北京市  # 移到  # 自己的  # 都是  # 和平里  # 就在  # 下载地址  # 所需  # 还不够  # 本机  # 先在  # 该文件  # 精简版  # 类中  # 端口号  # 包上 


相关文章: css网站制作参考文献有哪些,易聊怎么注册?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  香港服务器网站卡顿?如何解决网络延迟与负载问题?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  北京企业网站设计制作公司,北京铁路集团官方网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  PHP正则匹配日期和时间(时间戳转换)的实例代码  贸易公司网站制作流程,出口贸易网站设计怎么做?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  代刷网站制作软件,别人代刷火车票靠谱吗?  常州企业网站制作公司,全国继续教育网怎么登录?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机解析:虚拟主机配置与服务器选择指南  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何基于云服务器快速搭建网站及云盘系统?  简历在线制作网站免费版,如何创建个人简历?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何在阿里云域名上完成建站全流程?  如何在企业微信快速生成手机电脑官网?  怀化网站制作公司,怀化新生儿上户网上办理流程?  建站上市公司网站建设方案与SEO优化服务定制指南  如何破解联通资金短缺导致的基站建设难题?  建站之星免费版是否永久可用?  如何在万网主机上快速搭建网站?  如何快速上传建站程序避免常见错误?  建站之星如何助力网站排名飙升?揭秘高效技巧  建站之星展会模板:智能建站与自助搭建高效解决方案  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  如何通过免费商城建站系统源码自定义网站主题与功能?  建站之星多图banner生成与模板自定义指南  b2c电商网站制作流程,b2c水平综合的电商平台?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  建站主机服务器选购指南:轻量应用与VPS配置解析  学校免费自助建站系统:智能生成+拖拽设计+多端适配  建站之星代理如何获取技术支持?  如何高效生成建站之星成品网站源码?  宝塔建站无法访问?如何排查配置与端口问题?  教学网站制作软件,学习*后期制作的网站有哪些?  ,柠檬视频怎样兑换vip?  建站168自助建站系统:快速模板定制与SEO优化指南  建站之星导航菜单设置与功能模块配置全攻略  建站之星价格显示格式升级,你的预算足够吗?  如何通过虚拟主机快速完成网站搭建?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  制作销售网站教学视频,销售网站有哪些?  网页设计与网站制作内容,怎样注册网站?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何高效完成自助建站业务培训? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。