JDBC连接简介
Connection |
连接对象,用于与数据库取得连接 |
Driver |
用于创建连接(Connection)对象 |
Statement |
语句对象,用于执行SQL语句,并将数据检索到结果集(ResultSet)对象中 |
PreparedStatement |
预编译语句对象,用于执行预编译的SQL语句,执行效率比Statement高 |
CallableStatement |
存储过程语句对象,用于调用执行存储过程 |
ResultSet |
结果集对象,包含执行SQL语句后返回的数据的集合 |
static Class forName(String className) throws ClassNotFoundException |
将由className指定完整名称的类加载到JVM中,如果加载失败,将抛出异常,必须捕捉 |
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载并注册驱动程序
成功加载驱动后,必须使用DriverManager类的静态方法getConnection来获得连接对象;
方 法 原 型 |
说 明 |
static Connection getConnection (String url, String user, String password) throws SQLException |
参数url是连接字符串,参数user是数据库用户名,参数password是登录口令,成功连接到数据库返回Connection对象,连接失败则抛出SQLException异常,必须捕捉 |
Connection con =DriverManager.getConnection("sun.jdbc.odbc.JdbcOdbcDriver", "scott",orcl"");
一旦成功连接到数据库,获得Connection对象后,必须通过Connection对象的createStatement方法来创建语句对象,才可以执行SQL语句;
方 法 原 型 |
说 明 |
Statement createStatement() throws SQLException |
成功创建返回Statement对象,否则抛出SQLException异常,必须捕捉 |
如:Statement sta = con.createStatement();
一种是执行DELETE、UPDATE和INSERT之类的数据库操作语句(DML),这样的语句没有数据结果返回,使用Statement对象的executeUpdate方法执行;
方 法 原 型 |
说 明 |
int executeUpdate(String sql) throws SQLException |
参数sql是要执行的SQL语句,执行成功返回受影响的行数,执行失败则抛出SQLException异常,必须捕捉 |
如:sta.executeUpdate("INSERT INTO Friends VALUES(‘田七‘, ‘重庆‘, 456712, ‘2003-2-25‘, 7500)");
另一种是执行SELECT这样的数据查询语句(DQL),这样的语句将从数据库中获得所需的数据,使用Statement对象的executeQuery 方法执行;
方 法 原 型 |
说 明 |
ResultSet executeQuery(String sql) throws SQLException |
参数sql是要执行的SQL语句,查询成功返回包含有结果数据的ResultSet对象,否则抛出SQLException异常,必须捕捉 |
如:ResultSet rs =sta.executeQuery("SELECT * FROM Friend");
使用Statement对象的executeQuery方法成功执行SELECT语句后,将返回一个包含有结果数据的ResultSet对象,要从该对象中获取数据,将使用到如下方法:
package jdbc;
import java.sql.Connection;
import
java.sql.DriverManager;
import java.sql.ResultSet;
import
java.sql.SQLException;
import java.sql.Statement;
public class
Testjdbc {
public static void main(String[] args)
throws SQLException {
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");//加载并注册驱动程序
}catch(ClassNotFoundException
e)//加载错误,捕获异常
{
System.out.println("加载驱动失败");
}
Connection con
=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
"scott","tiger"); //创建Connection连接对象
Statement
sta = con.createStatement(); //创建语句对象
ResultSet
rs=sta.executeQuery("select * from emp"); //4,执行语句对象,如果查询,要把查询结果 放到结果集当中
while(rs.next()){ //当没有到结尾的时候
System.out.print(rs.getInt("empno")+" ");//用Get方法获取字段的值
System.out.print(rs.getString("ename")+" ");
System.out.print(rs.getDouble("sal"));
System.out.println();
}
//5,关闭资源
rs.close();
sta.close();
con.close();
}
}