链接池链接mySQL8出错,求助

链接池链接mySQL8出错,求助

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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