package com.nlte.usersys.common.util;
import com.nlte.usersys.common.exception.DaoException;
import com.nlte.usersys.usermgr.domain.DataPage;
import oracle.jdbc.OracleTypes;
import java.sql.*;
/**
* 对Oracle数据库连接的封装工具类
* Created by hp on 2016/11/11.
*/
public class DBUtil {
//Oracle驱动包
private static final String driver = "oracle.jdbc.driver.OracleDriver";
//连接Oracle数据库的URL
// TODO: 2016/11/11 对于数据库URL、用户名、密码可以动态输入
private static String url = "jdbc:oracle:thin:localhost:1521:orcl";
//数据库用户名
private static String username = "scott";
//数据库密码
private static String pwd = "tiger";
//连接对象
private static Connection conn = null;
//参数语句对象
private static PreparedStatement ps = null;
/**
* 获取连接对象
*
* @return 连接对象
* @throws DaoException 创建对象时抛出的异常
*/
public static Connection getConnection() throws DaoException {
try {
//加载驱动Oracle的jdbc驱动包
Class.forName(driver);
//建立连接 :制定连接到哪里去jdbc:oracle:thin: ip地址 : 端口号 : 服务
conn = DriverManager.getConnection(url, username, pwd);
if (conn != null) {
System.out.println("连接成功");
}
} catch (ClassNotFoundException e) {
throw new DaoException("驱动加载失败,请检查驱动包");
} catch (SQLException e) {
throw new DaoException("连接数据库服务器失败,请检查网络或相关参数");
}
return conn;
}
/**
* 只关闭连接
*/
public static void close() {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭传入的连接
*
* @param conn 连接对象
*/
public static void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭指定的连接和参数语句对象
*
* @param conn 连接对象
* @param ps 参数语句对象
*/
public static void close(Connection conn, PreparedStatement ps) {
try {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭连接和参数语句对象及结果集
*
* @param conn 连接对象
* @param ps 参数语句对象
* @param resultSet 结果集
*/
public static void close(Connection conn, PreparedStatement ps, ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭最近获得的连接和参数语句对象
*
* @param ps 参数语句对象
*/
public static void close(PreparedStatement ps) {
try {
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭最近获得的连接和参数语句对象及结果集
*
* @param ps 参数语句对象
* @param resultSet 结果集
*/
public static void close(PreparedStatement ps, ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭最近获得的连接和最近参数语句对象及结果集
*
* @param resultSet 结果集
*/
public static void close(ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭最近获取的连接和CallableStatement和结果集
*
* @param prepareCall
* @param resultSet 结果集
*/
public static void Close(CallableStatement prepareCall, ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
if (prepareCall != null) {
prepareCall.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 支持参数查询并返回结果集
*
* @param sql sql语句
* @param objects 动态参数列表
* @return 结果集
* @throws DaoException 创建SQL语句对象抛出的异常
*/
// TODO: 2016/11/11 可以将sql语句拆分,通过输入参数合成SQL语句
public static ResultSet search(String sql, Object... objects) throws DaoException {
Connection conn = getConnection();
ResultSet resultSet;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < objects.length; i++) {
ps.setObject(i + 1, objects[i]);
}
resultSet = ps.executeQuery();
} catch (SQLException e) {
throw new DaoException("创建SQL语句对象失败");
}
return resultSet;
}
/**
* 支持参数查询并返回一个对象
* 类似select count(*) from emp;
*
* @param sql sql语句
* @param objects 动态参数列表
* @return 查询到的对象
* @throws DaoException 创建SQL语句对象抛出的异常
*/
public static Object searchObjects(String sql, Object... objects) throws DaoException {
Connection conn = getConnection();
ResultSet resultSet;
Object object = null;
try {
ps = conn.prepareStatement(sql);
for (int i = 0; i < objects.length; i++) {
ps.setObject(i + 1, objects[i]);
}
resultSet = ps.executeQuery();
resultSet.next();
object = resultSet.getObject(1);
close(ps, resultSet);
} catch (SQLException e) {
throw new DaoException("创建SQL语句对象失败");
}
return object;
}
/**
* 执行插入、删除、修改等更新数据库的操作
*
* @param sql SQL语句
* @param objects 参数化对象
* @return 影响的行数
* @throws DaoException 创建SQL语句对象抛出的异常
*/
// TODO: 2016/11/11 可以将增、删、改等操作分开成独立的方法,并将sql语句拆分,通过输入参数合成SQL语句
public static int update(String sql, Object... objects) throws Dao
没有合适的资源?快使用搜索试试~ 我知道了~
带你一步步用MVC架构实现简单的用户管理系统
共43个文件
java:18个
class:18个
xml:6个
4星 · 超过85%的资源 需积分: 10 41 下载量 200 浏览量
2016-11-16
21:35:22
上传
评论 1
收藏 59KB ZIP 举报
温馨提示
用户管理系统,实现简单的用户管理,有包括普通用户、管理员;功能包括添加用户,删除用户,查询用户信息,更改用户信息等等,主要是通过项目的方式,让大家一步步数据系统的设计流程,以及在java开发中用的比较多的MVC架构模式,走向老鸟的第一步!
资源推荐
资源详情
资源评论
收起资源包目录
UserManagerSystem.zip (43个子文件)
UserManagerSystem
src
com
nlte
usersys
usermgr
business
dao
UserDAOImpl.java 7KB
UserDAO.java 499B
service
UserServiceImpl.java 1KB
UserService.java 455B
domain
User.java 5KB
DataPage.java 1KB
view
NormalFrame.java 3KB
IndexFrame.java 3KB
BaseFrame.java 253B
AdminFrame.java 4KB
controller
UserController.java 1020B
test
Main.java 285B
common
dao
exception
DateException.java 441B
ServiceException.java 455B
DaoException.java 469B
constant
util
ScannerUtil.java 335B
DBUtil.java 13KB
TypeUtils.java 1KB
.idea
uiDesigner.xml 9KB
misc.xml 1KB
copyright
profiles_settings.xml 76B
modules.xml 274B
compiler.xml 686B
workspace.xml 80KB
out
production
UserManagerSystem
com
nlte
usersys
usermgr
business
dao
UserDao.class 728B
UserDaoImpl.class 5KB
service
UserService.class 686B
UserServiceImpl.class 2KB
domain
User.class 4KB
view
NormalFrame.class 3KB
IndexFrame.class 3KB
AdminFrame.class 4KB
BaseFrame.class 210B
controller
UserController.class 2KB
test
Main.class 555B
common
exception
DateException.class 774B
DaoException.class 771B
ServiceException.class 783B
util
DBUtil.class 7KB
ScannerOne.class 657B
DataPage.class 1KB
TypeUtils.class 1KB
UserManagerSystem.iml 673B
共 43 条
- 1
资源评论
- lzailai8110252016-11-17可惜没有文档说明,最好是加上文档说明,这样更容易上手,不过还是感谢大蛇贡献。
- 飞不动的菜鸟2016-12-15资源很好,但是这里只有java代码,具体的页面和说明是没有的,如果能补充上就更适合学习了
- Vinsmoke-Hou2017-05-04导不进去,不能用,浪费积分
GuaKin_Huang
- 粉丝: 4
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功