一、基本概述
jdbc全称(java DataBase Connectivity),即就是使用Java语言操作数据库中的数据(在这里需要注意的是大部分情况下操作数据库中的数据,即就是对数据库表中的记录进行相应的操作也就是通俗意义上的增,删,改,查;很少对数据库或者表进行相应操作也就是很少使用DDL语言)。
二、JDBC的基本原理
由于数据库不止一种,像我们熟知的MySql,Oracal,SqlServel,Access等等,早期SUN公司的天才们想编写一套可以连接天下所有数据库的API,但是当他们刚刚开始时就发现这是不可完成的任务,因为各个厂商的数据库服务器差异太大了。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!
JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。
当然还有第三方公司专门为某一数据库提供驱动,这样的驱动往往不是开源免费的!
三,Jdbc的核心类
1.DriverManager:用来获取Connection对象
*DriverManager.getConenction(url,DataBaseName,DataBasePassword);
2.Connection:该类的对象可以获取Statement/PrepareStatement对象
*conn.getStatement();
*conn.getPrepareStatement(String sql);由于PrepareStatement对象与sql模板绑定,所以在创建该对象时需要传一个sql语句参数;
3.PrepareStatement:Statement是PreppareStament的父接口,这两种接口有些区别,但这两种类都有相同的两个方法
*int executeUpdate (String sql):执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table,alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句;
*ResultSet executeQuery (String sql):执行查询操作,执行查询操作会返回ResultSet,即结果集
4. ResultSet:结果集,主要用在查询语句中,用来接收查询到的结果集。
ResultSet之获取列数据
可以通过next()方法使ResultSet的游标向下移动,当游标移动到你需要的行时,就需要来获取该行的数据了,ResultSet提供了一系列的获取列数据的方法:
String getString(int columnIndex):获取指定列的String类型数据;
int getInt(int columnIndex):获取指定列的int类型数据;
double getDouble(int columnIndex):获取指定列的double类型数据;
boolean getBoolean(int columnIndex):获取指定列的boolean类型数据;
Object getObject(int columnIndex):获取指定列的Object类型的数据。
5.Statement和PrepareStatement的区别:
两者的区别即就是前者容易发生SQL注入,而后者则可以在一定程度上避免这种情况的出现(当然防止SQL注入也可以通过其他方式.);它最大的优势即就是预处理,由于该接口的与语句sql模板绑定,当第一次执行由该接口实现类的对象执行某一sql语句时,将sql语句传给数据库后需要对sql模板进行语法校验,再进行编译,执行时只把参数传递过去即可。等到第二次再次执行相同的sql语句时,则不再对sql模板的语法进行校验,也不再进行编译,而是直接传递相应的参数执行即可。
Jdbc笔记(第一部分:基础)
最新推荐文章于 2022-05-06 20:36:32 发布