当前位置: 首页 > 知识库问答 >
问题:

针对MySQL的Java JDBC数据源部署

孔磊
2023-03-14

我试图学习如何使用JDBC,在JDBC的Java教程(https://docs.oracle.com/javase/Tutorial/JDBC/basics/sqldatasources.html)中,系统管理员需要创建一个BasicDataSource对象,设置其属性,并使用以下代码向命名服务注册DataSource对象:

com.dbaccess.BasicDataSource ds = new com.dbaccess.BasicDataSource();
ds.setServerName("grinder");
ds.setDatabaseName("CUSTOMER_ACCOUNTS");
ds.setDescription("Customer accounts database for billing");

Context ctx = new InitialContext();
ctx.bind("jdbc/billingDB", ds);

然后开发人员可以使用部署的DataSource对象来获取连接。

目前,我正在使用MySQL,并下载了Connector/J,但我对如何部署数据源感到困惑。根据我的理解,BasicDataSource部署在服务器上。由于我将MySQL服务器设置在本地计算机上,这意味着我需要创建另一个Java程序来创建这个数据源,以便我的用户程序可以连接到它,还是意味着我需要配置MySQL服务器?

共有1个答案

长孙瑞
2023-03-14

上面的评论应该足以达到你自己的目标。但是,如果您是住院患者,这里有一个代码片段,使其更容易:

public static void main(String[] args) {

    //pz is the name of database, user is user name, password is password for the user
    try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/pz?" +
            "user=root&password=root")) {
        // Do something with connection, e.g:
        System.out.println("conn: " + connection.getCatalog());


    } catch (SQLException e) {
        System.err.println("Error: " + e.getMessage());
        e.printStackTrace();
    }
}

我使用的MySql J连接器是mysql-connector-java-8.0.9-rc-bin.jar(您将得到关于SSL的警告,如下所示:

Fri Jul 20 20:16:10 CET 2018警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果未设置显式选项,默认情况下必须建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为'false'。您需要通过设置usessl=false来显式禁用SSL,或者设置usessl=true并为服务器证书验证提供truststore。

 类似资料:
  • 问题内容: 是否有一个名为JDBC中,而不是那些位置参数,比如在下面的查询? 问题答案: JDBC不支持命名参数。除非你必须使用普通的JDBC(这会造成麻烦,让我告诉你),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。 NamedParameterJDBCTemplate支持命名参数,你可以像这样使用它们:

  • im试图创建一个新的数据源,并从java代码中“查找”。首先,我创建了jboss-as-7.1.0.final\modules\com\mysql\main文件夹,并复制到其中的2个文件。mysql-connector-java-5.1.14-bin和module.xml My module.xml包含 其次,我在文件standalone.xml中添加了这个... 无论如何,当我启动我的jboss

  • 问题内容: 我有一个mysql数据库表,该表需要与ElasticSearch索引保持一致。我已经将表从表导出到es索引,但是现在我需要保持数据同步,否则搜索将很快变得过时。 我能想到的唯一方法是每隔X分钟导出一次表,然后将其与上次导入的表进行比较。这是不可行的,因为该表大约有1000万行,而且我不想整天每五分钟进行一次表导出。有什么好的解决方案?请注意,我仅具有对数据库的读取权限。 问题答案: 我

  • 问题内容: 尝试连接到MySQL数据库 和堆栈跟踪: 由行引起:ctx.bind(“ jdbc / wczasy”,mysqlDs); 我被困住了,有人可以帮我吗?谢谢。 问题答案: 这是因为未实现接口。 如果您不在容器中,则可以使用rmi注册表。就像是:

  • 我已经使用 使用数据源连接数据库,但我们有50多个数据库。所以我想动态连接数据库。请帮帮我.

  • 对于所有的基于SQL驱动,建立索引的过程如下: 连接到数据库; 执行预查询 (参见Section9.1.11, “sql_query_pre”) ,以便完成所有必须的初始设置,比如为MySQL连接设置编码; 执行主查询 (参见Section9.1.12, “sql_query”) ,其返回的的数据将被索引; 执行后查询 (seeSection9.1.23, “sql_query_post”) ,以