1.JDBC简介
JAVA是通过 JDBC 技术实现各种数据库的访问,而JDBC 是Java数据库连接(Java DataBase Connctivity)技术简称,它充当于数据库的媒婆为为Java应用程序的各种数据库进行搭桥牵线,而且也可以把数据更持久的保存
2.JDBC的工作原理
正如图所示 JDBC的几个重要的组成元素。 在最顶端的是我们自己编写的Java应用程序,二Java应用程序可以使用集成在jdk中的java.sql和javax.sql 的JDBC APL 来连接和操做数据库。
在Java应用程序的下一级则是 JDBC APL
JDBC APL 介绍:
JDBC APL 主要做三件事:与数据库连接,发送SQL语句,处理结果
Driver Manager类:装载驱动程序,并创建新的数据库连接提供支持。
Connection接口:负责连接数据库并承担担任传输数据的任务。
Statement接口:由Connection产生,负责执行sql语句。
ResultSet接口:负责保存和处理Statement执行后所产生的查询结果。
JDBC访问的四个重要的步骤
1.加载驱动,使用Class.forName()这个方法给指定的JDBC驱动加载到java程序中
语法:Class.forName(“JDBC驱动类的名字”)
2.与数据库建立连接
Driver Manage类是JDBC的管理层 ,它在用户和数据库中间,相当于是是一座桥,通过这座桥使用户来操做数据库,当调用
Connection()方法来接收数据库的连接。
语法:Connection conn= DiverManager.getConnection(数据连接字符串,数据库用户名,密码);
注意:如果你的数据库哪里没有密码,就不要写了,对准自己要连接的数据库,以免发生数据库不存在的错误。
3.发生SQL语句,并的到返回结果。
数据库连接成功了,就该创建Statement接口对象,并把SQL语句传递到它所连接的数据库中,将ResultSet的结果集,它包含执行SQL语句查询结果。
示例:Statement stm = conn .createStatement();
sql语句:ResultSet rs = stm.executeQuery(sql语句)
例如:ResultSet rs = stm.executeQuery("insert into student ( id name) valuse(1 , "张三")");这样的,当我们插入的时候,
在C#使用占位符来代替所给的具体值比如:
string sql ="insert into student ( id name) valuse({0} , "{1}")";
"{0}",下标是从0开始的而Java中也有占位符 但与C#不同,Java使用一个问号来占位
在Java使用占位符来代替所给的具体值比如:
string sql ="insert into student ( id name) valuse(? , "?")";
Java中是这样的。
4.返回结果
使用while 来遍历数据,即输出出来。
使用java方式连接数据库常见的几种错误
JDBC 驱动类的名称书写错误,出现ClassNotFoundExceptio 异常。
数据连接字符串,数据库用户名、密码书写错误,出现SQLException异常。数据库操作结束后, 没有关闭数据库连接,导致 仍旧占有系统资源。
关闭数据库连接语句没有放到finally 语句块中,导致语句可能没有被执行。
Statement接口和ResultSet接口
Connection接口常用的方法
立即释放此Conection 对象的数据库和JDBC 资源 方法:void close( )
创建一个Statement 对象来将SQL 语句发送到数据库 方法:Statement createStatement( ) PreparedStatement
创建一个PreparedStatement 对象来将参数化的SQL 语句发送到数据库 方法:prepareStatement(String sql)
查询此Connection 对象是否已经被关闭 方法:boolean isClosed( )
Statement 接口常用方法
可以执行插入、删除、更新的操作,返回值是执行该操作所影响前 方法:intexecuteUpdate (Stringsql)
要创建 Statement对象让后调用execute(String sql )方法 executeUpdate(String sql )方法就可以了。
关闭ResultSet 对象 方法:void close( )
以int 的形式获取结果集当前行指定列号的值 方法:int getInt(String columnIabel)
float的形式获取结果集当前行指定列号的值 方法: float getFloat(int columnIndex)
PreparedStatement接口
PreparedStatement接口继承Statement 接口 ,PreparedStatement比普通的Statement 对象使用起来更加灵活,更有效率
PreparedStatement操做数据库的三个步骤
1,创建PreparedStatement对象
通过Connection 接口来PreparedStatement(String sql )来创建PreparedStatement对象
2,设置每个输入参数值
3,执行SQL语句