JDBC之java使用oracle中scott表實現增刪改查.1
Java與oracle資料庫連線—–JDBC
Dao工具的建立
**寫部落格的目的及好處
1,為了把完成的知識點整理出來,
2,等同督促自己做學習總結
3,方便自己及同行者的閱覽
4,如有有心者,可以分享更精的知識
————————————————
該案例使用的是oracle中解鎖的scott表
案例是在java中使用sql語句來呼叫資料庫中資料,實現在java中實現使用者的增刪改查操作
oracle 的安裝是件頭疼的事,意外的就會在安裝時讓你電腦不得 不去重新裝系統了,但是這只是過程,結果我們的電腦上都會有oracle的,我在電腦上設定的oracle狀態是手動登陸,就是在電腦–管理—服務,每次開機使用時手動開啟,因為,裝了oracle電腦就很吃不消額。。。
首先,解鎖scott表:在裝oracle時使用的密碼,去新建一個表空間,在該表中解鎖oracle自帶的表scott
alter user scott account unlock;---解鎖
alter user scott identified by scott123;---設定密碼
–在java中使用面向物件,分層模式
使用的是三層模式,
1,資料庫訪問層
2,業務邏輯層
3,表示層
步驟—
1,建立實體類,
2,建立工具類
3,dao介面,dao 實現類
4,組織介面
一,定義實體
scott表較簡單,建立實體時要注意關聯關係,封裝外來鍵
二,建立工具類
把每一功能細分好,這樣可以更加細緻的呼叫
我把連線,執行sql語句,處理結果最後close,最後呼叫關閉
“`
public class BaseDao{
//類的成員,屬性
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
//定義靜態常量
private static final String DRIVER_CLASS=“oracle.jdbc.driver.OracleDriver”;
private static final String USER=”scott”;
private static final String PASS=”scott123”;
//連線資料庫
public Connection getConnection(){
try {
Class.forName("oracle.jdbc.drier.OracleDriver");
conn=DriverManager.getConnection(URL,"scott","aya123");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//增
public int executeUpdate(String sql){
int ret=0;
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql);
ret=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
//過載,帶佔位符的
public int executeUpdate(String sql ,Object[] parms){
int ret=0;
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql); //獲得sql語句得到的資料,放在ps“這兩裝載車上”
if(parms!=null){
for(int i=0;i<parms.length;i++){
ps.setObject(i+1, parms[i]); //把ps"車上的數資料"分給parms這個陣列中
}
}
ret=ps.executeUpdate();//分好了返回1,否則返回0
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
//過載,
public int executeUpdate(String sql ,Object parms){
return executeUpdate(sql,new Object[]{parms});
}
//List 存放,帶佔位符
public int executeUpdate( String sql,List<Object> parms){
int ret=0;
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql);
if(parms!=null){
for(int i=0;i<parms.size();i++){
ps.setObject(i+1, parms.get(i));
}
}
ret=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
/**
* jdbc查詢,帶佔位符
* @param sql
* @param parms
* @return rs
*/
public ResultSet executeQuery(String sql ,Object[] parms){
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql);
if(parms!=null){
for(int i=0;i<parms.length;i++){
ps.setObject(i+1, parms[i]);
}
}
rs=ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
//方法過載
public ResultSet executeQuery(String sql,Object parms){
return executeQuery(sql,new Object[]{parms});
}
public ResultSet executeQuery(String sql,List parms){
return executeQuery(sql,parms.toArray());
}
public ResultSet executeQuery(String sql){
return executeQuery(sql,new Object[]{});
}
public void close(){
try {
conn.close();
ps.close();
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}