`
yeshaoting
  • 浏览: 667711 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[小结]Java数据库连接 - 配置 Struts 数据源

    博客分类:
  • J2SE
 
阅读更多

 

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>&lt;data-sources&gt;</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");

    }

 

分享到:
评论

相关推荐

    JAVA程序开发大全---上半部分

    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开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     19.1.3 从容器中获得数据源  19.1.4 由Java应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置文件  19.6 小结  19.7 思考题 第20章 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     19.1.3 从容器中获得数据源  19.1.4 由Java应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置文件  19.6 小结  19.7 思考题 第20章 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     19.1.3 从容器中获得数据源  19.1.4 由Java应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置文件  19.6 小结  19.7 思考题 第20章 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     19.1.3 从容器中获得数据源  19.1.4 由Java应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置文件  19.6 小结  19.7 思考题 第20章 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    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全局事务保证多 数据库...

    《MyEclipse 6 Java 开发中文教程》前10章

    1.10小结 45 第二章 开发第一个Java应用程序 46 2.1 介绍 46 2.2 手工编写,编译并运行Java程序 46 2.3 使用Eclipse/MyEclipse来编写,编译并运行Java程序 47 2.4小结 50 第三章 Eclipse 的基础概念,配置和使用 51 ...

    J2EE电子商务系统开发从入门到精通

    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...

    J2EE应用开发详解

    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 系统总体解析 ...

    Spring in Action(第二版 中文高清版).part2

    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 选择...

    Spring in Action(第二版 中文高清版).part1

    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 选择...

    低清版 大型门户网站是这样炼成的.pdf

    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...

    Spring in Action(第2版)中文版

    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的...

    JAVA核心技术

    特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。??免费。??ECHO:??主要应用方面:WEB层。??主要应用技术:servlet等??出处:http://www.nextapp.com/products/echo/??简述:...

Global site tag (gtag.js) - Google Analytics