JDBC教程

简介: JDBC教程

JDBC教程

使用流程
  • 注册驱动

    Class.forName("com.mysql.cj.jdbc.Driver");
  • 获取连接

    Connection connection=DriverManager.getConnection(url,username,password)
  • 定义SQL语句

    String sql="select xxx from table";
  • 获取执行SQL对象

    Statement statement = connection.createStatement();
  • 执行SQL

    statement.execute(sql);
  • 获取返回后的结果

    ResultSet resultSet = statement.getResultSet();
  • 释放资源

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

常用API

DriverManger(驱动管理类)
  • registerDriver(Driver driver)

    • 作用:用于注册驱动
    • 参数:驱动对象
    • Class.forName("com.mysql.cj.jdbc.Driver") 注册驱动底层实现

      static {
              try {
                  java.sql.DriverManager.registerDriver(new Driver());//类被加载时调用注册方法
              } catch (SQLException E) {
                  throw new RuntimeException("Can't register driver!");
              }
          }
  • getConnection(url,username,password)

    • 作用:用于创建数据库连接
    • 参数: url:数据库连接url username:用户名 password:密码
    • 返回值:Connection对象
Connection(数据库连接对象)
作用:

1.获取执行SQL的对象

2.管理事务

  • 获取普通执行SQL对象

    connection.createStatement()
    • 返回值:Statement
  • 获取预编译SQL执行对象(防止SQL注入)

    connection.prepareStatement(sql)
    • 参数:SQL语句
    • 返回值:PreparedStatement
  • 获取执行存储过程对象

    connection.prepareCall(sql)
    • 参数:SQL语句
    • 返回值:CallableStatement

事务管理API

  • 开启事务

     connection.setAutoCommit();
    • 作用:设置是否开启自动提交:true为自动提交事务,false为手动提交事务,即开启事务
  • 提交事务

    connection.commit();
  • 回滚事务

    connection.rollback();
Statement(普通SQL执行对象)

作用:执行SQL语句

  • statement.executeQuery()

    • 作用:执行DQL语句
    • 返回值:ResultSet对象
  • statement.executeUpdate()

    • 作用:执行DML、DDL语句
    • 返回值:受影响行数
ResultSet(结果集对象)

作用:获取查询结果

  • resultSet.next()

    • 作用:将游标向前移动一行(游标默认在第一行的前一行),判断当前行是否为有效行
    • 返回值:true:当前行有数据 false:当前行没有数据
  • resultSet.getXX()

    • 作用:获取数据
    • XX:数据类型
    • 参数:int:根据列索引获取数据(从1开始) String:根据列名获取数据
PreparedStatement

作用:预编译SQL并执行SQL语句,利用转义符对参数进行转义处理

  • setXxx(参数1,参数2)

    • 作用:给占位符赋值
    • 参数: 参数1:占位符的位置,从1开始 参数2:替换的值

操作流程

  • 获取PreparedStatement对象:sql中的参数用?进行占位

    connection.prepareStatement(sql)
  • 设置参数值setXxx
  • 执行SQL:executeUpdate() executeQuery() 不需要再传递sql

原理:

1.在获取PreparedStatement对象时,将sql语句发送给mysql服务器进行检查、编译(步骤很耗时)

2.执行时就不用再进行这些步骤了,速度更快

3.如果sql模板一样,则只需要进行一次检查、编译

开启PreparedStatment预编译功能:在url参数中添加useServerPrepStmts=true

相关文章
|
SQL Java 数据库连接
Hive教程(08)- JDBC操作Hive
Hive教程(08)- JDBC操作Hive
805 0
|
XML Java 数据库连接
使用Spring JDBC中的JdbcTemplate对数据进行增删改查操作教程~
使用Spring JDBC中的JdbcTemplate对数据进行增删改查操作教程~
292 0
|
Java 数据库连接 Android开发
eclipse导入jdbc教程(简洁)
eclipse导入jdbc教程(简洁)
224 0
|
SQL 安全 Java
肝!Spring JDBC持久化层框架“全家桶”教程!
肝!Spring JDBC持久化层框架“全家桶”教程!
212 0
肝!Spring JDBC持久化层框架“全家桶”教程!
|
SQL Oracle Java
JDBC初学(复习)必备学习笔记-保姆级笔记教程
教程中讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库的同学。Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。
192 0
JDBC初学(复习)必备学习笔记-保姆级笔记教程
|
SQL Java 关系型数据库
mybatis学习教程(一)JDBC到mybatis
     定义: 写作时间:2015年8月27日11:15:50 mybatis是一个java持久层框架,java中操作关系型 数据库用的是jdbc,mybatis是对jdbc的一个封装。
1663 0
|
SQL Java 数据库连接
|
28天前
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
106 1
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
84 0