`
fangbiao23
  • 浏览: 41825 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

tomcat6013+myeclipse55m1+jsf12+spring2+proxool+jtds 的开发实现!!

阅读更多
TITLE: -- tomcat6013+myeclispe55m1+jsf12+spring2+proxool+jtds 的开发实现!!
先前,我们已经配置了好了用tomcat6013+myeclispe55m1+jsf12的开发环境!!
地址:http://fangbiao23.iteye.com/admin/show/98458
接下来我们就要与数据库打交道了!!
该节我们将应用开源连接池proxool-090RC3与开源JDBC驱动器jtds12作为我们应用程序与数据库打交道,
我们应用使用的数据库是sqlserver2000,有点老了,不过你也可以尝试使用sqlserver2005
在此,我不推蒋使用官方的jdbc驱动SQLServerDriver,因为他与连接池proxool所联合的137错误令我闷了半天!

接下来,让我们到sourceforge网上去下载我们所需要的库:
proxool-0.9.0RC3.jar 和 jtds-1.2.jar

把他们加入到我们先前的lib中

一、配置proxool
偶在web-inf下创建一个datasource.xml(数据源配置)
详情如下:

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <!---->
  3.  "http://www.springframework.org/dtd/spring-beans.dtd">  
  4.     
  5. <beans>  
  6.        <!---->  
  7.       <bean id="placeholderConfig"  
  8.           class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  9.              
  10.           <property name="location">  
  11.             <value>/WEB-INF/mssqlJdbc.propertiesvalue>  
  12.           property>  
  13.     bean>  
  14.     <bean id="mssql_dataSource"  
  15.           class="org.logicalcobwebs.proxool.ProxoolDataSource">  
  16.           <property name="driver">  
  17.             <value>${proxool.driverName}value>  
  18.           property>  
  19.           <property name="driverUrl">  
  20.             <value>${proxool.url}value>  
  21.           property>  
  22.           <property name="user">  
  23.             <value>${proxool.userName}value>  
  24.           property>  
  25.           <property name="password">  
  26.             <value>${proxool.password}value>  
  27.           property>  
  28.           <property name="houseKeepingTestSql">  
  29.             <value>${proxool.houseKeepingTestSql}value>  
  30.           property>  
  31.           <property name="prototypeCount">  
  32.             <value>${proxool.prototypeCount}value>  
  33.           property>  
  34.           <property name="houseKeepingSleepTime">  
  35.             <value>${proxool.hourseKeepingSleepTime}value>  
  36.           property>  
  37.           <property name="maximumConnectionCount">  
  38.             <value>${proxool.maximumConnectionCount}value>  
  39.           property>  
  40.           <property name="minimumConnectionCount">  
  41.             <value>${proxool.minimumConnectionCount}value>  
  42.           property>  
  43.     bean>    
  44. beans>  

 

创建WEB-INF/mssqlJdbc.properties文件,用于与mssql_dataSource下参数相映射

#数据库名称
proxool.datasource = jsfDemo
#数据库驱动名称
#proxool.driverName = com.microsoft.jdbc.sqlserver.SQLServerDriver
proxool.driverName =net.sourceforge.jtds.jdbc.Driver
#连接的url{可能是proxool的Bug,只能把用户名和密码写在url上(具体你可以参考proxoolDataSource这个类[关于各参数据加载次序])}
proxool.url =jdbc:jtds:sqlserver://localhost:1433/${proxool.datasource};user=sa;password=1234
#用户名称
proxool.userName =sa
#密码
proxool.password =1234
#数据源别名
#proxool.alias = myProxool
#侦察时间间隔
proxool.hourseKeepingSleepTime = 60000
#最小空闲数
proxool.prototypeCount = 2
#最大连接数
proxool.maximumConnectionCount = 50
#最小连接数
proxool.minimumConnectionCount = 2
#执行语句是否要记录
#proxool.trace = false
#记录执行的详细信息
#proxool.verbose = false
#测试的SQL执行语句
proxool.houseKeepingTestSql = select getDate()
#最大活动时间(超过此时间线程将被kill,默认为5分钟)
proxool.maximumActiveTime = 300000
#连接最长时间(默认为4个小时)
proxool.maximumConnectionLifetime = 3060000000

此外,我们可以在web.xml中装载一个proxool提供的Servlet,以便我们可以随时查看连接池的连接情况,该处可选
 

xml 代码
  1. <servlet>  
  2.   <servlet-name>adminservlet-name>  
  3.   <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServletservlet-class>  
  4. servlet>  
  5.   
  6.   
  7. <servlet-mapping>  
  8.   <servlet-name>adminservlet-name>  
  9.   <url-pattern>/adminurl-pattern>  
  10. servlet-mapping>  

当应用部署成功并开始运作后,我们可以输入http://localhost:8080/项目名/admin
你就可以查询相关的数据库连接池情况

由于开发的跟风和软件本身的性能,我选择了spring作业我的业务操层,持久层将使用Ibatis,但此实例偶将不涉及ibatis,偶
将利用spring的JdbcTemplate来进行数据库CRUD操作

NOW,选择项目,右击>>选择Myeclipse>>add Spring Capli...
选择spring2-->core library && aop library && web library ,单击finish ,OK

打开Web.xml,在里面进行相关的设置,偶给出其配置成功的web.xml

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"  
  3.          xmlns="http://java.sun.com/xml/ns/javaee"  
  4.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.   <!---->  
  7.   <context-param>  
  8.     <param-name>javax.faces.CONFIG_FILESparam-name>  
  9.     <param-value>/WEB-INF/faces-config.xmlparam-value>  
  10.   context-param>  
  11.   <!---->  
  12.   <context-param>  
  13.     <param-name>log4jConfigLocationparam-name>  
  14.     <param-value>/WEB-INF/log4j.propertiesparam-value>  
  15.   context-param>  
  16.   <!---->  
  17.   <context-param>  
  18.     <param-name>contextConfigLocationparam-name>  
  19.     <param-value>/WEB-INF/datasource.xml /WEB-INF/applicationContext.xmlparam-value>  
  20.   context-param>  
  21.     <!---->  
  22.   <listener>  
  23.     <listener-class>org.springframework.web.util.Log4jConfigListenerlistener-class>  
  24.   listener>  
  25.   <listener>  
  26.     <listener-class> org.springframework.web.context.ContextLoaderListenerlistener-class>  
  27.   listener>  
  28.   <listener>  
  29.     <listener-class>com.sun.faces.config.ConfigureListenerlistener-class>  
  30.   listener>    
  31.   <!---->  
  32.   <servlet>  
  33.     <servlet-name>fServletservlet-name>  
  34.     <servlet-class>javax.faces.webapp.FacesServletservlet-class>  
  35.     <load-on-startup>0load-on-startup>  
  36.   servlet>  
  37.   <!---->    
  38.   <servlet>  
  39.     <servlet-name>adminservlet-name>  
  40.     <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServletservlet-class>  
  41.   servlet>  
  42.      
  43.   <servlet-mapping>  
  44.     <servlet-name>fServletservlet-name>  
  45.     <url-pattern>*.jsfurl-pattern>  
  46.   servlet-mapping>  
  47.   
  48.   <servlet-mapping>  
  49.     <servlet-name>adminservlet-name>  
  50.     <url-pattern>/adminurl-pattern>  
  51.   servlet-mapping>    
  52. web-app>  

现在,我们的应用中已经有了jsf/spring/proxool/jtds

如何把他们的关系相互的整合起来呢

首先,利用简单的配置整合JSF ^ SPRING
该配置将在faces-config.xml中进行设置,具体如下:

xml 代码
  1. <application>  
  2.         <!---->  
  3.         <message-bundle>mes.messagesmessage-bundle>  
  4.         <locale-config>  
  5.             <default-locale>zh_CNdefault-locale>  
  6.             <supported-locale>ensupported-locale>  
  7.         locale-config>  
  8.         <!---->  
  9.         <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolvervariable-resolver>  
  10.  application>  

那么下面,将是我们的spring与数据库之间的搭桥啦
记得先前我们创建的mssql_dataSource吗!!我们将利用spring的JdbcDaoSupport和JdbcTemplate来进行交接
我们创建一个类来实现,如下所示:

java 代码
  1. package com.fangbiao.spring;   
  2. import java.util.List;   
  3. import org.springframework.jdbc.core.JdbcTemplate;   
  4. import org.springframework.jdbc.core.support.JdbcDaoSupport;   
  5.   
  6. /**  
  7.  * @author fangbiao  
  8.  *  
  9.  */  
  10. public class UserDaoImpl extends JdbcDaoSupport implements IUserDao{   
  11.     //假如你要用自定义的datasource的值注入的话,请不要继承JdbcDaoSupport,这样做的好处是依赖之间松藕合   
  12.     //DataSource dataSource ;   
  13.     public List findByUserId() {   
  14.         //以下这种this.getApplicationContext,你必须继承spring中的WebApplicationContextSupport以取得spring web上下文环境   
  15.         //dataSource = (BasicDataSource)this.getApplicationContext().getBean("mssql_dataSource");   
  16.         // 这里的this就是引用JdbcDaoSupport   
  17.         JdbcTemplate jdbcTemplate = this.getJdbcTemplate();   
  18.         return jdbcTemplate.queryForList(FIND_BY_USERID);   
  19.     }   
  20.     /*public void setDataSource(DataSource dataSource){  
  21.         this.dataSource = dataSource;  
  22.     }*/  
  23. }   

在这个类中我没有把他独立出来,所以当你要创建一个真实的项目时,请不要这么做,这样你会重复写很多次类似的代码,如JdbcTemplate

现在,来说说我们这节的目标 ,我们将通过用户web请求,从一个数据库中取出所有用户的数据信息
一、创建数据库和相应的数据表信息

sql 代码
  1. create database jsfDemo   
  2. go   
  3. use jsfDemo   
  4. go   
  5. drop table myJsfUser   
  6. go   
  7. create table myJsfUser   
  8. (   
  9.   userId decimal identity(1,1) constraint pk_userId primary key,   
  10.   userName varchar(25) not null,   
  11.   userPsw varchar(18) not null,   
  12.   userAge int not null,   
  13.   userAddress varchar(100)    
  14. )   
  15.   
  16. go   
  17. insert into myJsfUser select 'fangbiao', 'fangbiao',  24,  'zhongguo guangzhou'    
  18. insert into myJsfUser select '小郑',     'fangbiao',  24,  'zhongguo guangzhou'    
  19. insert into myJsfUser select 'mikey',    'fangbiao',  24,  'zhongguo shanghai'    
  20. insert into myJsfUser select 'duck',     'fangbiao',  24,  'zhongguo guangzhou tianhe'    
  21. go   
  22. select * from myJsfUser  

二、创建Jsf与Spring上下文环境交接的助手类对象

java 代码
  1. package com.fangbiao.jsf.util;   
  2. import org.springframework.context.ApplicationContext;   
  3. import org.springframework.web.context.support.WebApplicationContextUtils;   
  4. import javax.faces.context.FacesContext;   
  5. import javax.servlet.ServletContext;   
  6. /**  
  7.  * @author fangbiao  
  8.  *  
  9.  */  
  10. public class SpringFacesUtil {   
  11.     /**  
  12.      * 将JSF上下文环境对象也装载进Spring当,以后JSF和Spring中的Bean对象皆可以从该方法中找到  
  13.      * @param beanName 输入要获取的Bean的名称  
  14.      * @return Object  
  15.      */  
  16.     public static Object findBean(String beanName){   
  17.         ServletContext context = (ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext();   
  18.         ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);   
  19.         return ctx.getBean(beanName);   
  20.     }   
  21. }   

三、创建我们的业务对象,目的是查找所有的用户数据
(1)、首先,定义一个业务对象接口(把关系定义在接口中是JAVA编程来实现重用的最大优点)。

java 代码
  1. package com.fangbiao.spring;   
  2. import java.util.List;   
  3.   
  4. /**  
  5.  * @author fangbiao  
  6.  *  
  7.  */  
  8. public interface IUserBusinessService {   
  9.     /**  
  10.     * 实现把用户资料根据ID信息给读出来,并返回一个用户列表数据信息  
  11.     */  
  12.     public List getUserWithdUserId();   
  13. }   

(2)、定义一个业务对象的实现类对象,该对象将具体的实现赋予DAO去实现。

java 代码
  1. package com.fangbiao.spring;   
  2.   
  3. import java.util.List;   
  4.   
  5.   
  6. /**  
  7.  * @author fangbiao  
  8.  *  
  9.  */  
  10. public class UserBusinessImpl implements IUserBusinessService {   
  11.     //用于值注入时,加载相应的userDao实现类对象   
  12.     IUserDao userDao;   
  13.     /**  
  14.      * 实现根据ID信息获取用户列表资料  
  15.      * @see com.fangbiao.spring.IUserBusinessService#getUserWithdUserId(java.util.Map)  
  16.      */  
  17.     public List getUserWithdUserId() {   
  18.         //把具体的实现委托级userDao   
  19.         return  userDao.findByUserId();   
  20.     }   
  21.        
  22.     public void setUserDao(IUserDao iud){   
  23.         this.userDao = iud;   
  24.     }   
  25. }   

(3)定义一个UserDao的接口,声明相应的dao实现

java 代码
  1. package com.fangbiao.spring;   
  2. import java.util.List;   
  3.   
  4. /**  
  5.  * @author fangbiao  
  6.  *  
  7.  */  
  8. public interface IUserDao {   
  9.     //此处我们定义了一条sql查询语句,真下在的实现可以把所有的SQL语句放置于一个文件中,以便统一管理   
  10.     public final String FIND_BY_USERID = "SELECT userName,userPsw,userAge,userAddress FROM myJsfUser WHERE userId <> 0";   
  11.     //定义一个根据ID信息获取用户列表资料的方法声明   
  12.     public List findByUserId();   
  13. }   
(4)实现UserDao接口的具体类对角,该类是最基础的DAO底层操作实现,该对象引用了spring中JDBC实现的JdbcTemplate对象,以便完
成较为低级的JDBC实现
java 代码
  1. package com.fangbiao.spring;   
  2. import java.util.List;   
  3. import org.springframework.jdbc.core.JdbcTemplate;   
  4. import org.springframework.jdbc.core.support.JdbcDaoSupport;   
  5.   
  6. /**  
  7.  * @author fangbiao  
  8.  *  
  9.  */  
  10. public class UserDaoImpl extends JdbcDaoSupport implements IUserDao{   
  11.        //具体的查找实现方法   
  12.     public List findByUserId() {   
  13.         // 这里的this就是引用JdbcDaoSupport   
  14.         JdbcTemplate jdbcTemplate = this.getJdbcTemplate();   
  15.         return jdbcTemplate.queryForList(FIND_BY_USERID);   
  16.     }   
  17. }  
(5)、定义的一个简单的包装类对象,以便不暴露我们的相关的业务操作对象

 

java 代码
  1. package com.fangbiao.spring;   
  2.   
  3. import java.util.List;   
  4.   
  5.   
  6. import com.fangbiao.jsf.util.SpringFacesUtil;   
  7. import com.fangbiao.spring.IUserBusinessService;   
  8. /**  
  9.  * @author fangbiao  
  10.  *  
  11.  */  
  12. public class SpringTest    
  13. {   
  14.     //这是我们做测试的一个例子,以后具体实现偶也推蒋这种方法,不要让业务接口暴露(该方法命名可能不太好,但做测试用,也就不改啦)   
  15.     public List doSpringTest(){   
  16.         //利用SpringFacesUtil来查找我们的业务实现   
  17.         IUserBusinessService iubs = (IUserBusinessService)SpringFacesUtil.findBean("user_business");   
  18.         return iubs.getUserWithdUserId();      
  19.     }   
  20. }   

 四、以上完成了我们的Spring业务实现和DAO实现,现在来看看我们的交互层实现
 
(1)、现在就来写我们的View对角,以便把查找的结果显现出来

java 代码
  1. package com.fangbiao.jsf;   
  2. import java.util.List;   
  3.   
  4. import com.fangbiao.jsf.util.SpringFacesUtil;   
  5. import com.fangbiao.spring.SpringTest;   
  6. /**  
  7.  * @author fangbiao  
  8.  *  
  9.  */  
  10. public class UserList {   
  11.     //该列表将在JSP中的<h:datatable></h:datatable>中显示出来   
  12.     private List allUserMsg;   
  13.     public List getAllUserMsg(){   
  14.         //看这里,我们还能知道业务接口吗??呵呵   
  15.         allUserMsg = ((SpringTest)SpringFacesUtil.findBean("spring_test")).doSpringTest();   
  16.         return allUserMsg;   
  17.     }   
  18. }  

 

分享到:
评论
3 楼 Mr.Sun 2007-10-22  
不错,支持一下
2 楼 fangbiao23 2007-07-07  

tomcat6013+myeclipse55m1+jsf12+spring2+proxool+jtds 的开发实现2地址:
http://www.iteye.com/topic/98465
1 楼 fangbiao23 2007-07-07  
先前的环境配置地址为:

http://www.iteye.com/article/98458

相关推荐

    Flex4.5 + Tomcat6.0 + MyEclipse 9.0+ Java+Blazeds环境配置和使用

    标题与描述均聚焦于“Flex4.5 + Tomcat6.0 + MyEclipse 9.0+ Java+Blazeds环境配置和使用”,这一主题涉及了多种技术栈的集成,包括Flex4.5(FlashBuilder)、Tomcat6.0、MyEclipse 9.0、Java以及Blazeds。...

    Flash4.7+Tomcat6+Myeclipse10配置

    Flash4.7+Tomcat6+Myeclipse10配置 本文将详细介绍如何配置 Flash4.7、Tomcat6 和 Myeclipse10,包括安装 JDK 1.5、Tomcat 6 和 MyEclipse 6,以及配置 Adobe Flex Builder 3 Professional Eclipse Plug-in。 一、...

    jsp+mysql+tomcat+myeclipse+mysql_front留言板

    jsp+mysql+tomcat+myeclipse+mysql_front留言板jsp+mysql+tomcat+myeclipse+mysql_front留言板jsp+mysql+tomcat+myeclipse+mysql_front留言板jsp+mysql+tomcat+myeclipse+mysql_front留言板

    JDK1.6 + Tomcat6.0 + MyEclipse7.5 + Oracle XE(10g)

    JDK1.6 + Tomcat6.0 + MyEclipse7.5 + Oracle XE(10g)

    Myeclipse(8.5+Tomcat6.0+jdk1.6)下的支付宝demo

    2. Tomcat 6.0:Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,是一个开源的Servlet容器,主要用于实现Java Servlet和JavaServer Pages(JSP)技术。在Myeclipse中,Tomcat作为服务器运行环境,用于部署...

    flex + tomcat + myEclipse环境配置与使用

    Flex是Adobe公司开发的一种用于创建富互联网应用(RIA)的开放源代码编程工具,它主要使用MXML...理解并掌握这些内容,你就可以在MyEclipse环境中高效地开发和调试基于Flex的RIA应用,并利用Tomcat服务器实现后端逻辑。

    Tomcat+MySQL+MyEclipse环境搭建

    本教程主要涉及的是如何在Windows操作系统上搭建一个基于Java的开发环境,包括安装和配置JDK、Eclipse、MyEclipse、MySQL以及Tomcat,同时将MyEclipse与Tomcat进行关联。 **1. 安装JDK** JDK (Java Development ...

    图书馆管理系统struts2+mysql+tomcat6.0+myeclipse6.0

    本系统是一个基于Java技术栈的图书馆管理解决方案,它整合了Struts2框架、MySQL数据库、Tomcat应用服务器以及MyEclipse集成开发环境。这个项目的实施旨在提供一个高效、易用的图书信息管理和借阅服务系统,对于图书...

    用Eclipse3.1 + Myeclipse4.0 + Tomcat5.0 + j2sdk1.5 搭建J2EE开发环境

    用Eclipse3.1 + Myeclipse4.0 + Tomcat5.0 + j2sdk1.5 搭建J2EE开发环境

    JDK1.6.0_07+Tomcat5.0+Myeclipse-8.5.0

    JDK1.6.0_07+Tomcat5.0+Myeclipse-8.5.0-搭建开发环境 在软件开发和项目实施中,搭建一个完整的开发环境是一个非常重要的步骤。这个环境包括了JDK、Tomcat和Myeclipse三个主要组件。下面我们将详细介绍如何搭建这个...

    Eclipse3.2+MyEclipse5.5M1+axis2_1.1.1+tomcat5.5 开发Web Services

    本文以Eclipse3.2、MyEclipse5.5M1、axis2_1.1.1和tomcat5.5为例,详细讲解如何构建Web服务的开发环境,并快速创建和部署服务。 首先,我们需要准备以下软件: 1. **Tomcat 5.5**:这是一个流行的Java Servlet和...

    Eclipse3.2+MyEclipse5.5M1+axis2_1.1.1+tomcat5.5 开发Web Services.doc

    本文档主要介绍了如何使用特定版本的软件,包括Eclipse 3.2、MyEclipse 5.5M1、Axis2 1.1.1和Tomcat 5.5,来开发Web服务。以下是详细步骤和关键知识点: 1. **环境配置**: - **Eclipse**:Eclipse 3.2是一个流行...

    Eclipse+MyEclipse+tomcat5.5配置明细+MyEclipse注册码

    为了方便更多的人,写了这个! 一、安装JDK 二、安装Tomcat 三、安装Eclipse 四、安装MyEclipse 五、破解MyEclipse 六、指定Eclipse+MyEclipse的JRE 这里包括下载链接。和变量参数

    JDK+TOMCAT+MYSQL+MyEclipse图文安装教程

    "JDK+TOMCAT+MYSQL+MyEclipse图文安装教程" 本文将对 JDK、Tomcat、MySQL 和 MyEclipse 的安装进行详细的讲解,旨在帮助读者快速安装和配置这些软件。 JDK 安装 JDK 是 Java 开发环境的核心组件,安装 JDK 是 ...

    struts+spring+hibernate开发的+开发环境_eclipse3.1+MyEclipse4.1+tomcat5

    这个压缩包文件“struts+spring+hibernate开发的+开发环境_eclipse3.1+MyEclipse4.1+tomcat5”显然提供了一个基于这些技术的新闻发布系统的开发环境。下面我们将详细探讨这三大框架以及相关的开发工具和服务器。 **...

Global site tag (gtag.js) - Google Analytics