用Struts开发过很多系统的高手请进,高分求教! 我一般都不用这两个方法,struts是一个展示层的框架,一般都要配合其他的框架来用,比如,持久层框架 hibernate ,那么,你就完全没有必要在展示层来配置持久层的东西,对于数据源的配置,完全可以交给持久层来管理。在 hibernate中配置数据源。当然,持久层框架还很多,。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我一般是:MVC(通过action调用中间层)--》中间层--》业务层--》持久层,根据用接口编程。因此data-sources不应该配置在struts里面,应配置在持久层配置文件比如:hibernate或ibatis…… struts是表示层,最好不要应用于数据连接tomcat的DBCP配置数据库连接只是一个测试性的应用,应用在学习和小项目中,不适合企业级应用配置数据库连接有多种方式如poolman,hibernate中自带的c3pO等等 zeq258(近朱者赤) 说的对,看你采用什么框架了.如果用tomcat+hibernate,可以在hibernate.cfg.xml中配置,如:<?xml version='1.0' encoding='gb2312'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN""http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost/test</property><property name="hibernate.connection.username">sa</property><property name="hibernate.connection.password">810606</property><property name="hibernate.connection.pool.size">20</property><property name="hibernate.show_sql">true</property><property name="jdbc.fetch_size">50</property> <property name="jdbc.batch_size">25</property> <property name="jdbc.use_scrollable_resultset">false</property> <property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property><!-- Mapping files --> <mapping resource="user.hbm.xml"/></session-factory></hibernate-configuration>也可以用tomcat+jboss 上的EJB,如:<?xml version="1.0" encoding="UTF-8"?> <ejb-jar> <description>JBoss Interest Sample Application</description> <display-name>Interest EJB</display-name> <enterprise-beans> <session> <ejb-name>Interest</ejb-name> <!-- home interface --> <home>org.jboss.docs.interest.InterestHome</home> <!-- remote interface --> <remote>org.jboss.docs.interest.Interest</remote> <!-- bean implementation --> <ejb-class>org.jboss.docs.interest.InterestBean</ejb-class> <!--bean 的类型 这里是Stateless --> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> </session> </enterprise-beans></ejb-jar> 可以使用第三方数据库连接池 他们推荐的DBCP DataSource可以在很多地方创建,或者说创建DataSource这件事情可以在很多个层面完成。比如说在应用服务器创建(比如Tomcat),或者在应用框架创建(比如Spring、Struts),或者在程序里自己创建。在什么地方创建其实不是特别重要,重要的时创建的时候用的是哪个实现类,这个会直接决定你的DataSource有些什么特性。 我要回答的都有人答了,如yangyijieyyj(小猪)等所说 现在我们项目也是struts, spring, hibernate但是在框架搭建过程中,配置文件太繁琐.以前没接触过spring和hibernate, 不知数据量大后,效率会怎样. 在TomcatRoot/conf/Catalina\localhost下面增加一个和你的应用同名称的xml文件,在server.xml 里面配置太乱了,单独拿出来好一些 修改tomcat/conf/server.xml文件,建立tomcat的数据源,在<host></host>里添加以下内容:<Context path="/address" docBase="D:\peidw\workplace\gzaddr\WebRoot" debug="5" reloadable="true" crossContext="true"> <Resource name="jdbc/gzaddr" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/gzaddr"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@130.51.65.10:1521:gzjf</value> </parameter> <parameter> <name>username</name> <value>gzaddr</value> </parameter> <parameter> <name>password</name> <value>gzscitel</value> </parameter> <parameter> <name>maxActive</name> <value>5</value> </parameter> <parameter> <name>maxIdle</name> <value>2</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> <parameter> <name>removeAbandoned</name> <value>true</value> </parameter> <parameter> <name>removeAbandonedTimeout</name> <value>30</value> </parameter> </ResourceParams> </Context> 不要在struts中配datasource,tomcat中配的话一般用于测试或者你自己写着玩,配在tomcat中还可以用它提供的连接池。 关于Spring AOP的Introduction机制 <aop:declare-parents/> freemarker标签问题 一个关于java死锁的问题 tomcat中以什么编码方式进行传输啊 谁会dom4j解析xml Hibernate 缓存问题 websphere还有几天就到期了,怎么办? 面对众多的j2ee应用服务器评测,到底那一个比较权威? 请问EJBC.class类在哪个JAR里? EJB的编写、部署问题 欢迎测评一下我的网站美工如何 求!jrun的配置方法
MVC(通过action调用中间层)--》中间层--》业务层--》持久层,根据用接口编程。因此data-sources不应该配置在struts里面,应配置在持久层配置文件比如:hibernate或ibatis……
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">810606</property>
<property name="hibernate.connection.pool.size">20</property>
<property name="hibernate.show_sql">true</property>
<property name="jdbc.fetch_size">50</property>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.use_scrollable_resultset">false</property>
<property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property><!-- Mapping files -->
<mapping resource="user.hbm.xml"/>
</session-factory>
</hibernate-configuration>也可以用tomcat+jboss 上的EJB,如:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
<description>JBoss Interest Sample Application</description>
<display-name>Interest EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>Interest</ejb-name> <!-- home interface -->
<home>org.jboss.docs.interest.InterestHome</home> <!-- remote interface -->
<remote>org.jboss.docs.interest.Interest</remote> <!-- bean implementation -->
<ejb-class>org.jboss.docs.interest.InterestBean</ejb-class> <!--bean 的类型 这里是Stateless -->
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
但是在框架搭建过程中,配置文件太繁琐.
以前没接触过spring和hibernate, 不知数据量大后,效率会怎样.
<Resource name="jdbc/gzaddr" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/gzaddr">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@130.51.65.10:1521:gzjf</value>
</parameter>
<parameter>
<name>username</name>
<value>gzaddr</value>
</parameter>
<parameter>
<name>password</name>
<value>gzscitel</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>5</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>30</value>
</parameter>
</ResourceParams>
</Context>