Servlet3.0+jdbc+proxool+log4j
下面我们说说servlet3.0+jdbc开发步骤,jdbc对于一个初学者来说是至关重要的,他也是最重要的知识点。
我在这里再次使用的是servlet3.0版本,因为省去了很多麻烦的事情,其实道理和servlet3.0一下的版本是一样的。
下面是我src中的包的大致结构还有一个log4j日志配置文件
log4j.properties
theone.jdbc_servlet.bean
theone.jdbc_servlet.dao
theone.jdbc_servlet.daoImpl
theone.jdbc_servlet.DBUtil
theone.jdbc_servlet.entity
theone.jdbc_servlet.filter
theone.jdbc_servlet.service
theone.jdbc_servlet.serviceImpl
theone.jdbc_servlet.servlet
主要的包的结构就是这样了。
这里最要强调的是连接池的使用
在使用连接池的时候我们需要导入一下包
这里都是必须的包我使用的是sqlserver数据库这里包括了sql包日志包 连接池包
导包之后我们就可以配置连接池配置文件了
连接池的包是和web.xml包是在同一目录下的
具体里面的大致内容是如下的:
<?xml version="1.0"encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>db_BookManageSystem</alias>
<driver-url>jdbc:sqlserver://localhost:1433;databaseName=BookManageSystem</driver-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver-properties>
<property name="user" value="sa"/>
<property name="password" value="123"/>
</driver-properties>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
<trace>true</trace>
<house-keeping-test-sql>select 0</house-keeping-test-sql>
</proxool>
</something-else-entirely>
其实很简单的就是将连接的信息放在这里面了。
当我们配置好了之后我们就必须要告诉容器我们需要加载这个配置文件啊
所以我们在web.xml中配置加载的信息
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>proxoolAdmin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>proxoolAdmin</servlet-name>
<url-pattern>/proxool_admin</url-pattern>
</servlet-mapping>
在web.xml中加入以上的配置信息就可以了 当然要注意你的相关信息是否正确了
接下来我们就需要使用连接池来为我们创建连接了
为此我专门写了一个类来构造一个connection对象
/**
* @author lidaliang E-mail:[email protected]
* @version 创建时间:2011-9-3 下午3:53:41 类说明
*/
public classConnectionFactory {
/**
* 获得connection对象
* @return
* @throws SQLException
*/
public static ConnectiongetConnection() throwsSQLException {
return DriverManager.getConnection("proxool.db_BookManageSystem");
}
}
这个类里面就是一个静态的方法 此方法就是为创建一个connection的对象的。
DriverManager.getConnection("proxool.db_BookManageSystem");
这句话的意思就是使用连接池去创建connection对象了
字符串的规则是:proxool.+
<alias>db_BookManageSystem</alias>
这里面指定的别名了。
到这里使用连接池去构建connection对象就可以了
对于jdbc的具体操作我在这里就简单的贴出我的代码吧
@Override
public List<BookInfo>getBooks(intbeginIndex, intpageSize) {
List<BookInfo>list = newArrayList<BookInfo>();
Connectionconn = null;
StringselectSql = "selectid,BookName,BookAuthor,Press,BookCategoryId,buyAddress,Introduction,Remark,OriginalPrice,RealPrice,BuyTimefrom BookInfo";
try {
try {
conn= getCon();
PreparedStatementps = conn.prepareStatement(selectSql,
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ps.setMaxRows(pageSize);
ResultSetrs = ps.executeQuery();
rs.absolute(beginIndex);
while (rs.next()) {
BookInfobookInfo = newBookInfo();
bookInfo.setId(rs.getInt(1));
bookInfo.setBookName(rs.getString(2));
bookInfo.setBookAnthor(rs.getString(3));
bookInfo.setPress(rs.getString(4));
bookInfo.setBookCategory(bookCategoryDao.getBookCategory(rs
.getInt(5)));
bookInfo.setBuyAddress(rs.getString(6));
bookInfo.setIntroduction(rs.getString(7));
bookInfo.setRemark(rs.getString(8));
bookInfo.setOriginalPrice(rs.getDouble(9));
bookInfo.setRealPrice(rs.getDouble(10));
bookInfo.setBuyTime(rs.getDate(11));
list.add(bookInfo);
}
rs.close();
ps.close();
}finally{
if (conn != null)
conn.close();
}
}catch(Exception e) {
logger.error("获取图书列表失败:" + e.getMessage());
}
return list;
}
这是一个获取图书信息的方法 我想这足够了。
对于log4j的配置文件我想就不用说了吧!