(1)环境: 如题 很重要!不同的环境,不同的配置 !
(2)struts包的加载: 我的MyEclipse6.5 下加载他自带的struts jar包时出错,出现“collections 下找不到 quickHashMap"的异常(大概意思,忘了记录下来),后来去除他自带的STRUTS JAR,加上独立的Jar,并且将 所有的STRUTS jar 都复制加到 工程的WEB-INF/lib中。
(3)将 数据库联接JAR文件分别COPY 到 工程的WEB-INF/lib下 和 tomcat 下的lib下。
(4)在tomcat 的 conf/下的Context.xml 进行修改,在其中的<Context></Context> 中加入如下代码(要根据自己的情况稍加修改):
写道
<Resource name="sdemo" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="xxxxxx" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=afdDemo"/>
maxActive="100" maxIdle="30" maxWait="10000"
username="sa" password="xxxxxx" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=afdDemo"/>
(5)在工程的web.xml 中引用:
<!-- 数据源的引用 -->
<resource-ref>
<res-ref-name>sdemo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
(6)在工程中使用该DBCP了:)
public static Connection getConnection(){
Connection conn = null;
try {
Context initContext = new InitialContext();
// Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/sdemo");
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;
}
(7)在dao类中就可以直接调用连接了:)
public List<User> selectAll(){
List<User> list = new ArrayList<User>();
Connection conn = DBUtil.getConnection();
if(conn == null){
System.out.println("conn is null!");
}
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement("select * from [User]");
rs = pstmt.executeQuery();
User user = new User();
while(rs.next()){
user.setUserID(rs.getInt(1));
user.setUserName(rs.getString(2));
System.out.println(user.getUserName());
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(rs != null){
rs.close();
}
if(pstmt != null){
pstmt.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}