JDBC入门(一)—jdbc概述与常用API

JDBC概述

JDBC全称为Java Database Connectivity(Java数据库连接),是Java访问数据库操作的基础,是一种用于执行SQL语句的Java API,是一个规范

JDBC入门操作

  • 搭建开发环境
    创建项目后,在项目下创建lib目录,复制mysql驱动jar包粘贴在lib中,右击jar包build path—Add build path
    MySQL驱动下载地址MySQLConnector/J
  • 编写程序,在程序中加载数据库驱动
    DriverManager.registerDriver(new Driver());
  • 和MySQL数据库建立连接
    Connection conn = DriverManager.getConnection(“jdbc:mysql:localhost:3306/jdbctest”,“用户名”,“密码”)
  • 创建用于向数据库发送SQL语句的Statement对象
    Statement state = new Statement();
  • 从代表结果集的ResultSet中取出数据
    ResultSet rs = state.executeQuery(“sql”);
  • 断开与数据库的连接,并且释放相关资源
    conn.close();state.close();rs.close();

JDBC的API

DriverManager:驱动管理类

  • 主要作用

一:注册驱动
DriverManager.registerDriver(new Driver())会注册两次驱动,因为DriverManager类中的静态代码块有注册驱动的代码,通常注册驱动的方式为:**Class.forName(“com.mysql.jdbc.Driver”)**此语句作用为加载Driver类,从而执行其静态代码块,来注册驱动
二:获得链接
Connection getConnection(String url,String username,String password);
url写法:jdbc:mysql://localhost:3306/jdbctest
jdbc:协议
mysql:子协议
localhost:主机名
3306:端口号
jdbctest:数据库名
url简写:jdbc:mysql:///jdbctest 默认连接的数据是本机

Connection:连接对象

  • 主要作用

一:创建用于执行SQL语句的对象
statement createStatement();执行SQL语句
preparedStatement prepareStatement(String sql);预编译SQL语句
CallableStatement prepareCall(String sql);执行SQL中的存储过程
二:进行事物的管理
setAutoCommit(boolean autoCommit);设置事务是否自动提交
commit();事务提交
rollback();事务回滚

Statement:执行SQL

  • 主要作用

一:执行单条SQL语句
execute(String sql);执行SQL语句,执行select语句返回true,否则返回false
ResultSet executeQuery(String sql);执行SQL中的select语句,返回查询到的结果存入ResultSet结果集中
int executeUpdate(String sql):执行SQL中的insert/update/delete语句,返回影响的行数
二:批处理操作
addBatch(String sql):添加到批处理
executeBatch():执行批处理
clearBatch():清空批处理

ResultSet结果集

  • 概述:执行查询语句后的结果的封装
  • 主要作用

一:遍历查询的数据
next();判断是否存在下一个数据
二:获取某个特定数据
针对不同的类型的数据可以使用getXXX()来获取数据(如getInt/getLong)
getObject(String columnLabel):通过名称来获取object对象

JDBC的资源释放

jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResulSet,Statement和Connection对象。
特别是Connection对象,它是非常稀有的资源,用完之后必须马上释放,如果Connection不能及时,正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放

正确资源释放的代码

if(rs!=null){
	try{
		rs.close();
	} catch(SQLException e){
		e.printStackTrace();
	}
	rs=null;
}

手动将对象置为null,系统才能将其垃圾回收

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值