你可以的 2022-05-16 21:19 采纳率: 0%
浏览 35
已结题

C3p0连接数据库报错 都想炸了还是没解决

问题遇到的现象和发生背景

无法适应C3P0

问题相关代码,请勿粘贴截图

img

img

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

3条回答 默认 最新

  • WaitIKnowYou 2022-05-16 21:31
    关注

    配置文件

    
    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
        <default-config>
    
            <!-- 数据库地址 -->
            <property name="jdbcUrl">jdbc:mysql://你的ip如本地localhost:3306/whd?useSSL=false&amp;serverTimezone=CTT&amp;useUnicode=true&amp;characterEncoding=utf8
            </property>
            <!-- 数据库驱动   5.7版本前驱动是com.mysql.jdbc.Driver -->
            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
            <!-- 用户名 -->
            <property name="user">root</property>
            <!-- 密码  你自己的密码-->
            <property name="password">123456</property>
    
            <!-- 连接池初始化时创建的连接数 -->
            <property name="initialPoolSize">10</property>
            <!-- 连接池中的最小连接数 -->
            <property name="minPoolSize">3</property>
            <!-- 连接池中的最大连接数 -->
            <property name="maxPoolSize">100</property>
            <!-- 无空闲连接可用时,可一次性创建新连接的数量 -->
            <property name="acquireIncrement">10</property>
            <!-- 获取数据库连接失败后重复尝试的次数 -->
            <property name="acquireRetryAttempts">1</property>
            <!-- 两次连接的间隔时间,单位为毫秒 -->
            <property name="acquireRetryDelay">1000</property>
        </default-config>
    </c3p0-config>      
            
    

    Jdbc工具类

    import com.mchange.v2.c3p0.ComboPooledDataSource;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import javax.sql.DataSource;
    
    public class JDBCUtils {
        private static DataSource ds = new ComboPooledDataSource();
    
        public static DataSource getDataSource() {
            return ds;
        }
    
        public static Connection getConnection() {
            Connection conn = null;
    
            try {
                conn = ds.getConnection();
            } catch (SQLException var2) {
                var2.printStackTrace();
            }
    
            return conn;
        }
    
        public static void close(PreparedStatement pst, Connection conn, ResultSet rst) {
            if (rst != null) {
                try {
                    rst.close();
                } catch (SQLException var6) {
                    var6.printStackTrace();
                }
            }
    
            if (pst != null) {
                try {
                    pst.close();
                } catch (SQLException var5) {
                    var5.printStackTrace();
                }
            }
    
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException var4) {
                    var4.printStackTrace();
                }
            }
    
        }
    }
    
    

    测试一下

    package test;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    
    import org.junit.Test;
    
    import com.web.tom.Utils.JDBCUtils;
    import com.web.tom.entity.Admin;
    
    public class TestJdbc {
        private Connection conn;
        private PreparedStatement pst;
        private ResultSet rst;
        private String sql;
    
    
        @Test
        public  void getAllAdmin() {
            ArrayList<Admin> list = new ArrayList<Admin>();
            this.conn = JDBCUtils.getConnection();
            this.sql = "select id,username,password from admin";
    
            try {
                this.pst = this.conn.prepareStatement(this.sql);
                this.rst = this.pst.executeQuery();
    
                while (this.rst.next()) {
                    Admin admin = new Admin();
                    admin.setId(this.rst.getInt("id"));
                    admin.setUsername(this.rst.getString("username"));
                    admin.setPassword(this.rst.getString("password"));
                    list.add(admin);
                }
    
                JDBCUtils.close(this.pst, this.conn, this.rst);
            } catch (SQLException var3) {
                var3.printStackTrace();
            }finally {
                
                JDBCUtils.close(pst, conn, rst);
            }
            System.out.println(list);
            
        }
    
    }
    
    
    

    得到结果

    img

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月16日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表