7.
配置 Struts 数据源
一般步骤:
7.1
配置JNDI数据源
在struts-config.xml配置文件<struts-config>标签下加入类似如下配置内容
<data-source>属性type用来定义数据源javax.sql.DataSource实现类:org.apache.commons.dbcp.BasicDataSource
<set-property>标签各属性设置可参考实现类:org.apache.commons.dbcp.BasicDataSource中各数据库连接相关属性的定义.<set-property>的作用就是根据实现类中的setXXX()方法,设置其内容.这就好像<jsp:setProperty>用来设置bean属性一样.
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="url" value="jdbc:mysql://localhost:3306/mydb"
/>
<set-property property="username" value="root"
/>
<set-property property="password" value="root"
/>
<set-property property="maxActive" value="30"
/>
<set-property property="maxIdle" value="10"
/>
<set-property property="maxWait" value="1000"
/>
</data-source>
</data-sources>
7.2
获取数据源实例
通过org.apache.struts.action.Action类中定义的二个方法:
protected DataSource getDataSource(HttpServletRequest request, String key)
protected DataSource getDataSource(HttpServletRequest request)
关键代码:
DataSource ds = this.getDataSource(request);
查看org.apache.struts.action.Action类源代码:
/**
* <p>Return the specified data source for the current module.</p>
*
* @param request The servlet request we are processing
* @param key The key specified in the <code><data-sources></code>
* element.
*
* @since Struts 1.1
*/
protected DataSource getDataSource(HttpServletRequest request, String
key) {
// Identify the current module
ServletContext context =
getServlet().getServletContext();
ModuleConfig moduleConfig =
ModuleUtils.getInstance().getModuleConfig(request,
context);
return (DataSource)
context.getAttribute(key + moduleConfig.getPrefix());
}
protected DataSource
getDataSource(HttpServletRequest request) {
return (getDataSource(request,
Globals.DATA_SOURCE_KEY));
}
由此可知,数据源需要在自定义的Action处理类(继承自Action)中获取数据源.
参数说明:
request 一次用户请求
key <data-source>标签设置的key属性.未设置key属性时,默认值为Globals.DATA_SOURCE_KEY
通过protected DataSource getDataSource(HttpServletRequest request)方法获取数据源
默认调用key值为Globals.DATA_SOURCE_KEY的数据源
引用自struts-config_1_2.dtd
key Servlet context attribute
key under which this data source
will be stored. Default is the value specified by string
constant defined by
Globals.DATA_SOURCE_KEY. The application
module prefix (if any) is
appended to the key
(${key}$prefix}).
[org.apache.struts.Globals.DATA_SOURCE_KEY]
注: 该方法权限是protected,因为可以在不同包的子类中使用,无法在不同包非子类中被调用.另外,自定义的Action处理类构造函数只在第一次请求时,被调用.因此,自定义的Action处理类的实例化很可能用到单例模式.
7.3
数据库操作
一般步骤:
a) 通过数据源实例建立数据库连接
b) 创建Statement对象
c) 获取结果集
d) 关闭数据库连接资源(包括ResultSet,Statement,Connection实例)
关键代码:
Connection conn = ds.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if(rs.next())
{
request.setAttribute("hint", bundle.getString("login.check.hint.success"));
return mapping.findForward("success");
}
分享到:
相关推荐
1.4 本章小结 5 第2章 MyEclipse集成开发环境的使用 6 2.1 MyEclipse集成开发工具界面 6 2.1.1 MyEclipse的菜单栏 7 2.1.2 MyEclipse的工具栏 13 2.1.3 MyEclipse的透视图 14 2.1.4 MyEclipse的视图 17 2.1.5 ...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品...
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书...
19.1.3 从容器中获得数据源 19.1.4 由Java应用本身提供数据库连接 19.2 配置事务类型 19.3 把SessionFactory与JNDI绑定 19.4 配置日志 19.5 使用XML格式的配置文件 19.6 小结 19.7 思考题 第20章 ...
19.1.3 从容器中获得数据源 19.1.4 由Java应用本身提供数据库连接 19.2 配置事务类型 19.3 把SessionFactory与JNDI绑定 19.4 配置日志 19.5 使用XML格式的配置文件 19.6 小结 19.7 思考题 第20章 ...
19.1.3 从容器中获得数据源 19.1.4 由Java应用本身提供数据库连接 19.2 配置事务类型 19.3 把SessionFactory与JNDI绑定 19.4 配置日志 19.5 使用XML格式的配置文件 19.6 小结 19.7 思考题 第20章 ...
19.1.3 从容器中获得数据源 19.1.4 由Java应用本身提供数据库连接 19.2 配置事务类型 19.3 把SessionFactory与JNDI绑定 19.4 配置日志 19.5 使用XML格式的配置文件 19.6 小结 19.7 思考题 第20章 ...
4.1.3 使用WebLogic服务器管理的 数据源 182 4.1.4 使用JBoss服务器管理的数据源 187 4.2 事务和JTA 191 4.2.1 事务的基本概念 191 4.2.2 分布式事务处理、XA规范和 2PC协议 192 4.2.3 使用JTA全局事务保证多 数据库...
1.10小结 45 第二章 开发第一个Java应用程序 46 2.1 介绍 46 2.2 手工编写,编译并运行Java程序 46 2.3 使用Eclipse/MyEclipse来编写,编译并运行Java程序 47 2.4小结 50 第三章 Eclipse 的基础概念,配置和使用 51 ...
3.3.3 数据源配置..... 57 3.3.4 其他重要属性配置..... 57 3.4 事务..... 58 3.4.1 JDBC API操作事务..... 59 3.4.2 Hibernate API操作事务..... 60 3.5 OR映射..... 61 3.6 Middlegen工具..... 63 3.7 hbm2java...
325 18.4.2 配置数据库连接池 327 18.5 HQL简介 328 18.6 小结 330 第19章 权限管理系统(Struts+Spring+Hiberante+Ajax) 331 19.1 需求分析 331 19.2 系统总体流程设计 331 19.3 系统设计 332 19.4 系统总体解析 ...
5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成Hibernate 5.4.1 选择...
5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成Hibernate 5.4.1 选择...
5.10 多数据源的应用 338 5.11 jdbc的应用 343 5.12 hibernate调用存储过程 343 5.13 xml数据持久化 346 5.14 小结 348 第6章 充分利用spring 2.5的ioc利器统管bean世界 349 6.1 java程序员的春天厚礼—spring...
5.2.2使用数据源连接池 5.2.3基于jdbc驱动的数据源 5.3在spring里使用jdbc 5.3.1处理失控的jdbc代码 5.3.2使用jdbc模板 5.3.3使用spring对jdbc的dao支持类 5.4在spring里集成hibernate 5.4.1选择hibernate的...
特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。??免费。??ECHO:??主要应用方面:WEB层。??主要应用技术:servlet等??出处:http://www.nextapp.com/products/echo/??简述:...