zoukankan      html  css  js  c++  java
  • 管理系统(涉及分页查询,Jdbc,jsp,el,jstl)本项目可应用于人员、货物、虚拟数据等等的维护管理

    web自动化框架我已经搭建完了,正在进行测试,之前搭建是基于jenkins+maven+svn,进行的持续集成,这次要在web端搭建三套自动化框架模型:

    一、基于selenium的web自动化框架

    二、基于Httpclient的接口自动化框架

    三、基于appuim的app自动化框架

    欢迎有对这些小工具API熟悉或者已经有以上框架开发经验的朋友跟我共同探讨开发,


    下面开始介绍本管理系统:

    需求:是基于对数据库的增、删、改、查,来完成管理的目的,具体需求这里就不介绍了,这个系统还很简单,基本没什么业务,我把它看成一个单元组件;

    准备工作:

    分析需求,编写业务逻辑,罗列技术难点,画业务流程图

    创建web项目,基于MVC分层原理,创建包:

    jsp > 控制层(servlet) >业务层(service)>数据层(dao)

    根据业务需要以及流程图倒入所需jar包,我这里给出pom.xml:


    jsp主要页面实现:

    <%@page import="cn.wyx.pagebean.beans.PageBean"%>
    <%@page import="cn.wyx.customer.beans.Customer"%>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'list.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
      <table align="center" border="1" >
            <tr>
                <td>uid</td><td>cname</td><td>gender</td><td>birthday</td><td>cellphone</td><td>email</td><td>description</td>
            </tr>
        <%
        PageBean<Customer> pb = (PageBean<Customer>)request.getAttribute("pb");
        List<Customer> customers = pb.getBeanList();
        for(Customer customer:customers){
               out.print("<tr>");
            out.print("<td>"+customer.getUid()+"</td>");
            out.print("<td>"+customer.getCname()+"</td>");
            out.print("<td>"+customer.getGender()+"</td>");
            out.print("<td>"+customer.getBirthday()+"</td>");
            out.print("<td>"+customer.getCellphone()+"</td>");
            out.print("<td>"+customer.getEmail()+"</td>");
            out.print("<td>"+customer.getDescription()+"</td>");
            out.print("<td><a href='/day_20/CustomerServlet?method=preEdit&uid="+customer.getUid()+"'>修改</a></td>");
            out.print("<td><a href='/day_20/CustomerServlet?uid="+customer.getUid()+"&method=deleteByUid'>删除</a></td>");
            out.print("</tr>");
        }
        %>
        </table>
        <center>
        在${pb.pc}页/共${pb.tp}页
        <a href="${pb.url }&pc=1">首页</a>
        <c:if test="${pb.pc>1 }">
        <a href="${pb.url }&pc=${pb.pc-1 }">上一页</a>
        </c:if>
        
           <%--
           分页逻辑分析:
           首先确定一共多少个页码:百度为例 10个页码
           其次确定当前页:pc 百度为例 6
           以百度为例确定页码的开始(begin)与结束(end)位置  当点击7页时 begin变为2 end变为11
           这样可以计算出begin和end:
           begin=pc-5;
           end=pc+4;
           
           如果页面总页数不足10页:
           begin=1;
           end=tp;
           如果总页数大于10:
           begin=pc-5;
           end=pc+4;
               但是这里还需要考虑两种情况;
               头溢出:即当前页pc小于6;
               尾溢出:即当前页大于tp-4;
            --%>
            <% 
            int begin,end;
            if(pb.getTp()<=10){
                begin=1;end=pb.getTp();
                } 
            else if(pb.getPc()<6){
                    begin=1;
                    end = 10;
                }else if(pb.getPc()>pb.getTp()-4){
                    begin=pb.getTp()-9;
                    end=pb.getTp();
                } else{
                    begin=pb.getPc()-5;
                    end = pb.getPc()+4;
                }
            for(int i =begin;i<=end;i++){
                if(i==pb.getPc()){out.print("["+i+"]");}
                else {out.print("<a href='"+pb.getUrl()+"&pc="+i+"'>["+i+"]</a>");}
            }
            %>
        <c:if test="${pb.pc<pb.tp }">
        <a href="${pb.url }&pc=${pb.pc+1}">下一页</a>
        </c:if>
        <a href="${pb.url }&pc=${pb.tp}">尾页</a>
        </center>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'query.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
      <font size="40px" color="#eee">高级搜索</font>
        <form action="${pageContext.request.contextPath}/CustomerServlet"method="get">
            <input type="hidden" name="method" value="query"/>
            客户姓名:<input type="text" name="cname" value=""/>
            性别:<input type="text" name="gender" value=""/>
            电话:<input type="text" name="cellphone" value=""/>
            邮箱:<input type="text"name="email" value=""/>
            <input type="submit" value="搜索"/>
        </form>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'welcome.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
    
          <frameset rows="120,*">
              <frame name="top" src="index.jsp"/>
              <frame name="down" src="msg.jsp"/>
          </frameset>
    
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        <a href="${pageContext.request.contextPath}/CustomerServlet?method=find" target="down">查询客户信息</a>
        <a href="${pageContext.request.contextPath}/add.jsp" target="down">添加客户</a>
        <a href="${pageContext.request.contextPath}/query.jsp" target="down">高级搜索</a>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'add.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <form action="${pageContext.request.contextPath}/CustomerServlet"method="post">
            <input type="hidden" name="method" value="add"/>
            客户姓名:<input type="text" name="cname" value=""/>
            性别:<input type="text" name="gender" value=""/>
            生日:<input type="text" name="birthday" value=""/>
            电话:<input type="text" name="cellphone" value=""/>
            邮箱:<input type="text"name="email" value=""/>
            描述:<input type="text" name="description" value=""/>
            <input type="submit" value="添加客户"/>
        </form>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'update.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
         <form action="${pageContext.request.contextPath}/CustomerServlet"method="post">
            <input type="hidden" name="method" value="update"/>
            <input type="hidden" name="uid" value="${customer.uid}"/>
            客户姓名:<input type="text" name="cname" value="${customer.cname}"/>
            性别:<input type="text" name="gender" value="${customer.gender}"/>
            生日:<input type="text" name="birthday" value="${customer.birthday}"/>
            电话:<input type="text" name="cellphone" value="${requestScope.customer.cellphone}"/>
            邮箱:<input type="text"name="email" value="${requestScope.customer.email}"/>
            描述:<input type="text" name="description" value="${customer.description}"/>
            <input type="submit" value="保存修改"/>
        </form>
      </body>
    </html>

    servlet代码:

    package cn.wyx.customer.customerServlet;
    
    
    
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import cn.wyx.baseServlet.BaseServlet;
    import cn.wyx.beanUtils2.BeanUtils2;
    import cn.wyx.customer.beans.Customer;
    import cn.wyx.customer.customerService.CustomerService;
    import cn.wyx.pagebean.beans.PageBean;
    
    public class CustomerServlet extends BaseServlet {
        private static final long serialVersionUID = 1L;
        CustomerService service = new CustomerService();
        public void add(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            @SuppressWarnings("unchecked")
            Customer form = BeanUtils2.MapToBean(Customer.class, request.getParameterMap());
            form.setUid(BeanUtils2.uuid());
            service.add(form);
            request.setAttribute("msg", "客户添加成功!");
            request.getRequestDispatcher("/msg.jsp").forward(request, response);
        }
        public void find(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                int pc = getPc(request);
                int ps = 10;
                PageBean<Customer> pb = service.findAll(pc,ps);
                String url = getUrl(request);
                pb.setUrl(url);
                request.setAttribute("pb",pb);
                request.getRequestDispatcher("/list.jsp").forward(request, response);
        }
        public int getPc(HttpServletRequest request){
            String pc = request.getParameter("pc");
            if(pc==null||pc.trim().isEmpty())return 1;
            return Integer.parseInt(pc);
        }
        public void preEdit(HttpServletRequest request,HttpServletResponse response) 
                throws ServletException, IOException{
            String uid = request.getParameter("uid");
            Customer customer = service.findByUid(uid);
            request.setAttribute("customer",customer);
            request.getRequestDispatcher("/update.jsp").forward(request, response);
        }
        public void update(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                @SuppressWarnings("unchecked")
                Customer customer = BeanUtils2.MapToBean(Customer.class, request.getParameterMap());
                service.updateByUid(customer);
                request.setAttribute("msg","修改成功");
                request.getRequestDispatcher("/msg.jsp").forward(request, response);
        }
        public void deleteByUid(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                String uid = request.getParameter("uid");
                service.deleteByUid(uid);
                request.setAttribute("msg", "删除成功!");
                request.getRequestDispatcher("/msg.jsp").forward(request, response);
        }
        @SuppressWarnings("unchecked")
        public void query(HttpServletRequest request,HttpServletResponse response)
                throws ServletException,IOException{
            //一键表单数据封装
                Customer customer = BeanUtils2.MapToBean(Customer.class, 
                        request.getParameterMap());
                //处理get请求编码问题
                Customer cus = enCoding(customer);
                //获取当前所在页面页码
                int pc = getPc(request);
                //设置每行记录数
                int ps = 10;
                // 调用service方法返回PageBean对象
                PageBean<Customer> pb = service.query(cus,pc,ps);
                //获取url
                String url = getUrl(request);
                System.out.println(url);
                //向PageBean中封装url
                pb.setUrl(url);
                //保存PageBean到request域中
                request.setAttribute("pb", pb);
                //转发到list.jsp
                request.getRequestDispatcher("/list.jsp").forward(request, response);
        }
        @SuppressWarnings("null")
        private Customer enCoding(Customer customer) throws UnsupportedEncodingException {
            String cname = customer.getCname();
            String gender = customer.getGender();
            String cellphone = customer.getCellphone();
            String email = customer.getEmail();
            if(cname!=null||cname.trim().isEmpty()){
                cname = new String(cname.getBytes("ISO-8859-1"), "utf-8");
                customer.setCname(cname);
            }
            if(gender!=null||gender.trim().isEmpty()){
                gender = new String(gender.getBytes("ISO-8859-1"), "utf-8");
                customer.setGender(gender);
            }
            if(cellphone!=null||cellphone.trim().isEmpty()){
                cellphone = new String(cellphone.getBytes("iso-8859-1"), "utf-8");
                customer.setCellphone(cellphone);
            }
            if(email!=null||email.trim().isEmpty()){
                email = new String(email.getBytes("iso-8859-1"), "utf-8");
                customer.setEmail(email);
            }
            return customer;
        }
        private String getUrl(HttpServletRequest request) {
                String contextPath = request.getContextPath();
                String servletPath = request.getServletPath();
                String paramPath = request.getQueryString();
                if(paramPath.contains("&pc=")){
                    int index = paramPath.lastIndexOf("&pc=");
                    paramPath = paramPath.substring(0, index);
                }
            return contextPath+servletPath+"?"+paramPath;
        }
    }

    dao层代码:

    package cn.wyx.customer.customerDao;
    
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.handlers.BeanHandler;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    import org.apache.commons.dbutils.handlers.ScalarHandler;
    import cn.wyx.TxQueryRunner.TxQueryRunner;
    import cn.wyx.customer.beans.Customer;
    import cn.wyx.pagebean.beans.PageBean;
    
    public class CustomerDao {
        QueryRunner qRunner = new TxQueryRunner();
    
        public void add(Customer form) {
            String sql="insert into t_customer values(?,?,?,?,?,?,?)";
            Object[]parms = {form.getDescription(),form.getEmail(),form.getCellphone(),form.getBirthday(),form.getGender(),form.getCname(),form.getUid()};
            try {
                qRunner.update(sql,parms);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        //向数据库插入数据
    //    @Test
    //    public void insert(){
    //        
    //        for (int i = 100,x=0; i < 400; x++,i++) {
    //            if(x>9){x=0;}
    //            Customer customer = new Customer();
    //            customer.setBirthday("198"+x+"-0"+i);
    //            customer.setCellphone(13944952+""+i);
    //            customer.setCname("cust_"+i);
    //            customer.setDescription("超级用户");
    //            customer.setGender((i%2==0)?"男":"女");
    //            customer.setEmail("cust_"+i+"@126.com");
    //            customer.setUid(BeanUtils2.uuid());
    //            add(customer);
    //        }
    //    }
        public PageBean<Customer> findAll(int pc,int ps){   
            try {
                PageBean<Customer> pb = new PageBean<Customer>();
                pb.setPs(ps);
                pb.setPc(pc);
                String trSql ="select count(*) from t_customer";
                Number num = (Number)qRunner.query(trSql,new ScalarHandler<Object>());
                int tr = num.intValue();
                pb.setTr(tr);
                String BeanListSql="select * from t_customer order by cname limit ?,?";
                Object[]params = {(pc-1)*ps,ps};//公式分析:第一页1-1=0 0*任何数都为0 从0行开始显示,显示ps行;
                List<Customer> BeanList = qRunner.query(BeanListSql,new BeanListHandler<Customer>(Customer.class),params);
                pb.setBeanList(BeanList);
                return pb;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public Customer finbByUid(String uid){
            String sql="select * from t_customer where uid=?";
            try {
                Customer customer = qRunner.query(sql, new BeanHandler<Customer>(Customer.class), uid);
                return customer;
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public void updateByUid(Customer customer) {
            String sql="update t_customer set cname=?,gender=?,birthday=?,cellphone=?,email=?,description=? where uid=?";
            Object[]params = {customer.getCname(),customer.getGender(),customer.getBirthday(),customer.getCellphone(),customer.getEmail(),customer.getDescription(),customer.getUid()};
            try {
                qRunner.update(sql, params);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public void deleteByUid(String uid) {
            String sql="delete from t_customer where uid=?";
            try {
                qRunner.update(sql,uid);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        public PageBean<Customer> query(Customer customer, int pc, int ps) {
            try{
                //创建PageBean对象,用于封装从数据库中获取的数据,以及客户端传递的数据
                PageBean<Customer> pb = new PageBean<Customer>();
                //根据条件获取tr总记录数
                //为了代码重用,所以对sql语句进行了拼接,让wheresql可以随意进行灵活拼接,只需要进行前后sql语句修改;
                StringBuilder countsql = new StringBuilder("select count(*) from t_customer");
                StringBuilder wheresql = new StringBuilder(" where 1=1 ");
                //创建list集合
                List<Object> params = new ArrayList<Object>();
                //从Customer对象中获取各个属性,并进行条件判断,看看是否有值
                //如果有值,就添加到wheresql中,并向list集合中添加该属性
                //便于调用query方法传递参数
                String cname = customer.getCname();
                if(cname!=null && !cname.trim().isEmpty()){
                    wheresql.append(" and cname like ?");
                    params.add("%"+cname+"%");
                }
                String gender = customer.getGender();
                if(gender!=null && !gender.trim().isEmpty()){
                    wheresql.append(" and gender like ?");
                    params.add("%"+gender+"%");
                }
                String cellphone = customer.getCellphone();
                if(cellphone!=null && !cellphone.trim().isEmpty()){
                    wheresql.append(" and cellphone like ?");
                    params.add("%"+cellphone+"%");
                }
                String email = customer.getEmail();
                if(email!=null && !email.trim().isEmpty()){
                    wheresql.append(" and email like ?");
                    params.add("%"+email+"%");
                }
                //ScalarHandler接口返回的是Object,最好用Number接受,因为不知道返回的具体类型;
                Number num = (Number)qRunner.query(countsql.append(wheresql).toString(),
                        new ScalarHandler<Object>(), params.toArray());
                int tr = num.intValue();
                //获取List<Customer>customers即每页数据
                StringBuilder customersql= new StringBuilder("select * from t_customer");
                StringBuilder limitsql = new StringBuilder(" limit ?,?");
                params.add((pc-1)*ps);
                params.add(ps);
                List<Customer> beanList = qRunner.query(customersql.append(wheresql).append(limitsql).toString(),
                        new BeanListHandler<Customer>(Customer.class), params.toArray());
                
                //添加数据到PageBean中封装带回给servlet
                pb.setBeanList(beanList);
                pb.setPc(pc);
                pb.setPs(ps);
                pb.setTr(tr);
                return pb;
            }catch(SQLException e){
                throw new RuntimeException(e);
            }
        }
    }
    package cn.wyx.customer.beans;
    
    public class Customer {
        private String uid;
        private String cname;
        private String gender;
        private String birthday;
        private String cellphone;
        private String email;
        private String description;
        @Override
        public String toString() {
            return "Customer [uid=" + uid + ", cname=" + cname + ", gender="
                    + gender + ", birthday=" + birthday + ", cellphone="
                    + cellphone + ", email=" + email + ", description="
                    + description + "]";
        }
        public Customer() {
            super();
            
            
        }
        public String getUid() {
            return uid;
        }
        public void setUid(String uid) {
            this.uid = uid;
        }
        public String getCname() {
            return cname;
        }
        public void setCname(String cname) {
            this.cname = cname;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        public String getBirthday() {
            return birthday;
        }
        public void setBirthday(String birthday) {
            this.birthday = birthday;
        }
        public String getCellphone() {
            return cellphone;
        }
        public void setCellphone(String cellphone) {
            this.cellphone = cellphone;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getDescription() {
            return description;
        }
        public void setDescription(String description) {
            this.description = description;
        }
    }
    package cn.wyx.pagebean.beans;
    
    import java.util.List;
    /**
     * 分析:
     * 页面需要显示的数据都有哪些,当前页、总页数、当前页数据;
     * 当前页pc通过页面传递给servlet;
     * 总页数,需要总记录数tr/每页记录数ps
     * 当前页数据,需要知道limit(当前页-1)*每页记录数,每页记录数;
     * String url:要把从request中得到的url,封装到PageBean带回给页面,从而在页面读取并添加参数;
     * */
    public class PageBean<T> {
        private int pc;//当前页
        private int ps;//每页记录数 page size
        private int tr;//总记录数
        //private int tp;//总页数,总页数=总记录除以每页记录数
        private List<T> BeanList;
        private String url;
        public void setUrl(String url){
            this.url=url;
        }
        public String getUrl(){
            return this.url;
        }
        public int getPc() {
            return pc;
        }
        public void setPc(int pc) {
            this.pc = pc;
        }
        public int getPs() {
            return ps;
        }
        public void setPs(int ps) {
            this.ps = ps;
        }
        public int getTr() {
            return tr;
        }
        public void setTr(int tr) {
            this.tr = tr;
        }
        public int getTp() {
            int tp=tr/ps;
            return tr/ps!=0 ? tp+1:tp;
        }
    //    public void setTp(int tp) {
    //        this.tp = tp;
    //    }不允许被设置,因为这个是计算出来的,不然会跟每页记录数冲突;
        public List<T> getBeanList() {
            return BeanList;
        }
        public void setBeanList(List<T> beanList) {
            BeanList = beanList;
        }
    }
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <c3p0-config>  
     3     <default-config>  
     4         <property name="driverClass">com.mysql.jdbc.Driver</property>  
     5         <property name="jdbcUrl">jdbc:mysql://192.168.0.2:3306/customer</property>  
     6         <property name="user">root</property>  
     7         <property name="password">123</property>  
     8           
     9         <property name="initialPoolSize">10</property>  
    10         <property name="maxIdleTime">30</property>  
    11         <property name="maxPoolSize">20</property>  
    12         <property name="minPoolSize">5</property>  
    13         <property name="maxStatements">200</property>  
    14     </default-config>  
    15       
    16     <named-config name="mysql">  
    17         <property name="acquireIncrement">50</property>  
    18         <property name="initialPoolSize">100</property>  
    19         <property name="minPoolSize">50</property>  
    20         <property name="maxPoolSize">1000</property><!-- intergalactoApp adopts a different approach to configuring statement caching -->  
    21         <property name="maxStatements">0</property>  
    22         <property name="maxStatementsPerConnection">5</property>  
    23     </named-config>  
    24       
    25     <named-config name="oracle">  
    26         <property name="acquireIncrement">50</property>  
    27         <property name="initialPoolSize">100</property>  
    28         <property name="minPoolSize">50</property>  
    29         <property name="maxPoolSize">1000</property><!-- intergalactoApp adopts a different approach to configuring statement caching -->  
    30         <property name="maxStatements">0</property>  
    31         <property name="maxStatementsPerConnection">5</property>  
    32     </named-config>  
    33 </c3p0-config>

    当然这个项目还有很多相关自写的支持类,cn.wyx.....包下的都是我的jar,由于比较复杂所以就不贴出来了,可以根据我的类名进行百度,一般都可查;

  • 相关阅读:
    hdu 1593 find a way to escape
    bzoj4561: [JLoi2016]圆的异或并
    hdu 3511 Prison Break
    hdu 5299 Circles Game
    ORA-15025: could not open disk "/dev/asm***"--转载
    修改目的端trail文件的最大大小--转载
    MYSQL PERFORMANCE_SCHEMA HINTS
    Oracle 收缩表大小 Oracle Shrink Table --转载
    InnoDB: Error number 24 means ‘Too many open files’.--转载
    使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/8453242.html
Copyright © 2011-2022 走看看