通过Tomcat连接池连接SQL Server数据库

来源:互联网 发布:域名所有者电话怎么查 编辑:程序博客网 时间:2024/05/16 17:13

配置Tomcat连接池主要使用的是<Resource>标签,下面对本实例中用到<Resource>标签中的属性进行详细讲解。

(1)name:数据库连接池名称。

(2)type:数据库连接池类型。

(3)driverClassName:使用的JDBC驱动的完整有效的java类名。

(4)url:传递给JDBC驱动的用于建立连接的URL。

(5)username:传递给JDBC驱动的用于建立连接的用户名。

(6)password:传递给JDBC驱动的用于建立连接的密码。

(7)initialSize:初始化连接数,连接池启动时创建的初始化连接数量,默认值为0。

(8)maxActive:最大活动连接数,连接池在同一时间能够分配的最大活动连接的数量,如果设置为非正数则表示不限制,默认值为8

(9)maxIdle:最大空闲连接数,连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制,默认值为8。

(10)minIdle:最小空闲连接数,连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建,默认值为0。

(11)maxWait:无限最大等待时间:当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待,默认值为0。

过程

(1)下载SQL Server驱动包并复制到tomcat安装目录的lib文件夹下。

(2)在当前项目的META-INF文件夹内新建context.xml文件,在此xml文件的<Context>标签中加入<Resource>标签,关键代码如下所示。

<Context antiJARLocking="true" path="/076">

<Resource name="jdbc/076"

type="javax.sql.DataSource"

username="sa"

password=""

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_database04"/>

initialSize="10"

maxActive="5"

maxIdle="20"

minIdle="5"

maxWait="-1"

/>

</Context>

(3)创建UserBean类封装数据记录,并且编写getConnection()方法从数据库连接池中获取数据库连接,编写findAll()方法查询数据表中的数据,并将查询结果集添加到List集合中。关键代码如下:

public Connection getConnection() {

Connection con = null; //声明Connection对象

try {

Context initctx = new InitialContext(); //创建Context对象

Context envContext = (Context) initctx.lookup("java:comp/env");


DataSource ds = (DataSource) envContext.lookup("jdbc/076"); //按照JNDI名称查找

con = ds.getConnection(); //创建Connection对象

} catch (Exception ex) {

ex.printStackTrace();

}

return con;

}

public List findAll(){

List list = new ArrayList(); //声明list对象

try {

Connection con = getConnection(); //创建数据库连接

Statement st = con.createStatement(); //创建Statmenet对象

ResultSet rs = st.executeQuery("select top 2 * from tb_ClassList order by CID desc"); //执行SQL语句

while (rs.next()) {

UserBean bean = new UserBean(); //声明UserBean,并为UserBean的属性赋值

bean.setCid(Integer.valueOf(rs.getInt("CID")));

bean.setCname(rs.getString("CName"));

bean.setCstartDate(rs.getString("CStartDate"));

bean.setCtype(rs.getString("CType"));

list.add(bean); //添加到list列表

}

rs.close(); //关闭rs对象

st.close(); //关闭st对象

con.close(); //关闭con对象

} catch (SQLException ex) {

ex.printStackTrace();

}

return list; //返回list列表

}

原创粉丝点击