【JAVA百炼成仙】JDBC连接MYSQL数据库
        【摘要】 【JAVA百炼成仙】JDBC连接MYSQL数据库
    
    
    
    🔎这里是JAVA成仙之路
 👍如果对你有帮助,给博主一个免费的点赞以示鼓励
 欢迎各位🔎点赞👍评论收藏⭐️
 @[TOC]
什么是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);
    }
}
 
 结果:驱动加载成功
 
建立数据库连接
代码:
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);
    }
}
 
 结果:
 
执行查询语句
代码:
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"));
        }
    }
}
 
 结果:
 
关闭数据库连接
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 | 
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)