java JDBC (1)

本文介绍了JDBC如何为Java开发者提供统一的数据库编程接口。详细解释了DriverManager、Connection、Statement等关键接口的作用及使用方法,并展示了通过PreparedStatement预防SQL注入的技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成。是java程序与数据库库系统通信的标准API,JDBC API使得开发人员可以使用纯java的方式来连接数据库并执行操作


访问数据库流程:
1 驱动管理器--->加载JDBC驱动程序
2 连接数据库--->建立于数据库的连接
3 SQL语句   --->发送SQL查询
4 结果集    ---> 得到查询结果


JDBC常用接口
Driver接口
Driver驱动由数据库厂家提供,对于java开发者而言,只需要使用Driver接口
在编程中要连接数据库,必须先加载特定的数据库驱动程序,建立建立连接时该连接对象内部其实包含一个Socket对象,是一个远程连接
驱动:就是各个数据库厂商实现的JDBC接口,即对Connection等接口的实现类的jar文件
具体操作
Class.forName("com.mysql.jdbc.Driver")




DriverManager接口
该接口是JDBC的管理层,作用于用户和驱动程序之间
该接口跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接


Connection接口
该接口与特定数据库连接,在连接上下文中执行SQL语句并返回结果
DriverManager的getConnection()方法建立在JDBC URL中定义的数据库连接上
在建立连接时,连接对象内部包含了Socket对象,是一个远程对象,比较耗时,为了提高效率,都会使用连接池来管理连接对象


连接MYSQL数据库:


Connection conn=DriverManager.getConnection"jdbc:mysql://host:port/database","user","pa
ssword
")


Statement接口
用于执行静态SQL语句并返回所生成结果的对象
三种Statement类:
Statement:
由createStatement创建,用于发送简单的SQL语句,不带参数
Statement statement=conn.getStatement();
statement.execute(String sql);


PreparedStatement:
继承自Statement接口,由prepareStatement创建,用于发送含有一个或多个输入参数的失去了语句,PreparedStatement对象比Statement对象效率高,并且防止SQL注入
String sql="INSERT INTO test(name,password) VALUES (?,?)";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,"wang");   //参数索引从1开始
preparedStatement.setString(2,"cheng");
preparedStatement.execute();


CallableStatement:
继承自PreparedStatement。由方法prepareCall创建,用于调用存储过程


常用的Statement方法:
execute()方法:运行语句,返回是否有结果集
statement.execute(String sql);
executeQuery()方法:运行select语句,返回ResultSet结果集
ResultSet resultSet=preparedStatement.executeQuery();
while(resultSet.next()){
    System.out.println(
            resultSet.getObject(1)+" "+
            resultSet.getObject(2)+" "+
            resultSet.getObject(2)
);
executeUpdate()方法:运行insert/update/delete操作,返回更新的行数


依次关闭使用的对象ResultSet Statement Connection
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值