黑马程序员技术交流社区
标题:
黑马程序员—Java_JDBC编程
[打印本页]
作者:
Jeik
时间:
2014-11-5 12:51
标题:
黑马程序员—Java_JDBC编程
第一章
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();
}
}
}
}
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2