MySQL数据库之JDBC

目录

  • 使用步骤
  • JDBC常用接口和类
    • 数据库连接Connection
    • Statement对象
      • PreparedStatement对象
    • ResultSet对象

使用步骤

  1. 创建数据库连接Connection
  2. 创建操作命令Statement
  3. 使用操作命令来执行SQL
  4. 处理结果集ResultSet
  5. 释放资源

JDBC常用接口和类

数据库连接Connection

  • 通过DriverManager(驱动管理类)的静态方法获取:
//加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");

//创建数据库连接
Connection connection = DriverManager.getConnection(jdbc:mysql://localhost:3306/test?  
user=root&password=root&useUnicode=true&characterEncoding=UTF-8);
  • 通过DataSource(数据源)对象获取:
DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();

以上两种方式的区别:

  1. DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源
    时,通过connection.close()都是关闭物理连接。
  2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接
    是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将Conncetion连接对象回收。

Statement对象

JDBC API中主要提供了三种Statement对象:

  1. Statement:
    • 用于执行不带参数的简单SQL语句
  2. PreparedStatement:
    • 用于执行带或者不带参数的SQL语句
    • SQL语句会预编译在数据库系统
    • 执行速度快于Statement对象
  3. CallableStatement:
    • 用于执行数据库储存过程的调用

PreparedStatement对象

PreparedStatement特性

  1. 参数化SQL查询
  2. 性能比Statement高
  3. SQL预编译
  4. 阻止常见SQL注入攻击
  5. 占位符:? 下标从1开始
  6. 占位符不能使用多值

常用方法

方法声明 作用
int excuteUpdate(String sql) 可执行增、删、改,返回执行受到影响的行数
ResultSet executeQuery(String sql) 执行SQL查询,并返回ResultSet对象
boolean execute(String sql) 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet(只有执行查询才为true)

ResultSet对象

ResultSet对象被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法提供了对这些行中数据的访问。

常用方法

方法声明 作用
boolean next() 游标下移,判断该行是否有结果
xx.getXx(int index) 获取该行结果中某个字段的数据,index为编号,index从1开始
xx.getXx(String name) 获取该行结果中某个字段的数据,name为字段名

你可能感兴趣的:(MySQL,数据库,mysql,java)