在src下创建properties文件

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@//127.0.0.1:1521/XE
username=scott
password=123456

package util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; public class JDBCUitl {
private static String driver;
private static String url;
private static String username;
private static String password; static {
// 创建properties对象获取文件
Properties ps = new Properties();
// 获取流对象
InputStream is = JDBCUitl.class.getResourceAsStream("/driver.properties");
try {
// 加载文件
ps.load(is);
driver = ps.getProperty("driver");
url = ps.getProperty("url");
username = ps.getProperty("username");
password = ps.getProperty("password");
// 加载驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* 获取链接对象
*
* @return conn
*/
public static Connection getConnection() {
Connection conn = null;
try {
conn=DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} /**
* 创建链接对象
*
* @param conn
* @param sql
* @return ps
*/
public static PreparedStatement getPreparedStatement(Connection conn, String sql) {
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps; } /**
* 增刪改通用语句
*
* @param sql
* @param objs
* @return i
*/
public static int executeDML(String sql, Object... objs) {
Connection conn = getConnection();
PreparedStatement ps = getPreparedStatement(conn, sql);
try {
conn.setAutoCommit(false);
for (int i = 0; i < objs.length; i++) {
ps.setObject(i + 1, objs[i]);
}
int i = ps.executeUpdate();
conn.commit();
return i;
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return -1;
} public void allClose(ResultSet rs, PreparedStatement ps, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
} try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
} }
}

  

package daoImp;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import dao.EmpDao;
import pojo.Emp;
import util.JDBCUitl; public class EmpDaoImp implements EmpDao {
/**
* 实现查询所有用户信息
*/
@Override
public ArrayList<Emp> selAllEmpInfo() {
String sql = "select * from empe";
Connection conn = JDBCUitl.getConnection();
PreparedStatement ps = JDBCUitl.getPreparedStatement(conn, sql);
ArrayList<Emp> empList = new ArrayList<Emp>();
try {
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Emp e = new Emp();
e.setEmpId(rs.getInt("empid"));
e.setName(rs.getString("ename"));
e.setEmoney(rs.getInt("emoney"));
e.setEqq(rs.getString("eqq"));
empList.add(e);
}
} catch (SQLException e) {
e.printStackTrace();
}
return empList;
} /**
* 根据id查询用户信息
*/
@Override
public Emp selEmpByEmpId(int empId) {
String sql = "select * from empe where empid=?";
Connection conn = JDBCUitl.getConnection();
PreparedStatement ps = JDBCUitl.getPreparedStatement(conn, sql);
Emp emp = null;
try {
ps.setInt(1, empId);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
emp = new Emp();
emp.setEmpId(rs.getInt("empid"));
emp.setName(rs.getString("ename"));
emp.setEmoney(rs.getInt("emoney"));
emp.setEqq(rs.getString("eqq"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return emp;
} /**
* 添加用户信息
*/
@Override
public int insEmpInfo(int empId, String ename, int emoney, String eqq) {
String sql = "insert into empe values(?,?,?,?)";
int i = JDBCUitl.executeDML(sql, empId, ename, emoney, eqq);
return i;
} /**
* 根据用户id更改姓名
*/
@Override
public int upEmpByEmpId(String newName, int empId) {
String sql = "update empe set ename=? where empid=?";
int i = JDBCUitl.executeDML(sql, newName, empId);
return i;
} /**
* 根据id删除用户信息
*/
@Override
public int delEmpByEmpId(int empId) {
String sql = "delete from empe where empid=?";
int i = JDBCUitl.executeDML(sql, empId);
return i;
} }

  

jdbc链接Oracle数据库的封装的更多相关文章

  1. Java JDBC链接Oracle数据库

    package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...

  2. JDBC链接oracle数据库

    package test; import java.sql.* ; public class JDBC_Test { //orcl为oracle数据库中的数据库名,localhost表示连接本机的or ...

  3. JDBC连接Oracle数据库的问题

    场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...

  4. Oracle 远程链接oracle数据库服务器的配置

    远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...

  5. 链接oracle数据库 生成表对应的javabean

    package com.databi.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...

  6. 历尽磨难之PL/SQL链接Oracle数据库

    说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...

  7. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  8. 用JDBC访问ORACLE数据库 关于commit 增快效率 大数据 等的整理

    1.问:用JDBC访问ORACLE数据库,做DELETE操作,能用JAVA多线程实现吗? ORACLE服务器要怎么配?(以下答案来自网络,仅供参考) 答: Oracle有自己的锁机制.就算你开100条 ...

  9. 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

    用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...

随机推荐

  1. css的两栏布局

    经典的实现左边固定宽度,右边宽度自适应的几种方法 利用float和margin-left属性(margin-left的值可以稍稍大于或者等于.left的宽度) .left{ width: 30px; ...

  2. Kubernetes1.4新特性前瞻:设置JOB执行计划

    (一)  核心概念 Kubernetes在新版中会新增了一个设置JOB执行计划的功能,在1.3中已经可以初见端倪了,从进度上来看会在1.4版本中进行发布,下面我们先睹为快. Kubernetes通过这 ...

  3. Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(1)

    研究这个问题的初衷在于项目中碰到了一个问题:横屏的时候灭屏再亮屏,亮屏的时候用户能够清晰的看到先启动竖屏(过程1)再切换到横屏的过程,因为灭屏的时候onSaveInstanceState()保存的时横 ...

  4. Java练习 SDUT-1149_计算题

    计算题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的计算,你需要计算f(m,n),其定义如下: 当m=1时 ...

  5. oracle使用日期

    当使用日期是,需要注意如果有超过5位小数加到日期上, 这个日期会进到下一天! 例如: 1. SELECT TO_DATE(‘01-JAN-93’+.99999) FROM DUAL; Returns: ...

  6. 禁用GPU版本TensorFlow,切换到CPU版本TensorFlow。

    #禁用gpu版本TensorFlow,因为CUDA号码从0开始,这里直接让CUDA使用-1的GPU,自然就无法使用gpu了. 代码前面加入: import osos.environ["CUD ...

  7. hdu 2126 Buy the souvenirs(记录总方案数的01背包)

    Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. mysql-python安装

    操作系统:ubuntu16.04-gnome 首先要安装mysql数据 sudo apt install mysql-server 我们使用pip进行安装第三方模块 系统python版本为2.7.12 ...

  9. 2018-8-10-win10-uwp-获得元素绝对坐标

    title author date CreateTime categories win10 uwp 获得元素绝对坐标 lindexi 2018-08-10 19:16:51 +0800 2018-2- ...

  10. H3C PPP协议的组成