Java API(JDBC)连接操作数据库MySQL

一、介绍JDBC的工作原理

什么是JDBC?

JDBC(Java Data Base Connectivity)是Java专门用来操作各种数据库的API。

Java编写的程序代码通过使用JDBC提供的API可以连接并操作数据库。

JDBC常用的操作:

与一个数据库建立连接

向已经连接的数据库发送SQL语句

处理SQL语句返回的结果

Java编写的应用程序连接数据库的方式(工作原理)?——调用JDBC-数据库驱动

JDBC通过加载调用JDBC-数据库驱动,该驱动是java语言编写的,即可连接数据库。

连接不同的数据库使用不同的数据库驱动:JDBC-Oracle驱动、JDBC-SQL Server驱动、JDBC-MySQL驱动


二、Java连接数据库MySQL步骤及代码

三剑客:

Connection con ;    连接对象

Statement sql ;        sql执行对象

ResultSet rs ;        返回结果集对象

 连接 + 操作 数据库的步骤:

1、先加载数据库驱动

2、有了驱动就可以连接数据库了,即创建了连接对象con

3、有了连接对象con就可以创建SQL对象了

4、sql对象可以调用方法(查询、更新、插入、删除)操作数据库了、查询结果存放在ResultSet类中

5、输出结果到终端查看,rs结果集每次只能查看一行的数据,使用getXXXX()函数获取该行每一列数据,特别注意:要必须使用next(),不然会报错:before start of result set

6、关闭连接对象

import java.sql.*;

public class TestMySQL {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {

        //1、先加载数据库驱动
        Class.forName("com.mysql.jdbc.Driver");

        //2、有了驱动就可以连接数据库了,即创建了连接对象con
        Connection con = null; //连接数据库的对象
        String uri = "jdbc:mysql://localhost:3306/studentinfo?useSSL=true";
        String user = "root";
        String password = "123456";
        con= DriverManager.getConnection(uri,user,password);    //使用驱动创建连接获取一个连接对象

        //3、有了连接对象con就可以创建SQL对象了
        Statement sql ; //操作数据库的对象
        sql = con.createStatement();    //使用连接对象创建SQL对象

        //4、sql对象可以调用方法操作数据库了、查询结果存放在ResultSet类中
        ResultSet rs = sql.executeQuery("select * from student");

        //5、输出结果到终端查看,rs结果集每次只能查看一行的数据,使用getXXXX()函数获取该行每一列数据
        while (rs.next()){
            String name=rs.getString(1);
            int english=rs.getInt(2);
            int math=rs.getInt(3);
            int computer=rs.getInt(4);
            System.out.println(name+" "+english+" "+math+" "+computer);
        }

        //6、添加数据
        sql.execute("insert into student values ('scofield','45','89','100')");

        //7、获取Scofield的英语成绩
        ResultSet englishGrade = sql.executeQuery("select English from student where Name='scofield'");
        //特别注意:哪怕返回结果只有一条数据也要使用next(),不然会报错:before start of result set
        if(englishGrade.next()){
            System.out.println("scofield的英语成绩:"+englishGrade.getString(1));
        }

        //8、关闭连接对象
        con.close();
    }
}

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值