JDBC java数据库知识要点

来源:互联网 发布:全国网络教育统考网 编辑:程序博客网 时间:2024/06/05 06:36

1) JDBC    Java Database Connection

类比ODBC (Open Database Connection)

它为Java应用程序提供了一系列的类,使其能够快速高效地访问数据库;这些功能是由一系列的类和对象来完成的,我们只需使用相关的对象,即可完成对数据库的操作。

使用JDBC连接数据库可以通过不同的驱动方式来实现,有4种驱动类型:
JDBC-ODBC桥驱动
纯Java驱动
本地API部分Java驱动
JDBC网络纯Java驱动
不论采用哪种驱动方式,在程序中对数据库的操作方式基本相同,只是加载不同的驱动程序即可。


2)相关包

java.sql ==>其中包含了一系列用于与数据库进行通信的类和接口。

使用JDBC时,需要导入 import java.sql.*;

常用的类和接口:java.sql.DriverManager 、java.sql.Statement、java.sql.ResultSet、java.sql.Connection;

java.sql.DriverManager==>处理驱动的调入,为操作数据库提供支持;

java.sql.Connection==>代表了某种类型的数据库的连接;

java.sql.Statement==>代表了对数据库的SQL的操作;

java.sql.ResultSet==>分为java.sql.PrepareStatement(执行预编译的SQL)和java.sql.CallableStatement(执行对数据库过程的调用)。


3)数据库操作步骤

a)建立数据源

b)导入包  import java.sql.*;

c)加载驱动程序  java.sql.DriverManager

d) 获得特定数据库连接对象  java.sql.Connection

e)创建语句对象 java.sql.Statememt

f)执行SQL操作  java.sql.ResultSet

e)关闭数据库的连接  java.sql.ResultSet close()、java.sql.Statement  close()、java.sql.Connection     close();


4)具体实现

a) import java.sql.*;

b)使用 Class 类的forName 方法--》将驱动程序加载到JVM中;

forName指定了完整的名称的类加载到JVM中。---里面写的某种数据库类型的驱动程序。

Class.forName("my.sql.Driver");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");====JVM 自动加载。

c)使用java.sql.DriverManager来生成数据库连接对象java.sql.Connection

Connection con;

String url="jdbc:odbc:数据源名称";

String user="sa";

String password="";

con=DriverManager.getConncetion(url,user,password);

d)创建语句对象 Statement==>一旦成功连接到数据库,获得Connection对象后,必须通过Connection对象的createStatement方法来创建语句对象,才可以执行SQL语句。

Statement sta=con.createStatement();

e)执行SQL语句

String sql_str="DELETE FROM  Students WHERE [Name]=‘小李’ ";

int count=sta.executedUpdate(sql_str);

/****************************************

int executeUpdate(string sql);

Resultset executeQuery(String sql);

ResultSet==》使用Statement对象的executeQuery方法成功执行SELECT语句后,将返回一个包含有结果数据的ResultSet对象,要从该对象中获取数据,将使用到如下方法:

boolean next();

X getX(String columnName);==>X为数据类型如 int double等

X getX(int columnIndex);

String sql_str="SELECT* FROM Students";

ResultSet result_set=sta.executeQuery(sql_str);

while(result_set.next())

{

System.out.print(result_set.getString("Name")+"\t");

System.out.print(result_set.getString("Address")+"\t");

System.out.print(result_set.getInt("age")+"\t");

System.out.print(result_set.getDate("Date")+"\t");

}

******************************************/

f)关闭数据库的连接


// result_set.close();

sta.close();

con.close();










0 0
原创粉丝点击