JDBC学习笔记

166 阅读2分钟

这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战

JDBC

JAVA Database Connectivity(Java数据库连接)

是Java中一种用于连接数据库的API,它为多种数据库提供了统一的接口访问,这样在程序员使用Java连接数据库时就不用考虑用的到底是什么数据库,只要通过JDBC就可以连接数据库

image-20210730194334782

程序员通过JDBC提供的接口进行数据库操作程序的编写,JDBC将数据库操作代码提供给数据库驱动,数据库驱动在将代码转换为自己的数据库能识别的sql语句,最后在数据库里面进行执行。

DriverManager

驱动管理器。当调用它getConnection()时,DriverManager会从那些加载的驱动程序中查找合适的驱动程序。

Connection conn = DriverManager.getConnection(url,user,password);

Connection

JDBC中对数据库进行操作的抽象类,它里面含有所有对数据库进行操作的函数

isClosed();	//检查对数据库的连接是否关闭

/**
sql="select * from Student where sno=?"
创建一个PrepareStatement对象,可以对sql语句中的参数sno
进行赋值操作,然后将sql语句发送到数据库进行执行
*/
prepareStatement(String sql);

/**
sql="select * from Student"
创建Statement对象,不可以对sql语句进行赋值操作
*/
createStatement();

/**
撤销在当前事物中所做的任何更改,
并且释放该Connection对象当前所持有的所有锁
*/
rollback();

close();//主动关闭当前数据库的连接,而不是等着他们自动释放
isReadOnly();//查看当前Connection对象是否处于只读模式

PreparedStatement

boolean execute()

执行PreparedStatement对象中的sql语句,可以是任何类型的sql语句

ResultSet executeQuery()

执行sql语句,并且将结果返回到ResultSet对象中

int executeUpdate()

执行如update、insert、delete或者不返回任何内容的sql语句。最后返回一个影响的行数。

void setXXX(参数位置,value)

/**
sql = "update Student set name=? age=? where id=?"
*/
setString(1,"loser");
setInt(2,23);
setInt(3,1);

ResultSet

数据库结果集的数据表,通过执行查询数据库的语句生成。

ResultSet对象保持着一个光标指向当前的数据行。最开始的时候光标处于第一行,next方法将光标移动到下一行,当没有下一行的时候返回false。

boolean absolute(int row)

将光标移动到给定行

void afterLast() / void beforeFirst()

将光标移动到最后一行后面或第一行前面

void deleteRow()

从ResultSet对象和底层数据库中删除当前行。【mysql中使用出现异常】

XXX getXXX(XXX column)

根据传入的参数值获取当前这一行的具体某一列的值

/**
sno			name	age
20176326	loser	   23	
*/
rs.getString("name");
//result: loser