MySql数据源配置

时间:2021-09-02 01:10:47

1.tomcat的config/server.xml中将以下代码写到 </Host>前:

<Context docBase="struts1" path="/struts1" reloadable="true" source="org.eclipse.jst.jee.server:struts1">     <!--struts1为工程名-->
<Resource
 name="jdbc/demoDS">     <!--name与web.xml中name要一致,其中demoDS还要与后文中java代码(javax.sql.DataSource) ctx.lookup("java:/comp/env/jdbc/demoDS");部分一致-->
 scope="Shareable"
 type="javax.sql.DataSource"
 factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
 url="jdbc:mysql://localhost:3306/test"     <!--test为数据库名-->
 driverClassName ="com.mysql.jdbc.Driver"
 username="root"
 password="123456"
/>

2.web.xml中引入数据源(三个参数顺序不能变,否则编译不通过)

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

</resource-ref>

3.写java代码连接

package util;
import java.sql.Connection;
public class Struts
 {
    protected javax.naming.Context ctx = new javax.naming.InitialContext();
    protected javax.sql.DataSource ds;
     protected Connection conn;
     public Struts() throws Exception
     {
         ds = (javax.sql.DataSource) ctx.lookup("java:/comp/env/jdbc/demoDS");
         conn = ds.getConnection(); 
    }
 }

4.应用示例代码,写一个查询函数

public List<String[]> search() throws Exception
       {
           List<String[]> result = new LinkedList<String[]>();
           String sql = "SELECT * FROM Stu_Course WHERE SNo='"
+ form.getCNo() +"'";
           PreparedStatement pstmt =  conn.prepareStatement(sql);
           ResultSet rs = pstmt.executeQuery(); 
          while(rs.next())
           {
               String[] row = new String[4];
               row[0] = rs.getString(1);
               row[1] = rs.getString(2);
               row[2] = String.valueOf(rs.getInt(3));
               row[3] = rs.getString(4);
               result.add(row);
           }
           rs.close();
           conn.close();
           return result;
       }

蛋疼的,以前弄过就忘,再用到就有蛋疼一遍,记下来。。。