zoukankan      html  css  js  c++  java
  • JDBC详解

    简述

      JDBC是Java Data Base Connectivity的缩写,本质就是使用java语言操作数据库。JDBC本质是sun公司定义了所有操作关系型数据库的规则(接口)。每一个不同数据库的厂商,都实现了JDBC接口,提供数据库驱动jar包。我们可以使用这套JDBC接口编程,真正执行的代码是驱动jar包中的实现类。

    驱动包的选择

      不同版本的数据库需要不同版本的驱动包,不同版本的jdk也对应不同版本的驱动包

      mysql-connector-java与Mysql对应版本:

      mysql-connector-java与Java对应版本:

      我们可以使用select version();命令查看自己的mysql版本

      然后根据表即可选择对应驱动包版本,我们就能去下载驱动包了:https://repo1.maven.org/maven2/mysql/mysql-connector-java/

    在编程中导入jar驱动包

      我们以idea为例,创建一个包,然后把驱动jar包放进去,右键add as library即可

    DriverManager类

      DriverManager是驱动管理对象,它用于管理一组JDBC驱动程序的基本服务。

      它主要有两个功能:

    注册驱动

      注册驱动就是告诉程序该使用哪个数据库驱动jar包 ,我们使用的是DriverManager.registerDriver();方法,但在代码上我们经常Class.forName("com.mysql.cj.jdbc.Driver");,那是因为Driver类中含有静态代码块,当被加载成class类对象时会自动执行静态代码块来注册驱动

      需要注意的是mysql5版本后可以省略注册驱动这一步,因为当你没有注册驱动的时候,会自动寻找jar驱动包的一个文件,找到对应驱动类

    获取数据库连接

      我们通过static Connection getConnection(String url, String user, String password)方法获取数据库的连接

      其中user和password就是我们的用户名和密码,url就是指定的连接路径

      url的语法一般为:jdbc:mysql://(ip地址(域名)):端口/数据库名称

    Connection类

      Connection对象是数据库连接对象,表示java程序与数据库的连接

      Connection主要有两个功能:

    获取执行sql的对象

      我们可以通过connection对象的Statement createStatement()方法获取一个Statement对象用于执行sql语句

      当然也有PreparedStatement preparedStatement(String sql)获取防止sql注入的PreparedStatement 对象

    管理事务

      setAutoCommit(boolean autoCommit);设置为false,即开启事务

      commit();方法可以提交事务

      rollback();对事物进行回滚

    Statement对象

      Statement对象用于执行静态sql语句,并返回其生成结果对象。

      boolean execute(String sql); 

      int executeUpdate(String sql); 用于执行更新语句,执行的是DML语句(insert、update、delete)、DDL(create、alter、drop)语句,返回的是影响的行数

      ResulSet executeQuery(String sql);用于执行select语句,返回的是一个结果集对象

    ResulSet结果集对象

      ResulSet结果集对象其实就是把sql语句查询出来的数据封装成一个结果集对象

      本质就是一个迭代器,它首先执行查询结果的表头

      我们可以调用resultSet.next()方法,把光标移动到下一行,若下一行没有数据,则不移动返回false

      我们可以通过resultSet的getxxx()方法获取每一行的数据,参数写想获取的列的列名

    PrepareStatment对象

      PrepareStatment是Statment的子接口,它也是用于执行sql的对象,但它是预编译sql,所谓预编译sql就是参数使用占位符?作为占位的sql语句,这样做就可以防止用户用sql注入进行攻击。

      我们想要使用PrepareStatment的话,若sql语句是带参的,我们就要将sql语句的参数用?表示,然后通过connect对象获取PrepareStatment对象之后,通过setxxx方法设置sql语句中的参数,格式是setXXX(参数编号,参数值);参数编号从1开始

      

      

       

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    C#中抽象类和接口
    ArcGIS for Flex中引入google map作底图
    USB、UART、SPI等总线速率
    步步详解之第1节----ALTERA FPGA关于PLL的使用,帮你用光所有PLL
    FPGA笔试必会知识点2—FPGA器件
    FPGA笔试必会知识点1--数字电路基本知识
    (转)modelsim-win64-10.1c的安装
    基于FPGA的温度采集显示与报警
    基于FPGA的步进电机说明文档
    基于FPGA的直流电机
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/14745742.html
Copyright © 2011-2022 走看看