jdbc链接Oracle数据库的封装
在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数据库的封装的更多相关文章
- Java JDBC链接Oracle数据库
package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...
- JDBC链接oracle数据库
package test; import java.sql.* ; public class JDBC_Test { //orcl为oracle数据库中的数据库名,localhost表示连接本机的or ...
- JDBC连接Oracle数据库的问题
场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...
- Oracle 远程链接oracle数据库服务器的配置
远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...
- 链接oracle数据库 生成表对应的javabean
package com.databi.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...
- 历尽磨难之PL/SQL链接Oracle数据库
说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- 用JDBC访问ORACLE数据库 关于commit 增快效率 大数据 等的整理
1.问:用JDBC访问ORACLE数据库,做DELETE操作,能用JAVA多线程实现吗? ORACLE服务器要怎么配?(以下答案来自网络,仅供参考) 答: Oracle有自己的锁机制.就算你开100条 ...
- 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...
随机推荐
- Vue CLI图形化创建项目
- JavaScript for循环 while循环
循环可以将代码块执行指定的次数. JavaScript 循环 如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的. 我们可以这样输出数组的值: 一般写法: documen ...
- oracle函数 ROWIDTOCHAR(rowid)
[功能]转换rowid值为varchar2类型 [参数]rowid,固定参数 [返回]返回长度为18的字符串 [示例] SELECT ROWIDTOCHAR(rowid) FROM DUAL; [说明 ...
- EF ObjectStateManager无法跟踪具有相同键的多个对象 标签: EasyUIc# 2015-09-05 11:01 1181人阅读
最近做一个项目,因为是重构,好多代码是搬过来的,但是因为框架不同,所以搬过来也出现了很多问题,前几天在调试的时候,就碰到一个EF框架经常出现的问题:ObjectStateManager中已存在具有同一 ...
- Python基础:26模块
一:模块和文件 1:模块是逻辑上组织 Python 代码的方法,文件是物理层上组织模块的方法.因此,一个文件被看作是一个独立模块,一个模块也可以被看作是一个文件. 模块的文件名就是模块的名字加上扩展名 ...
- 模板—树上倍增LCA
int LCA(int x,int y) { if(x==y)return x; if(dep[x]>dep[y])swap(x,y); while(dep[x]<dep[y]) ;;i+ ...
- 注意 Laravel 清除缓存 php artisan cache:clear 的一个坑
Laravel 的命令 php artisan cache:clear 用来清除各种缓存,如页面,Redis,配置文件等缓存,它会清空 Redis 数据库的全部数据,比如默认使用的 Redis 的 数 ...
- js获取本周日期
JS获取到本周的日期 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- ASCII代码表
>>ASCII代码表<<
- visual studio 2013 修改mvc5的视图模板
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffol ...