• JDBC


    JDBC

    数据库驱动

    JDK提供jdbc接口,就是java怎样去调用数据库,但是注意提供的只是接口,数据库提供商实现这些接口,就是所谓数据库驱动。java调用数据库驱动,驱动真正执行数据库操作。

    常用数据库的驱动程序驱动程序包名

    Oracle数据库:

    驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL:jdbc:oracle:thin:@dbip:port:databasename 说明:驱动程序包名有可能会变 JDBC URL中各个部分含义如下: dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为1521。 databasename –为数据库的SID,通常为全局数据库的名字。

     

    SQL Server数据库:

    驱动程序包名:msbase.jar mssqlserver.jar msutil.jar 驱动类的名字:com.microsoft.jdbc.sqlserver.SQLServerDriver JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename 说明:驱动程序包名有可能会变 JDBC URL中各个部分含义如下: dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为1433。 databasename –数据库的名字。

    MySQL数据库:

    驱动程序包名:mysql-connector-Java-3.1.11-bin.jar 驱动类的名字:com.mysql.jdbc.Driver / com.mysql.cj.jdbc.Driver JDBC URL:jdbc:mysql://dbip:port/databasename 说明:驱动程序包名有可能会变 JDBC URL其中各个部分含义如下: dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。 port –为数据库的监听端口,需要看安装时的配置,缺省为3306。 databasename –数据库的名字。

     

    对于开发人员,只需掌握JDBC的接口操作即可

    java.sql

    javax.sql

    数据库驱动包:mysql-connector-java-5.1.47.jar

     

    第一个JDBC程序

    1、创建一个普通Java项目

    2、准备数据库驱动包

    新建一个lib目录,导入jar包,右键选中add as Library

    3、数据库设计准备:

     create database jdbc_study character set utf8 COLLATE utf8_general_ci;
     ​
     use jdbc_study;
     ​
     create table users(
      id int primary key,
      `name` varchar(20),
      `password` varchar(20),
      email varchar(30),
      birthday TIMESTAMP
     );
     ​
     insert into users(id,`name`,`password`,email,birthday)
     values(1,'Joey','111111','3@.com','2020-1-1'),
     (2,'Rose','122221','4@.com','2020-2-1'),
     (3,'Mike','133331','2@.com','2020-2-5');
     ​

    4、编写测试代码

     package com.hch.jdbc;
     ​
     import java.sql.*;
     ​
     public class Demo01_TestJDBC {
         public static void main(String[] args) throws ClassNotFoundException, SQLException {
             //1、加载驱动
             Class.forName("com.mysql.cj.jdbc.Driver");
     ​
             //2、用户信息和url
             String url = "jdbc:mysql://localhost:3306/jdbc_study?useUnicode=true&characterEncoding=utf8&useSSL=true";
             String username = "root";
             String password = "hch520";
     ​
             //3、连接成功,数据库对象 connection代表数据库
             Connection connection = DriverManager.getConnection(url, username, password);
     ​
             //4、执行sql对象
             Statement statement = connection.createStatement();
     ​
             //5、用Sql对象去执行sql
             String sql = "select * from users";
             ResultSet resultSet = statement.executeQuery(sql);  //resultSet返回的结果集,封装了全部查询对象
             while(resultSet.next()){
                 System.out.println("id"+resultSet.getObject("id"));
                 System.out.println("name"+resultSet.getObject("name"));
                 System.out.println("pwd"+resultSet.getObject("password"));
                 System.out.println("email"+resultSet.getObject("email"));
                 System.out.println("birth"+resultSet.getObject("birthday"));
            }
             //6、释放连接
             resultSet.close();
             statement.close();
             connection.close();
        }
     }
     ​

    步骤总结:

    1、加载驱动

    2、连接数据库DriverManager

    3、获得执行sql的对象Statement

    4、获得返回的结果集(查询的)

    5、释放连接

    DriverManager

     Class.forName("com.mysql.cj.jdbc.Driver"); //固定写法
     Connection connection = DriverManager.getConnection(url, username, password);
     ​
     //connection 代表数据库
     //数据库设置自动提交
     connection.setAutoCommit();
     //事务提交
     connection.commit();
     //事务滚回
     connection.rollback();
     ​

    URL

      String url = "jdbc:mysql://localhost:3306/jdbc_studyuseUnicode=true&characterEncoding=utf8&useSSL=true";
     ​
     //mysql --3306
     //协议://主机名:端口号/数据库名?参数1&参数2&...
     ​

    Statement执行SQL的对象 PrepareStatement执行SQL的对象

     String sql = "Select * from users"; //编写SQL
     ​
     statement.excuteQuery(); //查询操作返回的 ResultSet
     statement.excute();  //执行任何SQL
     statement.excuteUpdate();  //更新,插入,删除理论上都是修改都用这个,返回一个受影响的行数

    ResultSet 查询的结果集 : 封装了所有的查询结果

    获得指定的数据类型:

     resultSet.getObject()
     resultSet.getInt()
     resultSet.getString()
     resultSet.getFloat()
     resultSet.getDate()
             

    释放资源:

     resultSet.close();
     statement.close();
     connection.close();

    statement对象

    https://blog.csdn.net/yhl_jxy/article/details/73695389

  • 相关阅读:
    2018年12月29日 Oracle查询性能优化
    B
    A
    洛谷 P2447 [SDOI2010]外星千足虫
    洛谷 P5358 [SDOI2019]快速查询
    欠的题目
    ZJU-ICPC Summer 2020 Contest 8 B-Picnic
    洛谷 P3164 [CQOI2014]和谐矩阵
    K
    J
  • 原文地址:https://www.cnblogs.com/joey-413/p/13374495.html
Copyright © 2020-2023  润新知