JDBC

  • 定义
    • JDBC是一种用于执行SQL语句的java API.JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问 它由一组用Java语言便血的接口和类组成
  • 规范
    • DriverManager:用于注册驱动
    • Connection:表示与数据库创建的连接
    • Statement:操作数据库sql语句的对象
    • ResultSet:结果集或一张虚拟表
  • 原理

    • JDBC是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库

      1. 每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供

JDBC六个步骤

  1. 注册驱动
    • 告知jvm使用的是哪个数据库
  2. 获取连接
    • 获取到和数据库的连接对象
  3. 获取执行sql语句对象
    • 通过连接获取执行sql语句的对象
  4. 执行sql语句 返回结果
    • 增删改 返回影响的行数
    • 查 返回查询结果集
  5. 处理结果

    • 增删改 一般不需要处理

          将查询的结果从结果集中获取出来
      
  6. 关闭资源

注册驱动

java.sql.DriveManager

  • 静态方法

    • static void registerDriver(Driver driver) 向 DriverManager 注册给定驱动程序

      • 方法参数

        • java.sql.Driver:一个驱动的接口,方法参数是接口需要传入其实现类对象

                                               mysql驱动 实现了这个接口 这个实现类是 com.mysql.jdbc.Driver
          

          获取连接

          java.sql.DriverManager

  • 静态方法

    • static Connection getConnection(String url,String user,String password)
    • 方法的返回值类型 java.sql.Connection是一个接口 一定会返回此接口的实现类对象 mysql

         驱动实现的有了实现类对象 就可以调用java.sql.Connection中的方法<br />           url:要连接的数据库的 url  jdbc:mysql://localhost:3306/数据库名;<br />           user:数据库的用户名<br />           password:连接数据库的密码
      

      获取执行sql语句的对象

      java.sql.Connection

  • 方法

    • Statement createStatement()
      • 创建一个Statement 对象来将SQL语句发送到数据库

java.sql.Statement

  • 方法
    • int executeUpdate(String sql)执行sql语句 增删改 返回影响的行数

java.sql.ResultSet

  • 方法
    • boolean next()判断当前行是否有数据 如果有则返回true 没有返回false
    • String getString(String columName)根据列名 获取
    • String getString(int columIndex)根据列的索引获取

如何防止sql注入

使用PreparedStatement防止sql注入 预编译SQL语句 提高效率
java.sql.Connection
PreparedStatement prepareStatement(String sql)