JDBC的API详解(一)
1 Driver接口和DriverManager驱动管理 (主要用来建立和数据库的连接以及管理jdbc驱动器,DriverManager的方法都是静态的)
- registerDriver(Driver driver):在DriverManager中注册jdbc驱动器。(一般不使用) 因为在DriverManager类中已经有了一个静态代码块已经调用了所以我们在工作中一般使用Class.forName(“com.mysql.jdbc.Driver”)
- deregister(Driver driver):在DriverManager中注销jdbc驱动器。
- getConnection(String url,String user,String pwd) 建立和数据库的连接,并返回表示数据库连接的Connection对象。
Connection conn = DriverManager.getConnection("jdbc:mysql:///login","root","root");
- jdbc :注册数据库的协议
- mysql :jdbc的子协议
- //后面加的是连接数据库主机的地址 如果是本机可以省略
- login 是数据库的名称
- setLoginTimeOut(int seconds): 设定等待建立数据库连接的超时时间。
- setLoginWriter(PrintWriter out) : 设定输出JDBC日志的PrintWriter对象。
2 Connection接口
Connection接口代表Java程序和数据库的连接,主要方法:
- getMetaData(): 返回表示数据库的元数据的DatabaseMetaDAta对象。
- createStatement() 创建并返回Statement对象。
- prepareStatement(String sql) 创建并返回一个preparedStatement对象
3.Statement接口
Statement 接口提供了三种执行SQL语句的方法
- execute(String sql) 执行各种SQL语句该方法返回一个boolen类型的值,如果为true,表示所执行有结果 可通过Statement的getResultSet()方法获得这一查询结果
- exceuteUpdate(String sql) 执行SQL的 insert,update,delete语句。该方法返回int类型的值,表示数据库中受该语句影响的记录数目。
- execteQuery(String sql): 执行一个select语句。该方法返回一个表示查询结果的ResultSet对象,例如
String sql = "select ID, NAME,TITLE,PRICE form BOOKS"+"where NAME='Tom' and PRICE=40";
ResultSet rs=stmt.execteQuery(sql); //stmt为Statement对象
ResultSet
ResultSet接口表示select查询语句得到的结果集,调用ResultSet对象的next()方法,可以使游标定位到结果集的下一个记录,调用ResultSet对象的setXXX()方法可以获得一条记录中的某一个字段。
- getString(int columnIndex) :返回指定字段的String类型的值,columnIndex表示字段的索引
- getString(int columnName) :返回指定字段的String类型的值,columnName表示字段的名称
- getInt(int columnIndex) :返回指定字段的int类型的值,columnIndex表示字段的索引)
- getInt(int columnName) :返回指定字段的int类型的值,columnName表示字段的名称
- …
下面做一个访问数据库的小案例
package com.company;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBC1 {
//1.加载驱动
//2.获得连接
//3.基本操作
public static void demo1() throws Exception{
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获得连接
Connection conn = DriverManager.getConnection("jdbc:mysql:///login","root","root");
//3.基本操作 :执行SQL
//3.1获得执行SQL语句对象
Statement statement=conn.createStatement();
//3.2编写SQL语句
String sql="select*from login";
//3.3执行SQL语句
ResultSet rs= statement.executeQuery(sql);
//遍历结果集
while(rs.next()){
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
}
//4.释放对象3
rs.close();
statement.close();
conn.close();
}
}
========