在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. jmeter响应代码为乱码

    1.在请求的前面添加BeanShell PostProcessor 输入prev.setDataEncoding("UTF-8"); 2.当响应数据或响应页面没有设置编码时,jme ...

  2. javax.websocket.Session的一个close异常记录

    一刷新页面就报错如下: Connection closed 四月 10, 2018 11:20:18 上午 org.apache.tomcat.websocket.pojo.PojoEndpointB ...

  3. JQuery---高级选择器

    一.派生选择器 例如:$('#bavBar  a') 二.孩子选择器 例如:$('body > p') 三.相邻兄弟选择器 例如:$('h2 + div') 四.属性选择器 1.$('img[a ...

  4. 数据采集之js埋点

    一.后台nginx环境搭建 web点数据采集后台配置nginx:https://blog.csdn.net/weixin_37490221/article/details/80894827 下载数据源 ...

  5. Laravel根据Ip获取国家,城市信息

    https://blog.csdn.net/zhezhebie/article/details/79097133 1.安装: composer require geoip2/geoip2:~2.0 2 ...

  6. 数据存储在哪里? Java是值传递还是引用传递?

    寄存器 : 最快的存储区,位于处理器中,寄存器会按需求自行分配空间,java不能控制寄存器,所以在程序中感觉不到它的存在 栈(stack) : 位于RAM(内存)中,速度仅次于寄存器,存储对象的引用( ...

  7. 深入Java线程管理(三):线程同步

    一. 引入同步: 有一个很经典的案例,即银行取款问题.我们可以先看下银行取款的基本流程: 1)用户输入账户.密码,系统判断用户的账户.密码是否匹配. 2)用户输入取款金额. 3)系统判断账户金额是否大 ...

  8. HDU 1596 也是最小路径Dijkstra

    #include<cstdio> #include<cmath> #include<cstring> +; double dist[qq]; double city ...

  9. js基础-原型

    1.定义:我们创建的函数都有一个prototype(原型)属性,该属性是一个对象,          原型模式声明中多了两个属性(自动生成). 构造函数:       function Box(nam ...

  10. Redux action 状态

    action  不同的状态,设置不同的action.type [就是一个名字],返回对应的数据 不同的状态返回不同的  接口数据