程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java SE數據庫的連接操作:訪問數據庫

java SE數據庫的連接操作:訪問數據庫

編輯:關於JAVA

對於項目開發來說,數據庫是占據著相當重要的一個環節。

這節內容圍繞一個關於數據庫操作的程序來展開,包括添加、修改、刪除和查詢(簡稱CRUD)幾種操作

這兒給出程序的題目:對新聞標題進行CRUD的操作。

一 . 既然是新聞標題,數據庫的表就建立為如下圖所示的幾個屬性:

該表的名字取名為:firstLevelTitle

我在這兒用的是MySQL,MySQL創建表以及其他的用法看http://zhaoyuqiang.blog.51cto.com/6328846/1127226

二、創建java項目

在Eclipse或MyEclipse中創建java Project項目 news

將對應用的mysqljdbc的驅動包拷貝到項目的lib文件夾下。

注意:  mysqljdbc是一個jar包,不可解壓,將此包直接拖進或者是復制黏貼進lib文件夾下就可以了,這個包中有數據庫連接用到的東西。這個包是從外界導入進Eclipse或MyEclipse,在網上可以下載到該包。當然不同的數據庫有不同的包,如果是SQL Server 2005的話就應該導進sqljdbc的數據jar包。

如下圖所示:

三、實現新聞的數據庫操作類  fltDao.java

    private final String CLS = "org.gjt.mm.mysql.Driver"; //驅動類     
    private final String URL = "jdbc:mysql://localhost:3306/news"; //URL     
    private final String USER = "root"; //數據庫的用戶名     
    private final String PWD = "123456"; //數據庫的密碼     
private Connection conn = null; //數據庫連接     
private PreparedStatement pStmt = null; //預編譯指令集     
private ResultSet rs = null; //結果集

數據庫的連接需要這些量

四、添加新聞標題的方法

public int addFlt(String titleName, String creator, Date createTime){     
          int iResult = 0; //記錄操作結果的變量     
          try{     
                Class.forName(CLS);     
                conn = DriverManager.getConnection(URL, USER, PWD);     
                String sql = "insert into firstLevelTitle(titleName, creator, createTime)     
values(?,?,?)";  // 數據庫中的添加操作   
                pStmt = conn.prepareStatement(sql);     
                pStmt.setString(1, titleName);     
                pStmt.setString(2, creator);     
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     
                pStmt.setString(3, df.format(createTime));     
     iResult= pStmt.executeUpdate();     
     conn.close();     
}catch(Exception ex){     
     ex.printStackTrace();     
}     
return iResult;     
}

五、修改新聞標題

public int editFlt(int id, String titleName){     
    int iResult = 0; //記錄操作結果的變量     
    try{     
          Class.forName(CLS);     
          conn = DriverManager.getConnection(URL, USER, PWD);     
          String sql = "update firstLevelTitle set titleName=? where id=?";     
          pStmt = conn.prepareStatement(sql);     
          pStmt.setString(1, titleName);     
          pStmt.setInt(2, id);     
     iResult= pStmt.executeUpdate();     
     conn.close();     
}catch(Exception ex){     
     ex.printStackTrace();     
}     
return iResult;     
}

六、 刪除新聞標題

public int delFlt(int id){     
    int iResult = 0; //記錄操作結果的變量     
    try{     
          Class.forName(CLS);     
          conn = DriverManager.getConnection(URL, USER, PWD);     
          String sql = "delete from firstLevelTitle where id=?";     
          pStmt = conn.prepareStatement(sql);     
          pStmt.setInt(1, id);     
     iResult= pStmt.executeUpdate();     
     conn.close();     
}catch(Exception ex){     
     ex.printStackTrace();     
}     
return iResult;     
}

七、查詢新聞標題

public void showFltList(String tishi){     
try{     
Class.forName(CLS);     
conn = DriverManager.getConnection(URL, USER, PWD);     
String sql = "select * from firstLevelTitle";     
pStmt = conn.prepareStatement(sql);     
               rs=pStmt.executeQuery();     
               //對查詢結果進行處理     
               System.out.println(tishi); //輸出提示信息     
               while(rs.next()){     
                     System.out.println("id:"+rs.getInt("id")+",名稱:     
"+rs.getString("titleName")+" , 創 建 者 : "+rs.getString("creator")+" , 創 建 時 間 :     
"+rs.getString("createTime"));     
               }     
               conn.close();     
          }catch(Exception ex){     
               ex.printStackTrace();     
          }     
     }

八、測試並運行

public static void main(String[] args) {     
     FltDao fltDao = new FltDao();     
     //添加新聞類型     
     fltDao.addFlt("體育", "管理員", new Date());     
     fltDao.addFlt("娛樂", "管理員", new Date());     
     //顯示新聞類型     
     fltDao.showFltList("添加新聞類型後新聞類型列表如下:");     
     //修改新聞類型     
     fltDao.editFlt(1, "體育 1");     
     //顯示新聞類型     
     fltDao.showFltList("修改新聞類型後新聞類型列表如下:");     
     //刪除新聞類型     
     fltDao.delFlt(2);     
     //顯示新聞類型     
     fltDao.showFltList("刪除新聞類型後新聞類型列表如下:");     
}

全部代碼展示:

package bzu.jsj.dao;     
import java.sql.*;     
import java.text.*;     
import java.util.Date;     
        
public class FltDao {     
    private final String CLS = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //驅動類     
    private final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=news"; //URL     
    private final String USER = "sa"; //數據庫的用戶名     
    private final String PWD = "123456"; //數據庫的密碼     
private Connection conn = null; //數據庫連接     
private PreparedStatement pStmt = null; //預編譯指令集     
private ResultSet rs = null; //結果集     
     /**     
      * 添加一級新聞標題的方法     
      */ 
     public int addFlt(String titleName, String creator, Date createTime){     
          int iResult = 0; //記錄操作結果的變量     
          try{     
                Class.forName(CLS);     
                conn = DriverManager.getConnection(URL, USER, PWD);     
                String sql = "insert into firstLevelTitle(titleName, creator, createTime)     
values(?,?,?)";     
                pStmt = conn.prepareStatement(sql);     
                pStmt.setString(1, titleName);     
                pStmt.setString(2, creator);     
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     
                pStmt.setString(3, df.format(createTime));     
     iResult= pStmt.executeUpdate();     
     conn.close();     
}catch(Exception ex){     
     ex.printStackTrace();     
}     
return iResult;     
}     
/**     
 * 修改一級新聞標題的方法,只能修改標題     
 */ 
public int editFlt(int id, String titleName){     
    int iResult = 0; //記錄操作結果的變量     
    try{     
          Class.forName(CLS);     
          conn = DriverManager.getConnection(URL, USER, PWD);     
          String sql = "update firstLevelTitle set titleName=? where id=?";     
          pStmt = conn.prepareStatement(sql);     
          pStmt.setString(1, titleName);     
          pStmt.setInt(2, id);     
     iResult= pStmt.executeUpdate();     
     conn.close();     
}catch(Exception ex){     
     ex.printStackTrace();     
}     
return iResult;     
}     
/**     
 * 根據 id 刪除指定的新聞類型的方法     
 */ 
public int delFlt(int id){     
    int iResult = 0; //記錄操作結果的變量     
    try{     
          Class.forName(CLS);     
          conn = DriverManager.getConnection(URL, USER, PWD);     
          String sql = "delete from firstLevelTitle where id=?";     
          pStmt = conn.prepareStatement(sql);     
          pStmt.setInt(1, id);     
     iResult= pStmt.executeUpdate();     
     conn.close();     
}catch(Exception ex){     
     ex.printStackTrace();     
}     
return iResult;     
}     
/**     
 * 顯示新聞列表的方法     
 * @param tishi 顯示提示信息     
 */ 
public void showFltList(String tishi){     
try{     
Class.forName(CLS);     
conn = DriverManager.getConnection(URL, USER, PWD);     
String sql = "select * from firstLevelTitle";     
pStmt = conn.prepareStatement(sql);     
               rs=pStmt.executeQuery();     
               //對查詢結果進行處理     
               System.out.println(tishi); //輸出提示信息     
               while(rs.next()){     
                     System.out.println("id:"+rs.getInt("id")+",名稱:     
"+rs.getString("titleName")+" , 創 建 者 : "+rs.getString("creator")+" , 創 建 時 間 :     
"+rs.getString("createTime"));     
               }     
               conn.close();     
          }catch(Exception ex){     
               ex.printStackTrace();     
          }     
     }     
/**     
  * 在入口函數中進行測試     
  */ 
public static void main(String[] args) {     
     FltDao fltDao = new FltDao();     
     //添加新聞類型     
     fltDao.addFlt("體育", "管理員", new Date());     
     fltDao.addFlt("娛樂", "管理員", new Date());     
     //顯示新聞類型     
     fltDao.showFltList("添加新聞類型後新聞類型列表如下:");     
     //修改新聞類型     
     fltDao.editFlt(1, "體育 1");     
     //顯示新聞類型     
     fltDao.showFltList("修改新聞類型後新聞類型列表如下:");     
     //刪除新聞類型     
     fltDao.delFlt(2);     
     //顯示新聞類型     
     fltDao.showFltList("刪除新聞類型後新聞類型列表如下:");     
}

注意:

1. 對於數據庫的操作,CRUD是很重要的。

2. 可能有些學員對於代碼中出現的很多陌生的變量以及單詞有 抵觸,很難學習,但是

細心的讀者就會發現,代碼的模式書寫在一定程度上是類似的,代碼是不變的,一些

變量是 不變的,所以這就簡單了。對於初學者要熟記,雖然我不提倡背。但是該背的

還是需要背。

本文出自 “趙玉強的博客” 博客,請務必保留此出處http://zhaoyuqiang.blog.51cto.com/6328846/1127658

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved