服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - JDBC连接MYSQL分步详解

JDBC连接MYSQL分步详解

2022-09-06 10:57桃花键神 Java教程

JDBC是指Java数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,本篇文章我们来了解MySQL连接

什么是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>

连接数据库并测试

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

  • 加载驱动
  • 建立数据库连接
  • 执行相关的语句
  • 关闭连接

加载驱动

在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

到此这篇关于JDBC连接MYSQL分步详解的文章就介绍到这了,更多相关JDBC 连接 MYSQL内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_50843918/article/details/123200541

延伸 · 阅读

精彩推荐