链接池链接mySQL8出错,求助

链接池链接mySQL8出错,求助

package com.zcl.demo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 连接池的测试类
 * @author Administrator
 *
 */
public class JDBCDemo1 {

	@Test
	/**
	 * 手动创建连接池
	 */
	public void demo1() {
		//创建连接池
		ComboPooledDataSource dataSourse = new ComboPooledDataSource();
		
		//获得链接:
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			//设置连接池的相关参数
			dataSourse.setDriverClass("com.mysql.cj.jdbc.Driver");
			dataSourse.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/zcl?useSSL=false&serverTimezone=Hongkong&useUnicode=ture&characterEncoding=utf-8");
			dataSourse.setUser("root");
			dataSourse.setPassword("123456");
			dataSourse.setMaxPoolSize(30);
			dataSourse.setInitialPoolSize(3);
			
			//获得链接
			conn = dataSourse.getConnection();
			//编写sql语句
			String sql = "select*from user";
			//预编译sql
			pstmt = conn.prepareStatement(sql);
			//设置参数
			//执行sql
			rs = pstmt.executeQuery();
			while(rs.next()) {
				System.out.println(rs.getInt("uid")+"  "+rs.getString("username")+"  "+rs.getString("password"));
			}
			
			
			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(rs, pstmt, conn);
		}
		
		
		
		
	}
}

下面是报的错误

http://img1.sycdn.imooc.com//climg/5d75cbd200011a7612920587.jpg

我按照教辅上操作的但是还是有错误,这是我导的包

http://img1.sycdn.imooc.com//climg/5d75cbf90001d18a08690324.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好。根据报错提示来看,可能是因为数据库的时区与系统时区不同造成的问题。可能是同学的电脑不能使用香港时区

建议修改成如下代码试试

jdbc:mysql://127.0.0.1:3306/zcl?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8

祝学习愉快~


  • 飞天小栗旬 提问者 #1
    老师,我重新尝试了在单一java工程的时候,访问数据库连接池都没有问题。但是在WEB工程上使用同样的C3p0代码配置的时候,就会报错 java.sql.SQLException: Unknown character set index for field '255' received from server. 报这个字符集的错误,明明单一java工程过的时候一点错误没有 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///zcl?useSSL=false&amp;serverTimezone=GMT%2B8&amp;useUnicode=true&amp;characterEncoding=utf-8</property> <property name="user">root</property> <property name="password">123456</property> </default-config> </c3p0-config> 配置文件都相同,真是搞不懂了
    2019-09-10 17:54:03
  • 芝芝兰兰 回复 提问者 飞天小栗旬 #2
    同学你好。web工程的mysql-connector版本是什么呢?是否和可以使用的那个项目是一致的呢?是否和自己本地的mysql版本一致呢?如果一致,把有问题的项目的目录结构截图一下吧~祝学习愉快~
    2019-09-10 19:17:58
  • 飞天小栗旬 提问者 回复 芝芝兰兰 #3
    老师这个问题,解决了,是驱动包的版本不一致。
    2019-09-10 22:14:18
芝芝兰兰 2019-09-09 14:30:23

同学你好。考虑是缓存的问题。首先确认JDBCDemo1已经保存。

同学可以停止Tomcat,使用Eclipse清除编译缓存,使其重新Build。

http://img1.sycdn.imooc.com//climg/5d75f01200012c7a02700261.jpg

在Tomcat上右击,选中Clean,清除Tomcat中的缓存。

http://img1.sycdn.imooc.com//climg/5d75f1020001710805300490.jpg

然后重启一下试试。

祝学习愉快~

  • 提问者 飞天小栗旬 #1
    老师我这是一个普通的java工程,就为了测试链接的,没有用到Tomcat。刚才也试了一下clean还是会,报这个错误
    2019-09-10 00:03:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师