1. 程式人生 > >MyEclipse 資料庫連線方法

MyEclipse 資料庫連線方法

本文采用Mysql資料庫(mysql-5.0.41-win32-Setup.exe

(一)JDBC方式

(1)下載mysql驅動程式(本文使用mysql-connector-java-5.0.7-bin.jar),把這個檔案放在tomcat安裝目錄的lib目錄下,則tomcat中所有的web應用都可以使用mysql驅動了,如果將其放在某個web應用的“WEB-INF/lib”子目錄中則僅有此web應用能使用mysqlJDBC驅動

(2)載入驅動程式

 Class.forName("com.mysql.jdbc.Driver");//資料庫驅動程式

(3)連線資料庫(Connection)

 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/new

","root","sa");

(4)操作資料(Statement)

Statement sql=conn.createStatement();

String sqlStr=“select ID from table2”;

ResultSet rs=sql.executeQuery(sqlStr);

(5)顯示資料

      <table border="1">
     
<%
      while(rs.next()){
%>
      <tr><td><%=rs.getLong("ID")%>
</td></tr>

      <%
      } %> 
      </table>

注意事項:

a.(2)(3)(4)步中,若是寫在JSP頁面中,則應放在<% %>中

b.當把驅動程式放入lib中後,要重啟tomcat,否則會顯示連線不上

c.若不知道驅動程式的全稱,可以通過Myeclipse載入數庫獲得

在windows->open perspective->MyEclipse Database EXplorer

可以得到資料庫驅動的名稱和路徑

(二)資料庫連線池

(1)在tomcat下conf/context.xml中<context></context>間加入

<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource"
     maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
     username="root" password="sa" driverClassName="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/new" />

其中maxActive屬性的值為連線資料庫的最多活動連線數,maxIdle屬性的值為最多的空閒連線個數,maxWait屬性設定生成一個有效的資料庫連線等待的時間,單位為秒,如果超過這個時間表示超時了,將丟擲超時異常。

(2)資料庫驅動放入tomcat下/lib目錄,重啟tomcat

(3)測試連線

加入標頭檔案

<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.DataSource"%>

    <%
      DataSource ds = null;

      //得到一個上下文物件(javax.naming.InitialContext),以提供命名和查詢服務
      Context initCtx = new InitialContext();


     //通過新的上下文物件查詢到環境物件,通過環境物件找到資料連線池物件。在得到資料庫連線池物件後作型別強制轉換,才能使用

     // javax.sql.DataSource的getConnection()方法得到一個數據庫連線

      ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/mysqlds");


      Connection conn=ds.getConnection();


      Statement sql=conn.createStatement();


      String sqlStr="select ID from table2";


      ResultSet rs=sql.executeQuery(sqlStr); 
     %>


       <table border="1">
     
<%
      while(rs.next()){ %>
      <tr><td><%=rs.getString("ID")%></td></tr>
      <%
      }

      conn.close();%>
      </table>

注意:在訪問完資料庫後應使用Connection的close()方法,以利於將Connection返回到資料庫連線池,使用Connection恢復空閒狀態。