通過datasource與資料庫互動的jsp範例

來源:互聯網
上載者:User
  • 配置資料來源

為WEB應用配置資料來源設計修改context.xml和web.xml檔案。在context.xml檔案中加入定義資料來源的<Resource>元素;在web.xml中加入<resource-ref>元素,該元素宣告web應用引用了特定資料來源。此外還要把MySql的jdbc磁碟機類庫mysqldriver.jar檔案複製到<CATALINA_HOME>/lib目錄下。

  1. 在contex.xml中加入<Resource>元素:

<Resource>元素用來定義JNDI資源。在tomcat中,資料來源是JNDI資源的一種。在工程/META-INF/建立一個context.xml檔案,該檔案為工程應用定義了一個名為jdbc/DatabaseName的資料來源。

用於定義資料來源的context.xml檔案

1 <?xml version="1.0" encoding="UTF-8"?>2 <Context reloadable="true">3     <Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"4     maxActive="100" maxIdle="30" maxWait="1000"5     username="username" password="userpassword"6     driverClassName="com.mysql.jdbc.Driver"7     url="jdbc:mysql://localhost:3306/DatabaseName?autoReconnect=true"/>8 </Context>

  2.在web.xml中加入<resource-ref>元素

表示資源引用的元素為<resource-ref>,以下是聲明引用jdbc/databasename資料來源的代碼:

web.xml的增加內容

1 <web-app>2   <resource-ref>3       <description>DB Connection</description>4       <res-ref-name>jdbc/DatabaseName</res-ref-name>5       <res-type>javax.sql.DataSource</res-type>6       <res-auth>Container</res-auth>7   </resource-ref>8 </web-app>

   3.通過資料來源串連資料庫的jsp範常式序

Datasource與通過JDBC api 訪問的區別就是:在於擷取資料庫連接的方式不一樣(就是19行-22行)

 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2      pageEncoding="utf-8"%> 3      <%@ page import="java.io.*" %> 4      <%@ page import="java.util.*" %> 5      <%@ page import="java.sql.*" %> 6  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 7  <html> 8  <head> 9  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">10  <title>TestJDBCAPI</title>11  </head>12  <body>13  <%14      try{15          Connection con;16          Statement stmt;17          ResultSet rs;18 19          //從資料來源中後的database串連20          Context ctx = new InitialContext();21          DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/DatabseName");22          con = ds.getConnection();23          24          //Create SQL 申明25          stmt = con.createStatement();26          //add data27          stmt.executeUpdate("插入具體的insert語句");28 29          //select data30          rs = stmt.executeQuery("select 語句");31 32          //Out select result33          out.println("<table border=1 width=400>");34          while(rs.next()){35              String col1 = rs.getString(1);36              String col2 = rs.getString(2);37              String col3 = rs.getString(3);38              float col4 = rs.getFloat(4);39 40              //Print datas41              out.println("<tr><td>"+col1+"</td>"42                         +"<td>"+col2+"</td>"43                         +"<td>"+col3+"</td>"44                         +"<td>"+col4+"</td></tr>");45              }46          out.println("</table>");47 48          //Delete datas49          stmt.executeUpdate("Delete 語句");50 51          //CLose52          rs.close();53          stmt.close();54          con.close();55 56      }catch(Exception e){57          out.println(e.getMessage());58      }59  %>60  </body>61  </html>

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.