为什么要产生JDBC?
定义了可以操作所有关系型数据库的规则。即是接口。各个数据库厂商去实现这套接口,提供对应的数据库驱动jar包。真正执行的是驱动jar包中的实现类。
jdbc的本质是:
代码中new出来的各个对象有什么用?
1.DriverManager:驱动管理对象
注册驱动:告诉程序该使用哪一个数据库驱动jar
获取数据库连接:
2.Connection:数据库连接对象
获取执行sql 的对象
管理事务
3.Statement:执行sql的对象
执行sql
4.ResultSet:结果集对象,封装查询结果
5.PreparedStatement:执行sql的对象,和Statement进行对比
ResultSet结果集中封装查询结果,怎么理解?
在数据库中查询数据就会返回一个列表,这个列表就是一个结果集对象
- boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true
- getXxx(参数):获取数据(重载,参数可以是列号或者是列名)
* Xxx:代表数据类型 如: int getInt() , String getString()
* 参数:
1. int:代表列的编号,从1开始 如: getString(1)
2. String:代表列名称。 如: getDouble(“balance”)
ResultSet结果集如何来进行遍历(升级版)?
代码实现:
//循环判断游标是否是最后一行末尾。
while(rs.next()){
//获取数据
//6.2 获取数据
int id = rs.getInt(1);
String name = rs.getString("name");
double balance = rs.getDouble(3);
System.out.println(id + "---" + name + "---" + balance);
}
jdbc最简单实现的步骤是什么?
步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
右键–>Add As Library
2. 注册驱动
3. 获取数据库连接对象 Connection
4. 定义sql
5. 获取执行sql语句的对象 Statement
6. 执行sql,接受返回结果
7. 处理结果
8. 释放资源
JDBC的事务管理是什么意思呢?
使用Connection对象来管理事务。
DDL语句和DML、DQL的语句有什么区别呢?
在执行sql语句的时候:
DDL语句: rs = stmt.executeQuery(sql);//返回结果集,然后从结果集中拿出来所想要的数据
DML、DQL的语句:int count = stmt.executeUpdate(sql);
自动的事务管理,是什么样子的呢?
一般默认是每一条sql就自动提交事务了。修改的就是永久的数据了。