标签:
JDBC
package com.bjpowernode.drp.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
//JDBC工具类
public class DbUtil {
/*
*采用单例模式 取得Connection
* @return
* */
public static Connection getConnection(){
/* Connection conn=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String username="wm";
String password="A123456a";
conn=DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
return conn;*/
Connection conn=null; //数据连接为空
try{
JdbcConfig jdbcConfig=XmlConfigReader.getInstance().getJdbcConfig();//获得数据库配置文件
Class.forName(jdbcConfig.getDriverName());//加载数据库驱动程序
//使用jdbc连接数据库的地址,用户名,密码
conn=DriverManager.getConnection(jdbcConfig.getUrl(),jdbcConfig.getUserName(),jdbcConfig.getPassword());
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public static void close(Connection conn){
if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//关闭数据库程序集
public static void close(ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//关闭SQL编译集
public static void close(PreparedStatement pstmt){
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//测试类
public static void main(String[] args){
System.out.println(DbUtil.getConnection());
}
}
分页:
/**
* 分页查询
* @param pageNo 第几页
* @param pageSize 每页多少条数据
* @return pageModel
*/
public PageModel findUserList(int pageNo, int pageSize) {
StringBuffer sbSql = new StringBuffer(); //定义一个StringBuffer,采用append方法,追加内容到当前StringBuffer的末尾
//拼接的SQL语句
sbSql.append("select user_id, user_name, password, contact_tel, email, create_date ")
.append("from ")
.append("( ")
.append("select rownum rn, user_id, user_name, password, contact_tel, email, create_date ")
.append("from ")
.append("( ")
.append("select user_id, user_name, password, contact_tel, email, create_date from t_user where user_id <> ‘root‘ order by user_id ")
.append(") where rownum <= ? ")
.append(") where rn > ? ");
Connection conn = null; //定义静态的数据库连接
PreparedStatement pstmt = null; //创建预编译SQL语句
ResultSet rs = null; //定义结果集
PageModel pageModel = null; //定义页面信息实体
try {
conn = DbUtil.getConnection(); //获取Connection
pstmt = conn.prepareStatement(sbSql.toString());//执行SQL语句
pstmt.setInt(1, pageNo * pageSize); //第一个?代表最后一页能包含的所有的条数
pstmt.setInt(2, (pageNo - 1) * pageSize); //第二个?代表倒数第二页包含的所有的条数
//executeQuery返回
//execute,返回boolean值,表名执行该SQL语句是否返回Result
//executeUpdate,返回值是一个整数,指示受影响的行数
rs = pstmt.executeQuery();//执行查询
List userList = new ArrayList(); //实例化一个数组
while (rs.next()) { //循环遍历查询结果集
User user = new User();
user.setUserId(rs.getString("user_id")); //用户id进行赋值
user.setUserName(rs.getString("user_name")); //给用户姓名进行赋值
user.setPassword(rs.getString("password")); //给用户密码进行赋值
user.setContactTel(rs.getString("contact_tel")); //给用户电话进行赋值
user.setEmail(rs.getString("email")); //给Email进行赋值
user.setCreateDate(rs.getTimestamp("create_date")); //给创建日期进行赋值
userList.add(user); //像集合列表中添加对象
}
pageModel = new PageModel(); //实例化分页实体
pageModel.setList(userList); //给结果集赋值
pageModel.setTotalRecords(getTotalRecords(conn)); //记录数
pageModel.setPageSize(pageSize); //数据条数
pageModel.setPageNo(pageNo); //多少页
}catch(SQLException e) {
e.printStackTrace();
}finally {
DbUtil.close(rs); //关闭记录集
DbUtil.close(pstmt);//关闭SQL数据集
DbUtil.close(conn); //关闭SQL连接
}
return pageModel; //返回分页实体
}
/**
* 取得总记录数
* @param conn
* @return
*/
/**
* 取得总记录数
* @param conn
* @return
*/
private int getTotalRecords(Connection conn)
throws SQLException {
//查询所有用户id<>root的条数
String sql = "select count(*) from t_user where user_id <> ‘root‘";
PreparedStatement pstmt = null; //定义SQL预编译集
ResultSet rs = null; //定义记录集
int count = 0; //定义个数
try {
pstmt = conn.prepareStatement(sql); //执行SQL语句
rs = pstmt.executeQuery(); //执行查询
rs.next(); //遍历记录集
count = rs.getInt(1); //获取第一列的值
}finally {
DbUtil.close(rs); //关闭数据集
DbUtil.close(pstmt);//关闭SQL记录集
}
return count;
}
标签:
原文地址:http://www.cnblogs.com/wangmei/p/5026374.html