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

南燕北灰 发布于 2016/05/16 21:54
阅读 302
收藏 0


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>

加载中
返回顶部
顶部