关于数据库连接操作的工具类DBUtil.java
2015-04-21 15:24
537 查看
package Util;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
/**
* 数据库连接
* @author 吕贤丰
*
*/
public class DBUtil {
private static Connection con ;
private static PreparedStatement pstmt;
private static CallableStatement cstmt;
private static ResultSet rs;
/**
* 数据库连接
* @return Connection
*/
public static Connection getConnection(){
try {
Context context =(Context)new InitialContext();
DataSource dataSource =(DataSource)context.lookup("java:comp/env/stus");
con = dataSource.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 数据处理(非事物)
* @param sql
* @return pstmt
*/
public static PreparedStatement getPstmt(String sql){
try {
if(con == null || con.isClosed()){
getConnection();
}
pstmt = con.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return pstmt;
}
/**
* 数据处理(存储过程)
* @param sql
* @return
*/
public static CallableStatement getCstmt(String sql){
try {
if(con == null || con.isClosed()){
getConnection();
}
cstmt = con.prepareCall(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return cstmt;
}
/**
* 修改、删除、添加
* @return num(执行影响的行数)
*/
public static int update(){
int num = 0;
try {
num = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return num;
}
/**
* 数据查询(SQL)
* @return rs(结果集)
*/
public static ResultSet query() {
try {
rs = pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* 存储过程执行
*
*/
public static boolean execute() {
try {
cstmt.execute();
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
/**
* 数据库关闭操作
*/
public static void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}else if(cstmt!=null){
try {
cstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}else if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}else if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
/**
* 数据库连接
* @author 吕贤丰
*
*/
public class DBUtil {
private static Connection con ;
private static PreparedStatement pstmt;
private static CallableStatement cstmt;
private static ResultSet rs;
/**
* 数据库连接
* @return Connection
*/
public static Connection getConnection(){
try {
Context context =(Context)new InitialContext();
DataSource dataSource =(DataSource)context.lookup("java:comp/env/stus");
con = dataSource.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 数据处理(非事物)
* @param sql
* @return pstmt
*/
public static PreparedStatement getPstmt(String sql){
try {
if(con == null || con.isClosed()){
getConnection();
}
pstmt = con.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return pstmt;
}
/**
* 数据处理(存储过程)
* @param sql
* @return
*/
public static CallableStatement getCstmt(String sql){
try {
if(con == null || con.isClosed()){
getConnection();
}
cstmt = con.prepareCall(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return cstmt;
}
/**
* 修改、删除、添加
* @return num(执行影响的行数)
*/
public static int update(){
int num = 0;
try {
num = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return num;
}
/**
* 数据查询(SQL)
* @return rs(结果集)
*/
public static ResultSet query() {
try {
rs = pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* 存储过程执行
*
*/
public static boolean execute() {
try {
cstmt.execute();
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
/**
* 数据库关闭操作
*/
public static void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}else if(cstmt!=null){
try {
cstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}else if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}else if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
相关文章推荐
- 常用代码备忘录(封装 Apache Commons 的 DbUtils 实现的数据库操作工具类)-DBUtil.java
- JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库
- 关于Java连接数据库的一些操作
- java连接数据库操作--第一个例子
- java连接数据库操作2--防止sql注入
- java数据库操作--改写成工具类
- 连接数据库及相关操作工具类
- Java开发数据库连接JDBC工具类
- Mongo DB java 起步操作,连接数据库,查询语句
- 用java代码编写连接数据库操作
- 关于javaWeb 连接数据库错误分析
- 关于Java中连接数据库
- java连接数据库的jdbc技术之statement的相关操作及excute和executeUpdate的用法和区别
- java连接数据库的jdbc技术之preparestatement的相关操作
- JavaWeb--数据库操作及数据库连接池(dbcp连接)
- Java8下连接数据库进行增删改查(CRDU)操作
- Java数据库操作(Mysql连接,显示,添加,删除)
- JAVAWEB开发之JDBC详解(连接操作数据库、处理大数据、批处理)
- java之连接数据库之JDBC访问数据库的基本操作
- Java连接数据库,实现“增、删、改、查”的基本操作