JDBC连接及查询事例
来源:互联网 发布:历史书籍推荐知乎 编辑:程序博客网 时间:2024/04/30 07:41
package org.accp.news.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.accp.news.entities.*;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
public class BaseDao {
final static String DRIVER = "oracle.jdbc.driver.OracleDriver";
final static String URL= "jdbc:oracle:thin:@localhost:1521:orcll";
final static String USER= "lianxi";
final static String PASS = "lianxi";
final String SQL_PAGER_COUNT = "SELECT COUNT(1) FROM ({SQL_PAGER})";
final String SQL_PAGER = "SELECT * FROM "+
" (SELECT ROWNUM AS R,MODELA.* FROM "+
" ({SQL_PAGER}) MODELA "+
" WHERE ROWNUM <={TOP_COUNT}) MODEB "+
" WHERE MODEB.R>{PASS_COUNT} ";
static BasicDataSource ds = new BasicDataSource();
static{
ds.setDriverClassName(DRIVER);
ds.setUrl(URL);
ds.setUsername(USER);
ds.setPassword(PASS);
}
/**
* 关闭资源
* @param st 预处理
* @param conn 连接
* @param rs 结果集
*/
public void closeResource(ResultSet rs,Statement st,Connection conn){
try {
if(st !=null)st.close();
if(conn !=null)conn.close();
if(rs !=null)rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/** 关闭资源 */
public void closeResource(ResultSet rs) {
Statement st = null;
Connection c = null;
try {
if (rs != null) {
st = rs.getStatement();
}
if (st!=null){
c = st.getConnection();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs!=null){rs.close();}
if (st!=null){st.close();}
if (c!=null){c.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 执行查询语句
* @param sql sql语句
* @param params sql语句中的参数
* @return 返回一个结果集
*/
protected ResultSet executeQuery(String sql,Object...params){
Connection c = null;
PreparedStatement pst = null;
ResultSet rs = null;
try {
c = ds.getConnection();
pst = c.prepareStatement(sql);
if (params!=null && params.length>0){
for(int i=0; i<params.length; i++){
pst.setObject(i+1, params[i]);
}
}
rs = pst.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/**
* 执行增删改语句
* @param sql 增删改命令
* @param params 增删改命令参数
* @return 执行成功返回1,否则返回-1
*/
public int excuteUpdate(String sql,Object...params){
Connection conn =null;
PreparedStatement pst =null;
int result =-1;
try {
conn=ds.getConnection();
pst =conn.prepareStatement(sql);
if(params !=null&¶ms.length>0){
for(int i =0;i<params.length;i++){
pst.setObject(i+1, params[i]);
}
}
result=pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeResource(null,pst, conn);
}
return result;
}
/**
* 查询单行单列
* */
protected Object executeScaler(String sql, Object... params) {
Connection c = null;
PreparedStatement pst = null;
ResultSet rs = null;
Object ret = null;
try {
c = ds.getConnection();
pst = c.prepareStatement(sql);
if (params != null && params.length > 0) {
for (int i = 0; i < params.length; i++) {
pst.setObject(i + 1, params[i]);
}
}
rs = pst.executeQuery();
if (rs != null && rs.next()) {
ret = rs.getObject(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
closeResource(rs, pst, c);
}
return ret;
}
/*分页查询*/
public void pager(PageInfo pi){
//计算总条数
int recordCount = Integer.parseInt(executeScaler(SQL_PAGER_COUNT.replace("{SQL_PAGER}", pi.getSqlPager())).toString());
pi.setRecordCount(recordCount);//设置总条数
pi.setPageCount(
pi.getRecordCount()%pi.getPageSize()==0?
pi.getRecordCount()/pi.getPageSize():
pi.getRecordCount()/pi.getPageSize()+1
);//设置总页数
//执行分页
pi.setResult(
executeQuery(
SQL_PAGER
.replace("{SQL_PAGER}", pi.getSqlPager())
.replace("{TOP_COUNT}", pi.getPageIndex()*pi.getPageSize()+"")
.replace("{PASS_COUNT}", (pi.getPageIndex()-1)*pi.getPageSize()+"")
)
);
}
}
- JDBC连接及查询事例
- JDBC使用技术及事例
- mysql的查询及连接JDBC数据库
- jdbc连接(查询)数据库方法及存在的问题
- jdbc连接MySql查询
- Jdbc连接数据库查询
- JDBC连接数据库和查询
- 数据库查询事例
- Mysql查询事例1
- JDBC分页查询及实现
- jdbc连接池及配置
- jdbc的连接及操作
- JDBC连接及一些例子
- JDBC及eclipse连接数据库
- JDBC及eclipse连接数据库
- JDBC连接mysql及操作
- dojo事例及简介
- jdbc 连接oracle 并实现查询功能
- SOCKET 非阻塞方式
- 量子物理史话
- jquery --- unbind() 不起作用
- FastDFS api使用手册
- MySQL安装中遇到的问题
- JDBC连接及查询事例
- 读研的那些事儿(三)
- 常用数据库JDBC连接写法
- Flex4/Air之隐藏状态栏,标题栏,最大,最小,半闭按钮,窗体可拖拽效果
- 第11章——使用类
- 简单的工厂模式代码
- poj1789
- 多进制神经CPU的设计构想图纸
- C++中Txt文件读取和写入