配置tomcat web工程數據源

1 擁有必要的開發環境:tomcat+eclipse+jdk

2 安裝mysql數據庫:用戶名/密碼:root/admin

3 下載jar包:mysql-connector-java-5.0.8-bin.jar,commons-collections-3.1.jar,commons-dbcp-1.2.1.jar,commons-pool-1.2.jar

確保會引起找不到類 NoClassDefine錯誤,如找不到連接類,配置是factory生產失敗,collectionlist錯誤等等麻煩的錯誤

4 該功能需要在web工程中調用,利用Container容器,上下文,java工程調用可能會失敗

5 在tomcat中的server.xml內容開頭編碼格式可能爲utf-8,會提示錯誤,將格式改爲gbk的就可以了

6 配置使用數據源,有幾個部分,tomcat中:server.xml,contex.xml;工程中web.xml

7 配置數據源前,可以先用java直接連接調用數據庫,已驗證所需數據均正確

配置 server.xml 部分內容:

<Context path="/alltest" docBase="D:\webdev\workspace\alltest\Web" debug="0" reloadable="true">
					 <Resource name="jdbc/test" auth="Container"
              type="javax.sql.DataSource"
              factory="org.apache.commons.dbcp.BasicDataSourceFactory"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://10.136.16.161:3306/test"
              username="root"
              password="admin"
              maxActive="80"
              maxIdle="10"
              maxWait="-1"/>
				</Context>


 

path:web訪問路徑

docBase:工程代碼路徑

Resource:配置工程所需要數據源

name:配置的數據源名稱,名稱可以隨便取,但在java程序中調用時,需對應

type:數據源類型

factory:創建數據池的工廠(之前因缺包commons-dbcp-1.2.1.jar,commons-pool-1.2.jar,老報錯)

driverClassName:連接mysql驅動(如連接oracle數據源,需修改)

url:連接數據庫地址

username:數據庫登陸用戶名

password:username對應密碼

maxActive:最大活動連接數

maxIdle:最大閒置連接數(顧名思義)

maxWait:最大等待連接數

 

配置context.xml:網上其他有的說需要配置這個文件,但我沒有配,也能引用數據源

 

工程web.xml文件內容:

  <resource-ref>
  	<res-ref-name>jdbc/test</res-ref-name>
  	<res-type>javax.sql.DataSource</res-type>
  	<res-auth>Container</res-auth>
  </resource-ref>

res-ref-name:對應server.xml數據源配置中name

res-type:對應server.xml數據源配置中type

res-auth:對應server.xml數據源配置中auth

 

8 測試代碼:

	public void sqltest()
	{
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try
		{
			Context initcontext = new InitialContext();
			DataSource ds = (DataSource)initcontext.lookup("java:/comp/env/jdbc/test");
			conn = ds.getConnection();
			if(!conn.isClosed())
				System.out.println("連接數據庫成功。。。");
			else
				System.out.println("連接數據庫失敗。。。");
			//用來執行sql
			stmt = conn.createStatement();
			String sql = "select username from table1";
			//獲取結果集
			rs = stmt.executeQuery(sql);
			while(rs.next())
			{
				String name = rs.getString("username");
				System.out.println("用戶:" + name);
			}
		}catch(Exception ex)
		{
			ex.printStackTrace();
			System.out.println("error:" + ex.getMessage());
		}finally
		{
			//關閉數據庫,否則會連接數過大
			try
			{
				rs.close();
				stmt.close();
				conn.close();
			}catch(Exception ex)
			{
				ex.printStackTrace();
			}
		}
	}

在web工程中某個jsp調用一下這個函數就可以了。


引用:http://blog.csdn.net/dyllove98/article/details/7706218

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章