JDBC是一种用于执行SQL的Java API,它本身是个商标名,但很多人把它认为是Java Database Connectivity(Java 数据库连接)的缩写。
JDBC是一组访问数据库的API集合,通过加载由数据库厂商所提供的驱动程序,可以与数据库建立连接。这样,就不必为访问不同的数据库而写不同的程序了,只需用一个JDBC API写一个程序就够了。而且是,JDBC技术对开发者屏蔽了一些细节问题,这样,程序员就不必去关心底层的实现技术了。另外,跟java一样,JDBC 对数据库的访问也具有平台无关性。
JDBC访问数据库的步骤:
1.注册并加载驱动程序:
驱动程序是数据厂商所提供的一个对外的接口来分辨所访问的是哪一种数据库.
我们可以调用Class.forName()显示地加载驱动程序.方法如下(以MySql为例):
Class.forName("org.gjt.mm.mysql.Driver");
Class.forName()是一个静态方法,用于指示Java虚拟机动态的查找,加载和链接指定类(如果尚未加载).如果无法找到这个类,则抛出ClassNotFountException.
2.创建连接:
数据库连接是使用DriverManager对象的静态方法getConnection()建立的,方法如下:
String url = "jdbc:mysql://127.0.0.1:3306/qq"; //127.0.0.1为连接地址,qq为数据库名
Connection conn = DriverManager.getConnection(url, "root", "root");
// "root", "root"为用户名和密码
3.创建SQL语句对象:
SQL语句对象主要是用来执行SQL语句的,当建立了连接以后,便可以由Statement对象将SQL语句发送到DBMS.对SELECT语句,可使用executeQuery();对于创建或修改表的语句,使用executeUpdate();方法如下:
Statement st = conn.createStatement();
4.提交SQL语句:
得到创建SQL语句对象后,我们就可以提交SQL语句了,方法如下:
a.查询数据:
ResultSet rs = st.executeQuery("select * from login"); //返回查询SQL语句所得到的ResultSet对象格式的结果集.
b.添加数据:
int i = st.executeUpdate( "insert into login values('zhang','123')"); //这个方法返回值是一个整数,代表的是影响数据的行数.
我们也可以用Statement的子接口PreparedStatement来实现提交,而PreparedStatement的子接口CallableStatement则用于执行SQL存储过程.
5.显示结果:
当执行查询语句时,SQL语句的执行结果存储在ResultSet对象中.我们可以使用Getxxx方法来检索数据.方法如下:
while(rs.next()){
String name = set.getString("name");
String password = set.getString("password");
}
如果发送的SQL语句不是查询语句,则这一步将省略.
6.关闭连接:
当完成数据库操作后,需要将连接关闭.因为数据库连接需要消耗系统资源.一旦不需要使用的时候,就应该释放出来.这是程序员必须养成的良好的习惯.在关闭连接时,正确的顺序是:Result,Statement,Connection.语法如下:
rs.close();
st.cloe();
conn.close();
为确保所有的连接能够被关闭,应该把关闭语句写在finally块中,这样,不管操作数据库过程中是否发生异常,都能够将资源释放出来.
连接其它的数据库步骤均相同,只需更改驱动程序即可.