1.
package com.hx;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil {
// URL
public final static String URL="jdbc:oracle:thin:@192.168.188.102:1521:orcl";
//前提启动oracle
public final static String USERNAME="";//用户名
public final static String PWD="";//密码
public final static String DRIVER="oracle.jdbc.driver.OracleDriver";
//java程序中如何获取DRIVER
//静态块
static{
try {//使用Class.forName可以达到加载特定驱动程序的目的,每种数据库管理系统(DBMS)
//的驱动都不同,有数据库厂商提供
Class.forName(DRIVER);
//目前我们连接的是Oracle所以在此我们要写好OracleDriver
//java.lang.ClassNotFoundException
System.out.println("获取驱动成功!");
} catch (ClassNotFoundException e) {
System.out.println("没有获取到驱动!");
e.printStackTrace();
}
}
//java将会利用获取到的驱动来连接数据库 java.sql
public Connection getConnection() throws SQLException{
Connection conn=null;
//先获得数据库的驱动
conn=DriverManager.getConnection(URL, USERNAME, PWD);
return conn;
}
//创建释放所有资源的方法
public void closeAll(ResultSet rst,Statement stmt,Connection conn){
if(rst!=null){
try {
rst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
2.写一个测试案例
package com.hx;
import java.sql.*;
import java.text.SimpleDateFormat;
public class MainTest {
public static void main(String[] args) {
Connection conn=null;//数据库连接时使用
Statement stmt=null;//数据库连接成功后,对数据进行操作时的对象
ResultSet rst=null;//查询数据时会返回结果集
DBUtil db=new DBUtil();//实例化一个对象
try {
conn=db.getConnection();//连接数据库
System.out.println("连接数据库成功!");
//试一试,查询emp中的数据
String sql="select * from emp";
//操作数据 -- 查询
stmt=conn.createStatement();//创建数据操作对象
rst=stmt.executeQuery(sql);//stmt执行查询语句,并把返回的结果放到了rst中
//遍历结果集、
while(rst.next()){
String empno=rst.getString("empno");
String ename=rst.getString(2);// int|number|numeric--->int varchar2() --->String
//String ename=rst.getString("ename");
//Date date=rst.getDate("hiredate");
//Time time=rst.getTime(5);
//SimpleDateFormat f=new SimpleDateFormat("yyyy年MM月dd日");
//String newDate=f.format(date);
//System.out.println(empno+" : "+ename+"--->"+date+" "+time+"变为:"+newDate);
System.out.println(empno+":"+ename);
}
} catch (SQLException e) {
System.out.println("连接数据库不成功");
e.printStackTrace();
}finally{
//释放所有资源
db.closeAll(rst, stmt, conn);
}
}
}
3.结果现象