国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP-06-使用JDBC操作數據庫

2019-11-15 00:10:44
字體:
來源:轉載
供稿:網友
jsp-06-使用JDBC操作數據庫6.1 使用JDBC查詢數據 【鏈接Oracle數據庫】

具體操作:

1) 將odbc文件拷貝到項目中

  Odbc文件所在目錄: oracle安裝目錄下- PRoduct – db_1 – jdbc -lib – odbc14.jar

  復制到項目的 webRoot – webinf -lib 中

  在項目中添加引用

2) 實現數據查詢

      Connection connection=null;

Statement stmt=null;

ResultSet rs=null;

try {

//(1)Class.forName()加載驅動

Class.forName("oracle.jdbc.driver.OracleDriver");

//(2)DriverManager.getConnection(URL,用戶名,密碼)獲得數據庫連接 (Connection)

connection=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:news","scott","tiger");

//(3)獲得Statement對象,執行SQL語句

String sql="select * from news_detail";

stmt=connection.createStatement();

rs=stmt.executeQuery(sql);

//(4)處理執行結果(ResultSet)

while(rs.next()){

int id=rs.getInt("id");

String title=rs.getString("title");

Timestamp time=rs.getTimestamp("createdate");

//輸出

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

//釋放資源

try {

rs.close();

stmt.close();

connection.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

6.2 使用JDBC操作數據 【鏈接oracle數據庫】

String sql="insert into news_detail(id,categoryId,createdate) values(?,?,?)";

pstmt=connection.prepareStatement(sql);

pstmt.setInt(1, id);

pstmt.setInt(2, categoryId);

pstmt.setTimestamp(6, new java.sql.Timestamp(createdate.getTime()));

int i=pstmt.executeUpdate();

//(4)處理執行結果

if(i>0)

System.out.println("插入成功!");

6.3 升級JDBC (基于屬性文件的數據庫配置)

目的: 更改數據庫時,便于修改,靈活。

屬性文件: 把相關數據庫配置信息寫在文件中,并保持在項目內,在程序中讀取文件中的信息,從而進行數據庫連接。在Java中提供了 Properties 類,來讀取 .properties(屬性)文件。在項目中默認路徑(src)下創建文件,名稱為 db.properties (名稱可自定義,擴展名必須為 properties), 編輯文件內容

1) src – 新建 – other - *.properties (以.properties結尾,保存數據連接信息)

jdbc.driver_class=oracle.jdbc.driver.OracleDriver

jdbc.connection.url=jdbc:oracle:thin:@localhost:1521:news //路徑

jdbc.connection.username=scott //用戶名

jdbc.connection.passWord=tiger //密碼

2) 使用參數連接DB (讀取配置文件)

詳見 編寫通用DAO中 util 目錄下的 ConfigManager.java

3) 讀取屬性文件

package com.pb.news.util;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

//讀取配置文件(屬性文件)的工具類

public class ConfigManager {

private static ConfigManager configManager;

//properties.load(InputStream);讀取屬性文件

private static Properties properties;

private ConfigManager(){

String configFile="database.properties";

properties=new Properties();

InputStream in=ConfigManager.class.getClassLoader().getResourceAsStream(configFile);

try {

properties.load(in);

in.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//以單例模式創建、獲得對象實例

public static ConfigManager getInstance(){

if(configManager != null){

return configManager;

}else{

makeInstance();

return configManager;

}

}

//同步方法,保證在同一時間,只能被一個人調用

private static synchronized void makeInstance(){

if(configManager==null){

configManager=new ConfigManager();

}

}

public String getString(String key){

return properties.getProperty(key);

}

}

4) 實現數據查詢

為了避免數據冗余,先編寫接口,然后編寫實現接口,繼承 BaseDao.java 的類。

6.4 數據庫連接池 【看此段內容請忽略6.3】

數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不再是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接,以避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。

1、Tomcat中加入數據庫驅動文件

將數據庫中的odbc14.jar 文件拷貝到 tomcat 的安裝目錄的lib 文件中

2、配置Tomcat的conf/context.xml (Tomcat的安裝目錄)

<Resource name="jdbc/news"

auth="Container" type="javax.sql.DataSource" maxActive="100"

maxIdle="30" maxWait="10000" username="scott" password="tiger"

driverClassName="oracle.jdbc.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:news"/>

(! 項目編寫過程中,有個Server文件夾,里面是項目運行過程中從真實Tomcat中拷貝過來的,所以此處還需要將這段文件拷貝到Server目錄中的 conf/context.xml中。此問題和開發工具有關,這是javaee eclipse的一個bug)

3、配置應用程序的(WEB-INF文件夾中)web.xml文件

(可選,如果JDBC1.6以上此步可略過)

<resource-ref>

<res-ref-name>jdbc/news</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

4、使用JNDI(JAVA的命名和目錄接口)獲取連接對象

public Connection getConnection2() {

try {

//初始化上下文

Context cxt=new InitialContext();

//獲取與邏輯名相關聯的數據源對象

DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news");

conn=ds.getConnection();

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return conn;

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 墨脱县| 松阳县| 万源市| 宝坻区| 龙岩市| 青田县| 凤城市| 宣城市| 西华县| 宕昌县| 阿拉善盟| 潼关县| 望都县| 盘锦市| 白朗县| 武威市| 平远县| 常州市| 宣化县| 连州市| 台中县| 茶陵县| 张家港市| 伊吾县| 九台市| 双辽市| 六枝特区| 罗定市| 兰州市| 稻城县| 辉县市| 崇仁县| 玉林市| 扎囊县| 广饶县| 景泰县| 普兰店市| 宁波市| 静乐县| 宁波市| 奈曼旗|