JDBC讲解

本文介绍了JDBC(JavaDatabaseConnectivity)的基本概念,包括其作为Java操作关系型数据库的API的作用,以及如何通过创建工程、注册驱动、执行SQL等步骤进行快速入门。特别强调了PreparedStatement用于预防SQL注入的安全性。
摘要由CSDN通过智能技术生成

JDBC

含义:实际上就是使用java语言操作关系型数据库的一套API。

全称:(Java DataBase Connectivity)java数据库连接。

JDBC本质:

官方定义的的一套操作所有关系型数据库的规则,即接口。

各个数据库厂商去实现这套接口,提供数据库驱动jar包。

我们可以使用这套接口编程,真正执行的代码时驱动jar包中的实现类。

JDBC的好处:

各数厂商使用相同的接口,java代码不需要针对不同的数据库分别开发。

可随时替换底层数据库,访问数据库java的代码基本不变。

创建jdbc快速入门

步骤1:

创建工程,导入驱动jar包

2:注册驱动:

Class.forName("com.mysql.jdbc.Driver"); 这个是固定不变的,直接照着写就行。

3: 获取连接:

Connection con = DriverManager.getConnection(url,username,password);

url访问数据库的url路径。

username为用户名;

password为密码;

4:定义sql语句:

String sql = "update....";

5: 获取执行sql对象:

Statement stm = con.createStatement();

6: 执行sql

stm.executeUpdate(sql);

7 : 处理返回结果

8:释放资源: 

  stm.close();

con.close();

DriverManager(驱动管理类)作用:

1:注册驱动 

2: 获取数据库连接

Class.forName("com.mysql.jdbc.Driver);

Driver中有静态代码块,可以自动执行DriverManger.registerDriver(new Driver()) 来注册驱动

自动加载jar包中的META-INF/services/java.sql.Driver文件中的驱动类。

(不用写也行)MYSQL 5之后的驱动包,可以省略注册驱动的步骤

在获取连接中url详细信息

Connection详解:

一 :获取执行SQL的对象。

1 获取执行sql对象

普通执行sql对象:

Statement createStatement()

预编译SQL的执行SQL对象: 防止SQL注入

PreparedStatement   prepareStatement(sql)

执行储存过程的对象:

CallableStatement prepareCall(sql)

二   管理事务。

Statement作用

执行sql语句

 int executeUpdate(sql); 执行DML DDL语句

返回值 DML 语句影响的行数 DDL 语句执行后,执行成功也可能返回0

ResultSet executeQuery(sql) 执行DQL 语句

返回值: ResultSet结果集对象。

Statement stmt = con.createStatement();

int count = stmt.executeUpdate(sql) 执行完DDL DML 语句受影响的行数。

 ResultSet

ResultSet (结果对象集)作用:

封装了DQL查询语句的结果:

ResultSet stmt.executeQuery(sql) 执行DQL语句,返回ResultSet对象。

获取查询结果:

boolean next():(1) 将光标从当前位置向前移动一行,(2) 判断当前行是否为有效行。

返回值:

true : 有效行,当前行有数据。

false : 无效行 , 当前行没有数据

   xxx getXxx(参数) 获取数据,比如: int getInt(参数),String getString(参数)。

一般获取数据时要用while来循环。

 PreparedStatement作用

预编译SQL 语句并执行,预防SQL注入问题。

SQL注入

SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。

在sql语句中的连接符号可以用?来代替防止被SQL注入。

在获取对象的过程中来传入SQL语句,不用再执行的时候传入

同时在执行代码中要选取不用注入sql的语句(executeUpdate() )。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值