Java连接MySQL数据库(jdbc详解)

java连接数据库(jdk1.8)

**

JDBC连接数据库

**

JDBC是什么?怎么连接数据库?

      数据库和jdbc是不同的东西,请勿将其混为一谈

JDBC

jdbc就是一套API,是数据库公司针对开发语言(这里就是Java)定义的一套库函数等,在Java中就是类和接口

JDBC:

而这些类和接口需要我们去下载数据库公司提供相应的包,分别要对应数据库版本。(如果你的数据库是mysql5.7,那就要下载5.7的jdbc,如果你的数据库是sqlserver,那就要下载sqlserver相应的jdbc)

这种使用包来调用类和接口及相应方法的方式称之为面向接口开发

连接数据库

1.注册驱动(mysql为例)

    要用jdbc,首先需要将这个包导入到我们的项目工程下,对于不同的软件有不同的导包方式,这里不多阐述

    然后进行驱动的注册,告诉JVM我们使用的是哪一个数据库


    //mysql5.7要用到com.mysql.jdbc.Driver这个类来进行注册
    //我们使用Java的反射技术进行注册
    Class.forName("com.mysql.jdbc.Driver");

2.获取连接

    使用jdbc中的类,完成对数据库的连接


    //url为我们连接数据库的路径,连接本地(localhost)还是远程服务器上数据库。3306为mysql的默认端口号,test为选定数据库名
    String url = "jdbc:mysql://localhost:3306/test";
    //数据库登录用户名及密码
    String username = "root";
    String password = "123456";
    //使用Connection接口的实现类来获取这个连接
    Connection con = DriverManager.getConnection(url,username,password);

注意:

mysql8版本及以上

1、注册类位置为com.mysql.cj.jdbc.Driver
2、url路径在5.7基础上后缀要加上?useSSL=false&serverTimezone=Hongkong(设置时区等,否则会连接失败)

3.获取执行对象

    通过连接对象获得SQL语句的执行对象


    //用con来创建Statement接口的实现类对象
    Statement sta = con.createStatement();

4.执行SQL语句

    通过执行对象,执行SQL语句,并返回结果


    int executeUpdate(sql);		//适合增删改语句,返回成功行数
	ResultSet executeQuery(sql);//适合查询语句,返回查询结果集

5.处理结果

    使用ResultSet对象的get方法将查询结果打印出来


    //经过上面查询语句后,返回一个ResultSet对象
    ResultSet rs = sta.executeQuery("select * from tablename")
    //next()方法将下标向下走一行,并返回一个boolean类型的值
    //rs.next();

    //使用循环将结果集打印出来
    while (rs.next()){
        String 字段名1 = rs.getString("数据库列名1");
        String 字段名2 = rs.getString("数据库列名2");
        String 字段名3 = rs.getString("数据库列名3");

        System.out.println("数据库列名1: "+字段名1+
                    "  数据库列名2: "+字段名2+
                    "  数据库列名3: "+字段名3);
    }

    /**
    *
    * rs.getInt()  获取表的列为int类型的值
    * rs.getString()  获取表的列为char或者varchar类型的值
    * Date、Time、Object、Byte...都有相应get方法 
    *
    */

6.释放资源


    rs.close();
    sta.close();
    con.close();

整体代码

    附上查询的完整代码


package JDBC;

import com.mysql.cj.jdbc.Driver;
import java.sql.*;

public class Test {
    public static void main(String[] args) {
        try {
            //我的数据库版本为mysql8
            Class.forName("com.mysql.cj.jdbc.Driver");

            /**
             * url为我们连接数据库的路径,连接本地(localhost)还是远程服务器上数据库。
             * 3306为mysql的默认端口号,test为选定数据库名
             */
            String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Hongkong";
            //数据库登录用户名及密码
            String username = "root";
            String password = "123456";

            //使用Connection接口的实现类来获取这个连接
            Connection con = DriverManager.getConnection(url,username,password);

            //用con来创建Statement接口的实现类对象
            Statement sta = con.createStatement();

            //查询语句,返回一个ResultSet对象
            ResultSet rs = sta.executeQuery("select * from student");

            while (rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");

                System.out.println("id: "+id+"  name: "+name);
            }

            //释放资源
            rs.close();
            sta.close();
            con.close();


        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


数据库student表内容:

在这里插入图片描述

执行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值