• JDBC+分页--【DRP】


    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;
    	}
    
  • 相关阅读:
    CLR Via CSharp读书笔记(6):类型和成员基础
    Maven 环境快速搭建二(eclipse+maven2+jetty)
    Struts2架构图
    Struts2 不依赖Spring 的测试方式
    最全的Eclipse使用快捷键
    ts2+Spring的UnitTest编写(使用StrutsTestCase的子类StrutsSpringTestCase)
    分析Vector、ArrayList、Hashtable、HashMap数据结分享一下
    Struts2与Velocity模板
    maven环境快速搭建
    转】Java集合框架学习笔记
  • 原文地址:https://www.cnblogs.com/wangmei/p/5026374.html
Copyright © 2020-2023  润新知