没有使用数据源选择数据库SQLException

克雷姆帕姆

我已经使用servlet创建了一个webapp。我正在建立与MySQL database使用DataSource对象的连接,并在加载网页时获得以下stacktrace:

java.sql.SQLException: No database selected
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2832)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2781)
    at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1569)
    at uk.co.morleys.TestimonialService.countTestimonials(TestimonialService.java:106)
    at uk.co.morleys.TestimonialService.getPaginationDetails(TestimonialService.java:122)
    at uk.co.morleys.HomeController.doGet(HomeController.java:77)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
    at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

这是TestimonialService.java文件:

public class TestimonialService {
    ResultSet rs;
    DataSource ds;

    public TestimonialService(){
        rs = null;
        ds = DataSourceFactory.getMySQLDataSource();
    }
    public int countTestimonials() throws SQLException{
        int count = 0;
        try(Connection con = ds.getConnection()){
            Statement stmt = con.createStatement();
            rs = stmt.executeQuery("SELECT COUNT(*) FROM morleys_testimonial WHERE isActive=1");
            while(rs.next()){
                count = rs.getInt(1);
            }
        }catch(SQLException e){
            e.printStackTrace();
        }
        return count;
    }
}

这是DataSourceFactory.java,可在其中建立与数据库的连接:

public class DataSourceFactory {

    public static DataSource getMySQLDataSource() {
        MysqlDataSource mysqlDS = null;
        try {
            mysqlDS = new MysqlDataSource();
            mysqlDS.setURL("jdbc:mysql://hostname/");
            mysqlDS.setDatabaseName("dbname");
            mysqlDS.setUser("user");
            mysqlDS.setPassword("password");
        } catch (Exception e) {
            throw new IllegalStateException(e);
        }
        return mysqlDS;
    }
}

问题我不选择数据库setDatabaseName()吗?如果没有,我该怎么做?

SparkOn

为什么不简单尝试一下

mysqlDS.setURL("jdbc:mysql://hostname/dbname");

代替

mysqlDS.setDatabaseName("dbname");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有使用PHP将数据插入MySQL数据库

来自分类Dev

为什么我的数据源没有在 LoopBack 4 中从“内存数据库”转换到 MySQL?

来自分类Dev

Hibernate没有使用Spring Boot在PostgreSql中创建数据库

来自分类Dev

没有使用Django,rabbitmq和sqlalchemy创建Celery sqlite结果数据库

来自分类Dev

Delphi数据库访问数据源中的数据

来自分类Dev

没有选择数据库

来自分类Dev

没有数据源的Jasperreport

来自分类Dev

从数据源检索数据库名称

来自分类Dev

根据数据源查找数据库信息

来自分类Dev

在部署过程中,Grails对数据库和数据源有何作用?

来自分类Dev

为什么在使用本地数据源时IntelliJ无法找到数据库用户凭据?

来自分类Dev

Spring-Hibernate使用多个数据源/数据库

来自分类Dev

程序使用数据源接口连接Oracle数据库

来自分类Dev

如何使用PostgreSQL数据库作为XMLA数据源?

来自分类Dev

如何使用Java中的数据源对象获取数据库配置

来自分类Dev

使用Snowflake数据库作为SSAS(SQL Server Analysis Services)数据源?

来自分类Dev

使用数据源连接到数据库时发生NoClassDefFoundError

来自分类Dev

使用Java蓝图中定义的数据源访问Oracle数据库

来自分类Dev

如何使用添加新数据源调用从数据库导入的存储过程

来自分类Dev

没有使用Entity Framework Core 3.1在MySql数据库中创建User表(代码优先方法)

来自分类Dev

如何在Spring应用程序中使用非JTA数据源将选择查询重定向到复制数据库

来自分类Dev

在JBoss的新数据源向导中没有MySQL驱动程序可供选择

来自分类Dev

没有从数据库中选择正确的ID

来自分类Dev

没有选择数据库php / mysql

来自分类Dev

Mysql中没有数据库选择错误

来自分类Dev

为什么ampps没有选择我的数据库?

来自分类Dev

从数据库中选择没有值组合的项目

来自分类Dev

为什么说没有选择数据库?

来自分类Dev

从数据库中选择,没有重复

Related 相关文章

  1. 1

    没有使用PHP将数据插入MySQL数据库

  2. 2

    为什么我的数据源没有在 LoopBack 4 中从“内存数据库”转换到 MySQL?

  3. 3

    Hibernate没有使用Spring Boot在PostgreSql中创建数据库

  4. 4

    没有使用Django,rabbitmq和sqlalchemy创建Celery sqlite结果数据库

  5. 5

    Delphi数据库访问数据源中的数据

  6. 6

    没有选择数据库

  7. 7

    没有数据源的Jasperreport

  8. 8

    从数据源检索数据库名称

  9. 9

    根据数据源查找数据库信息

  10. 10

    在部署过程中,Grails对数据库和数据源有何作用?

  11. 11

    为什么在使用本地数据源时IntelliJ无法找到数据库用户凭据?

  12. 12

    Spring-Hibernate使用多个数据源/数据库

  13. 13

    程序使用数据源接口连接Oracle数据库

  14. 14

    如何使用PostgreSQL数据库作为XMLA数据源?

  15. 15

    如何使用Java中的数据源对象获取数据库配置

  16. 16

    使用Snowflake数据库作为SSAS(SQL Server Analysis Services)数据源?

  17. 17

    使用数据源连接到数据库时发生NoClassDefFoundError

  18. 18

    使用Java蓝图中定义的数据源访问Oracle数据库

  19. 19

    如何使用添加新数据源调用从数据库导入的存储过程

  20. 20

    没有使用Entity Framework Core 3.1在MySql数据库中创建User表(代码优先方法)

  21. 21

    如何在Spring应用程序中使用非JTA数据源将选择查询重定向到复制数据库

  22. 22

    在JBoss的新数据源向导中没有MySQL驱动程序可供选择

  23. 23

    没有从数据库中选择正确的ID

  24. 24

    没有选择数据库php / mysql

  25. 25

    Mysql中没有数据库选择错误

  26. 26

    为什么ampps没有选择我的数据库?

  27. 27

    从数据库中选择没有值组合的项目

  28. 28

    为什么说没有选择数据库?

  29. 29

    从数据库中选择,没有重复

热门标签

归档