第一章 JDBC快速入门:
Jdbc简介:
上图结构反应出jdbc是和数据库,和应用程序打交道的。
Jdbc是由sun公司开发的一套接口标准。
而下面的数据库都实现了Jdbc的接口,不同生产商实现的方式不同,导致了数据库的多元化。
第一节:通过jdbc访问数据库。 第一步注册数据库驱动:就是让计算机能过找到你添加jdbc的jar里面的驱动类。通过JdbcUtil里的static来实现
第二步建立连接。conn=DriverManager.getConnection(url,usename,pwd);
第三步创建Statement语句 st= conn.createStatement();
第四步执行sql语句 rs=st.execute(sql);
第五步处理结果集ResultSet . while(rs.next){do something…}
第六步释放资源。JdbcUtil.free();
代码如下:
public class JdbcBasic {
public static void main(String[] args) throws SQLException {
//2建立连接
Connection conn=JdbcUtil.getConnection();
//3 创建语句
Statement st=conn.createStatement();
//4 执行语句
ResultSet rs=st.executeQuery("select id,name,birthday from loginUser");
//5处理结果集
while(rs.next()){
System.out.println(rs.getInt("id")+"\t"+
rs.getString("name")+"\t"+rs.getDate("birthday"));
}
//6释放资源
JdbcUtil.freeSource(rs,st,conn);
}
}
Jdbc工具类如下:
作用主要是注册数据库驱动,和建立连接,以及释放资源等功能;
package cn.utils;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcUtil {
private static Connection connection;
private static String url;
private static String username;
private static String password;
/*1注册驱动。静态代码块:当类被加载到内存的时候 首先执行静态代码块。在这个类生命周期内
* 静态代码块只会执行一次。因为第一次加载类的时候,内存中就运行了,并且存放在内存中。
* 所以当你在new对象的时候,静态代码块是不会执行的。*/
static{
try {
//利用反射找到oracleDriver类的字节码,这个类自己会注册生产商的驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
InputStream ips=JdbcUtil.class.getClassLoader().
getResourceAsStream("dbcpConfig.properties");
Properties prop=new Properties();
prop.load(ips);
url=prop.getProperty("url");
username=prop.getProperty("user");
password=prop.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
throw new ExceptionInInitializerError(e);
}
}
//2建立连接
public static Connection getConnection(){
try {
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return connection;
}
//6释放资源
public static void freeSource(ResultSet rs,Statement st,Connection connection){
if(rs!=null){
try {rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(st!=null){
try {st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(connection!=null){
try {connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}
|
|