java--JDBC连接

1.概念:

JDBC(Java DataBase Connectivity)就是,Java数据库连接,是一种用于执行SQL语句的Java API,它是由一组用Java编程语言编写的类和接口组成。简单说就是封装了java语言操作不同数据库(例如:mysql,oracle、sqlServer等数据库)的接口,各个数据库厂商实现这个接口。因此java语言可以通过JDBC操作各个数据库。

2.JDBC的工作原理

SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准。各个数据库厂商会提供一套API用来访问自己公司的数据库服务器,且API遵循SUN的规范。

 JDBC是里面封装着操作各数据库的接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。

3.JDBC的API

1.DriverManager类 作用:管理各种不同的JDBC驱动

    DriverManager是我们说的驱动管理器,它有一个可以获取连接的方法getConnection()。

2.Connection接口:负责连接数据库并担任传送数据的任务

3.Statement接口:由 Connection 产生、负责发送执行SQL语句

    Statement对象中提供了executeQuery方法来执行查询操作,这个方法会返回查询结果集ResultSet类对象,其中包含SQL语句的查询结果

4.ResultSet接口:负责保存Statement执行后所产生的查询结果

   ResultSet对象包含了执行查询后满足条件的所有行,提供了对应的访问方法,有一组对应的getXxx方法获取指定列的值

4.JDBC使用步骤

4.1流程图:

4.2详细步骤

1.准备数据库驱动包(网上一搜有很多)

2.JDBC所需的参数(username,password,url,driver)

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
username=root
password=root
一般情况只写(driver,url,username,passsword)

3.加载JDBC驱动:

class.forName(driver);

4.建立数据库连接

Connection connection = DriverManager.getConnection(url, username, password);

5.创建操作命令

Statement statement=connection.createStatement();

一般不建议使用Statement对象,这个对象用于提交静态sql语句。有sql注入漏洞,建议使用Statement 的子接口PreparedStatement

6.执行SQl语句

ResultSet resultSet=statement.executeQuery("select company_name from user_info ");

7.处理结果集

 while(resultSet.next())
        {
            String categoryName=resultSet.getString("company_name");
        System.out.println(categoryName);
        }

一般列是什么数据类,则应该使用对应类型的getXxx方法,实际上使用getString可以获取任意类型的列中的数据

8.释放资源

//关闭结果集
if (resultSet !=null)
{
    try {
        resultSet.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
//关闭命令
if (statement!=null)
{
    try {
        statement.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
//关闭连接命令
if (connection!=null)
{
    try {
        connection.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

4.3实例:

import java.sql.*;

public class jdbctest {
    public static void main(String[] args) throws Exception {
     jd();
    }

    public static  void  jd()throws Exception, SQLException, InstantiationException, IllegalAccessException
    {
        //加载数据库驱动包
        Class clas= Class.forName("com.mysql.jdbc.Driver");
        Driver driver= (Driver) clas.newInstance();
        //注册驱动
        DriverManager.registerDriver(driver);
        System.out.println("数据库驱动加载成功");
        //建立数据库链接
        Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/data_platform?user=data_platform&password=68063bdc0cbcd52b&useUnicode=true&characterEncoding=UTF-8");
        //创建操作命令
        Statement statement=connection.createStatement();
        //执行SQL语句
        ResultSet resultSet=statement.executeQuery("select company_name from user_info ");
        //处理结果集
        while(resultSet.next())
        {
            String categoryName=resultSet.getString("company_name");
            System.out.println(String.format("data_platform:company_name=%s",categoryName));
        }
        //关闭结果集
        if (resultSet !=null)
        {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        //关闭命令
        if (statement!=null)
        {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        //关闭连接命令
        if (connection!=null)
        {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

结果:

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值