JDBC连接MYSQL数据库

什么是JDBC?Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何

什么是JDBC

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

在MAVEN中引入驱动

  <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

    </dependencies>

连接数据库并测试

连接数据库分为以下几步:

  1. 加载驱动
  2. 建立数据库连接
  3. 执行相关的语句
  4. 关闭连接

加载驱动

在JDBC8中其实会自动加载,这里还是按规范演示一下。
代码如下:

public class Test {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        var a = Class.forName("com.mysql.cj.jdbc.Driver");
        System.out.println(a);
    }
}

结果:驱动加载成功

JDBC连接MYSQL数据库

建立数据库连接

代码:

public class Test {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        //加载驱动
        var a = Class.forName("com.mysql.cj.jdbc.Driver");
        System.out.println(a);
        //连接数据库 localhost是连接本地IP,3307是数据库的端口,一般端口默认是3306,这里我的端口改过参考一下就可以。
        //test 是要连接的数据库名,root是账号,我没有设置密码所以不用写。
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/test?user=root");
        System.out.println(conn);
    }
}

结果:

JDBC连接MYSQL数据库

执行查询语句

代码:

public class Test {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        //加载驱动
        var a = Class.forName("com.mysql.cj.jdbc.Driver");
        System.out.println(a);
        //连接数据库 localhost是连接本地IP,3307是数据库的端口,一般端口默认是3306,这里我的端口改过参考一下就可以。
        //test 是要连接的数据库名,root是账号,我没有设置密码所以不用写。
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/test?user=root");
        System.out.println(conn);

        //创建SQL语句执行工具
        Statement st = conn.createStatement();
        //ResultSet的意思是结果集,查询返回的结果放在ResultSet对象中,结果集中有一个光标每次只指一行,并且是从第一行开始
        ResultSet rs = st.executeQuery("select * from user");
        //判断当前列是否有值
        //rs.next()rs中的光标向下移动一位
        while (rs.next()) {
            //rs.getString将当前列作为String类型保存,参数为当前列的标签
            System.out.println(rs.getString("name"));
        }
    }
}

结果:

JDBC连接MYSQL数据库

关闭数据库连接

public class Test {    public static void main(String[] args) throws SQLException, ClassNotFoundException {        //加载驱动        var a = Class.forName("com.mysql.cj.jdbc.Driver");        System.out.println(a);        //连接数据库 localhost是连接本地IP,3307是数据库的端口,一般端口默认是3306,这里我的端口改过参考一下就可以。        //test 是要连接的数据库名,root是账号,我没有设置密码所以不用写。        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/test?user=root");        System.out.println(conn);        //创建SQL语句执行工具        Statement st = conn.createStatement();        //查询sql语句返回一个ResultSet对象        ResultSet rs = st.executeQuery("select * from user");        //判断当前列是否有值        //rs.next()rs中的光标向下移动一位        while (rs.next()) {            //rs.getString将当前列作为String类型保存,参数为当前列的标签            System.out.println(rs.getString("name"));        }        //关闭连接        conn.close();    }}

最后附上SQL类型对应的JAVA类型

SQL类型

Java类型

CHAR

java.lang.String

VARCHAR

java.lang.String

LONGVARCHAR

java.lang.String

NUMERIC

java.math.BigDecimal

DECIMAL

java.math.BigDecimal

BIT

boolean

TINYINT

byte

SMALLINT

short

INTEGER

int

BIGINT

long

REAL

float

FLOAT

double

DOUBLE

double

BINARY

byte[]

VARBINARY

byte[]

LONGVARBINARY

byte[]

DATE

java.sql.Date

TIME

java.sql.Time

TIMESTAMP

java.sql.Timestamp

BLOB

java.sql.Blob

CLOB

java.sql.Clob

Array

java.sql.Array

REF

java.sql.Ref

Struct

java.sql.Struct

如果感觉小编写得不错,请素质三连:点赞+转发+关注。我会努力写出更好的作品分享给大家。更多JAVA进阶学习资料小编已打包好,可以关注私信找我领取哦!

原文 https://bbs.huaweicloud.com/blogs/348327

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/9957.html

(0)
上一篇 2023年 4月 22日 下午11:54
下一篇 2023年 4月 22日 下午11:54

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信