1.定义:
JDBC(Java DataBase Connectivity)是一种可用于执行SQL语句的JAVA API,是连接数据库和Java应用程序的纽带。
2.JDBC操作数据库步骤:
- 加载驱动程序 (Class.forName)
- 建立连接 (DriverManager类 Connection接口)
- 向数据库发送SQL语句 (Statement接口,PreparedStatement接口,CallableStatement接口)
- 处理返回结果(ResultSet接口)
- 关闭连接(Connection接口的close()方法)
3.JDBC中常用的类和接口
3.1 DriverManager类
用于管理数据库中所有驱动程序
//加载MySQL数据库驱动
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
使用DriverManager获取本地MySQL数据库连接
DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename","root","password");
3.2Connectoin接口
用于与特定的数据库连接
常用方法
| 方法 | 功能 |
|-createStatement() | 创建Statement对象–|
| preparedStatement() | 创建预处理对象 |
| commit() | 上一次提交/回滚进行的更改成为持久层 |
| rollback() | 取消在当前食物中进行的所有更改 |
| close() | 释放Connection对象的数据库和JDBC资源 |
使用Connectino对象连接MySQL
```java
Connection conn;
try{
Class.forname("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/databaseNamme","root","password");
}catch(SQLExceptino e){
e.printStackTrace();
}
3.3 Statement接口
用于在已经建立连接的基础上向数据库发送SQL语句
常用方法:
execute(String sql) : 执行静态selelct语句,返回结果集
executeQuery(String sql): 执行给定的SQL语句,返回单个ResultSet对象
close() : 释放Connection对象的数据库和JDBC资源
创建Statement对象sql
try{
Statement stmt = conn.createStatement();
}catch(SQLException e){
e.printStactTrace();
}
3.4 PrepareStatement接口
用于执行动态SQL语句
常用方法:
setInt(int index,int k) 将指定位置的参数设置为int值
executeQuery() 执行sql语句
executeUpdate() 执行前面包含的参数的动态Insert,update或delete语句
eg:
PrepareStatement pstm = conn.prepareStatement("select * from user where name=?");
ps.setInt(1,"玛卡巴卡");
3.5 CallableStatement接口
执行对数据库的存储过程的调用
3.6 ResultSet接口
用于暂时存放数据库查询操作所获得的结果集
常用方法:
getInt() 以int形式获取ResultSet对象的当前行的指定列的值
getFloat() 以float形式获取ResultSet对象的当前行的指定列的值
getDate() 以date形式获取ResultSet对象的当前行的指定列的值
next() 将指针向下移一行
updateInt() 用ing值更新指定列
insertRow() 将插入行的内容插入到数据库
updateRow() 将当前行的内容同步到数据表
deleteRow() 删除当前行,但并不同步到数据表中,而是在执行close()方法后同步至数据库
ResultSet res = sql.executeQuery("select * from student");
while(res.next()){
String id = res.getString("id");
String name = res.getString("name");
String birthday = res.getString("birthday");
System.out.println("编号:"+id);
System.out.println("姓名:"+name);
System.out.println("生日:"+birthday);