开发者社区> 问答> 正文

tomcat启动连接mysql的时候报错(代码)?报错


http://www.oschina.net/question/2499950_2177962

package utils;


import java.util.List;


/**
 * 封装分页的参数
 * 
 * 
 * 
 */
public class PageBean<T> {
private int currentPage = 1; // 当前页, 默认显示第一页
private int pageCount = 4;   // 每页显示的行数(查询返回的行数), 默认每页显示4行
private int totalCount;      // 总记录数
private int totalPage;       // 总页数 = 总记录数 / 每页显示的行数  (+ 1)
private List<T> pageData;       // 分页查询到的数据

public int getTotalPage() {
if(totalCount % pageCount == 0){
totalPage = totalCount / pageCount;
}else{
totalPage = totalCount / pageCount+1;
} return totalPage;
}

public void setTotalPage(int totalPage) {

this.totalPage = totalPage;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}

public List<T> getPageData() {
return pageData;
}
public void setPageData(List<T> pageData) {
this.pageData = pageData;
}

}

package utils;


import javax.sql.DataSource;


import org.apache.commons.dbutils.QueryRunner;


import com.mchange.v2.c3p0.ComboPooledDataSource;


/**
 * 工具类
 * 1. 初始化C3P0连接池
 * 2. 创建DbUtils核心工具类对象
 * 
 *
 */
public class JdbcUtils {
/**
*  1. 初始化C3P0连接池
*/
private static DataSource dataSource;
static{
dataSource = new ComboPooledDataSource();
}
/**
* 2. 创建DbUtils核心工具类对象
*/
public static QueryRunner getQueryRunner(){
// 创建QueryRunner对象,传入连接池对象
// 在创建QueryRunner对象的时候,如果传入了数据源对象;
// 那么在使用QueryRunner对象方法的时候,就不需要传入连接对象;
// 会自动从数据源中获取连接(不用关闭连接)
return new QueryRunner(dataSource);
}
}


package dao.impl;


import java.sql.SQLException;
import java.util.List;


import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;


import utils.JdbcUtils;
import utils.PageBean;
import dao.IEmployeeDao;
import entity.Employee;


//数据访问层实现


public class EmployeeDao implements IEmployeeDao {


@Override
public void getAll(PageBean<Employee> pb) {
//2. 查询总记录数;  设置到pb对象中
int totalCount = this.getTotalCount();
pb.setTotalCount(totalCount);
/*
  • 问题: jsp页面,如果当前页为首页,再点击上一页报错!
  •              如果当前页为末页,再点下一页显示有问题!
  • 解决:
  •   1. 如果当前页 <= 0;       当前页设置当前页为1;
  •   2. 如果当前页 > 最大页数;  当前页设置为最大页数
    /
    // 判断
    if(pb.getCurrentPage()<=0){
    pb.setCurrentPage(1);  //把当前页设为1
    }else if(pb.getCurrentPage()>pb.getTotalPage()){
    pb.setCurrentPage(pb.getTotalPage());//把当前页设为最大页数
    }
    //1. 获取当前页: 计算查询的起始行、返回的行数
    int currentPage = pb.getCurrentPage();
    int start = (currentPage - 1) * pb.getPageCount();//查询的起始行
    int end = pb.getPageCount(); //查询返回的行数
    //3. 分页查询数据;  把查询到的数据设置到pb对象中
    String sql = "select * from employee limit ?,?";

    try {
    // 得到Queryrunner对象
    QueryRunner qr = JdbcUtils.getQueryRunner();
    // 根据当前页,查询当前页数据(一页数据)
    List<Employee> pageData = qr.query(sql, new BeanListHandler<Employee>(Employee.class), start,end);
    // 设置到pb对象中
    pb.setPageData(pageData);
    } catch (Exception e) {
    throw new RuntimeException(e);
    }

    }


    @Override
    public int getTotalCount() {
    String sql = "select count(
    ) from employee";
    try {
    // 创建QueryRunner对象
    QueryRunner qr = JdbcUtils.getQueryRunner();
    // 执行查询, 返回结果的第一行的第一列
    Long count = qr.query(sql, new ScalarHandler<Long>());
    return count.intValue();
    } catch (Exception e) {
    throw new RuntimeException(e);
    }

    }


    }

<c3p0-config>
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day17
</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">3</property>
<property name="maxPoolSize">6</property>
<property name="maxIdleTime">1000</property>
</default-config>








</c3p0-config>


展开
收起
爱吃鱼的程序员 2020-06-09 14:33:11 797 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    最重要的错误信息没写。
    <arel='nofollow'target='_blank'>http://www.oschina.net/question/2499950_2177962

    2020-06-09 14:33:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像