03_JDBC实战连接Mysql数据库

标签: JDBC Mysql 连接
6人阅读 评论(0) 收藏 举报
分类:

实战环境

  • JDK1.8
  • Mysql5.6
  • mysql-connector-java-6.0.6.jar

建立一个连接

首先,用你想用的数据源建立一个连接。这个数据源可以是DBMS,一个传统的文件系统或者是其他的使用了相应的JDBC驱动程序的数据源。这个连接被一个Connection对象所表示出来。通常来说,一个JDBC应用连接一个目标数据源用下面两种类中的一种即可:

  • DriverManager

    这个完全实现的类将应用程序连接到由数据库url指定的数据源。当此类第一次尝试建立一个连接,它会自动在应用的classpath下加载发现的任意JDBC4.0驱动。注意你的应用程序必须手动的加载JDBC版本在4.0版本之前。

  • DataSource

    这个接口优于DriverManager,是因为它允许底层数据源的详细信息对应用程序而言是透明的。一个DataSource(数据源)对象的相关属性被设置,以便它代表一个特定的数据源

使用DriverManager

想使用DriverManager连接到你的DBMS,可以使用DriverManager类的DriverManager.getConnection方法。

public Connection getConnection() throws SQLException {
    Connection conn = null;
    Properties connectionProps = new Properties();
    // 设置连接帐号
    connectionProps.put("user","");
    // 设置连接密码
    connectionProps.put("password","");
    // 获取连接
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test");
    System.out.println("Connected to database " + conn);
    return conn;
}

方法DriverManager.getConnection建立了一个数据库连接。这个方法需要一个数据库连接URL,这个URL取决于你使用的是那种数据库了,这里使用的是Mysql数据库,所以连接的URL应该是下面这种形式的:

Mysql:jdbc:mysql://localhost:3306/

localhost:你想要连接的数据库的主机名,用ip也行

3306:端口号,Mysql的默认端口号是3306,请根据实际情况进行填写

注意:

  • 通常来说,在数据库连接地址URL上,你也能够指定你想要连接的已经在数据库中存在的数据库的名称,例如:jdbc:mysql://localhost:3306/mysql,这个连接就代表这你要连接的数据库中的mysql数据库。

  • 在之前版本的JDBC中,想要获得一个连接,你的第一步是要通过调用Class.forName来实例化你的JDBC驱动。这个方法需要一个java.sql.Driver类型的对象。和一个Mysql Connector/J 的驱动com.mysql.jdbc.Driver。

    任意JDBC4.0的驱动都会自动在你的类路径下加载驱动(然后,你必须手工的用Class.forName方法加载JDBC4.0之前的版本的驱动)

这个方法将会返回一个Connection对象,这个对象代表了DBMS或者是一个指定的数据库。通过这个对象,你就可以执行数据库的查询操作了。

实战

需求

连接本地的mysql数据库中的test数据库,并打印出连接的数据库名。

代码

public static Connection getConnection() {
        try (Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=UTC", "root", "aA123456")) {
            System.out.println("Connected to database : " + connection.getCatalog());
            return connection;
        } catch (Exception e) {
            System.out.println("Connected error " + e);
        }
        return null;
    }

指定数据库连接URL

一个数据库连接的URL是一个让你的DBMS JDBC的驱动去连接你的数据库的字符串。它包含了数据库的地址信息,你想要连接的数据库名称,和一些配置信息。数据库连接的URL的确切语法则有该数据库的DBMS指定。

MySQL Connector/J DatabaseURL

以下是MySQL Connector/J 的数据库连接url语法:

jdbc:mysql://[host][,failoverhost...]
    [:port]/[database]
    [?propertyName1][=propertyValue1]
    [&propertyName2][=propertyValue2]...

参数解释:

  • host:port 

    是托管数据库的计算机的主机名和端口号,如果没有特别指定,默认的host:port 是127.0.0.1:3306。

  • database

    要连接的数据库名,如果没有指定,则建立一个没有默认数据库的连接。

  • propertyName=propertyValue

    可选参数,以&符号分隔的属性列表,例如执行数据库连接的时区,所使用的字符集,是否需要ssl认证等属性,可以从Mysql Reference Manual中查询。

这里只对Mysql的连接方式做出说明,如果需要其他连接方式,也大同小异。

参考文章:https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

查看评论

C++模板的定制四:定制成员函数和缺省类参

  C++模板的定制四:定制成员函数和缺省类参一、             定制成员函数定制模板类成员函数,就是定义一个指定类型的类成员函数取代模板类定义的成员函数,实现特殊的功能,从而完成模板类成员...
  • winmain
  • winmain
  • 2001-11-24 10:25:00
  • 1104

(实战Jsp连接MySQL数据库详细过程

  • 2016年05月04日 18:06
  • 2.69MB
  • 下载

java实战练习eclipse连接mysql数据库

在连接之前你得确保一下工作已经完成: 1. mysql 安装完成,并打开mysql服务 2. navicat安装完成,navicat是比较简单的图形化也可命令操作的数据库管理平台 3. 是...
  • qq_26816591
  • qq_26816591
  • 2016-07-15 10:04:41
  • 1238

python连接mysql数据库实战

表一: 表二: 需求: 从表一中取出CHEATED_USER,为十一位手机号码,取出前七位,到表二中查询归属地省和市,插入表一。 代码:#coding=utf-8 import MyS...
  • Irving_zhang
  • Irving_zhang
  • 2016-08-11 19:18:18
  • 297

Unity如何与数据库SQL Server交互

讲解Unity如何从数据库获取数据,以及如何通过代码层面实现SQL注入攻击和防御,全面的讲解如何对数据库发送操作命令,包括增删查改,以及数据库存储过程的调用.
  • 2017年12月13日 04:48

MySQL实战(四)数据库事务

1、MySQL的隔离级别定义 MYSQL标准定义了4类隔离级别,用来限定事务内外的哪些改变是可见的,哪些是不可见的。隔离级别由低到高:Read Uncommitted < Read Committed...
  • chenwiehuang
  • chenwiehuang
  • 2016-10-11 16:07:02
  • 450

VC++6.0中用ODBC连接mysql数据库

  • 2011年07月03日 12:09
  • 113KB
  • 下载

flex 连接mysql数据库

  • 2012年04月26日 14:48
  • 1.29MB
  • 下载

Unity连接MySQL数据库

前两天研究Socket和C#连接数据库其实都是为了将这些和unity结合使用做的基础学习。 所以最后都会归结到Unity上面。其实学会了C#关于数据库的操作,Unity肯定也就会了。 首先准备工作...
  • qq_28352753
  • qq_28352753
  • 2016-03-30 23:18:09
  • 8131
    个人资料
    持之以恒
    等级:
    访问量: 3万+
    积分: 697
    排名: 7万+
    博客专栏
    最新评论