• spring3.0+jsf+ibatis整合


    user.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    
    <!DOCTYPE sqlMap      
        PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
        "http://ibatis.apache.org/dtd/sql-map-2.dtd">
    
    <sqlMap namespace="user">
    
      <!-- Use type aliases to avoid typing the full classname every time. -->
      <typeAlias alias="User" type="****.beans.User"/>
    
      <!-- Result maps describe the mapping between the columns returned
           from a query, and the class properties.  A result map isn't
           necessary if the columns (or aliases) match to the properties 
           exactly. -->
      <resultMap id="UserResult" class="User">
        <result property="userName" column="name"/>
        <result property="password" column="password"/>
      </resultMap>
    
      <!-- Select with no parameters using the result map for Account class. -->
      <select id="selectAllUser" resultMap="UserResult">
        select * from User
      </select>
    
      <!-- A simpler select example without the result map.  Note the 
           aliases to match the properties of the target result class. -->
      <select id="selectUserByName" parameterClass="java.lang.String" resultClass="User">
        select
          name as userName,
          password as password
        from user
        where name = #userName#
      </select>
       
      <!-- Insert example, using the User parameter class-->
      <insert id="insertUser" parameterClass="User">
        insert into User (
          name,
          password ) 
        values (#userName#,#password#)
      </insert>
     </sqlMap>

    SqlMapConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    
    <!DOCTYPE sqlMapConfig      
        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
    
    <sqlMapConfig>
    
    
       <!-- The properties (name=value) in the file specified here can be used 
            placeholders in this config file (e.g. “${driver}”. The file is relative 
            to the classpath and is completely optional. 
       <properties resource="db.properties" /> -->
    
       <!-- These settings control SqlMapClient configuration details, primarily 
            to do with transaction management. They are all optional (more detail 
            later in this document). 
      <settings
        cacheModelsEnabled="true"
        enhancementEnabled="true"
        lazyLoadingEnabled="true"
        maxRequests="32"
        maxSessions="10"
        maxTransactions="5"
        useStatementNamespaces="false"/> -->
    
      <!-- Configure a built-in transaction manager.  If you're using an 
           app server, you probably want to use its transaction manager 
           and a managed datasource 
       
      <transactionManager type="JDBC" commitRequired="false">
        <dataSource type="SIMPLE">
          <property name="JDBC.Driver" value="${driver}"/>
          <property name="JDBC.ConnectionURL" value="${url}"/>
          <property name="JDBC.Username" value="${username}"/>
          <property name="JDBC.Password" value="${password}"/>      
          <property name="JDBC.DefaultAutoCommit" value="true" />
          <property name="Pool.MaximumActiveConnections" value="10"/>
          <property name="Pool.MaximumIdleConnections" value="5"/>
          <property name="Pool.MaximumCheckoutTime" value="120000"/>
          <property name="Pool.TimeToWait" value="500"/>
          <property name="Pool.PingQuery" value="select 1 from User"/>
          <property name="Pool.PingEnabled" value="false"/>
          <property name="Pool.PingConnectionsOlderThan" value="1"/>
          <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
        </dataSource>
      </transactionManager> -->
      
      <!-- List the SQL Map XML files. They can be loaded from the classpath, as they are here (com.domain.data...) -->
      <!-- List more here...
      <sqlMap resource="com/mydomain/data/Order.xml"/>
      <sqlMap resource="com/mydomain/data/Documents.xml"/>
      -->
      <sqlMap resource="******/beans/User.xml"/>
    
    </sqlMapConfig>

    beans.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-3.0.xsd">
               
             
     
    <context:property-placeholder location="classpath:db.properties"/>
    <context:annotation-config/>
    <context:component-scan base-package="com.***"/>
    <!--此bean用来告诉Spring去何处找数据库信息,有此Bean才会有下面dataSource中用${}标记来取变量的语句
    <bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
        <property name="location"> 
        <value>classpath:db.properties</value>  
        </property> 
    </bean> 
     -->  
    <!--配置一个数据源,根据上面propertyConfig指定的location去找数据库连接的配置信息 --> 
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
        <property name="driverClassName"> 
        <value>${driver}</value> 
        </property> 
        <property name="url"> 
        <value>${url}</value> 
        </property> 
        <property name="username"> 
        <value>${username}</value> 
        </property> 
        <property name="password"> 
        <value>${password}</value> 
        </property> 
    </bean> 
    
    <!--根据dataSource和configLocation创建一个SqlMapClient --> 
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> 
        <property name="configLocations"> 
            <list> 
                <!-- sql语句配置xml文件 --> 
                <value>classpath:SqlMapConfig.xml</value> 
            </list> 
        </property> 
        <property name="dataSource"> 
            <ref bean="dataSource" /> 
        </property> 
    </bean> 
    
    <!--根据sqlMapClien创建一个sqlMapClientTemplate模版类 --> 
    <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate"> 
        <property name="sqlMapClient"> 
           <ref bean="sqlMapClient" /> 
        </property> 
    </bean> 
    <bean name="userServiceSpring" class="*****.service.UserServiceSpring">
      <property name="sqlMapClientTemplate">
         <ref bean="sqlMapClientTemplate"/>
      </property>
    </bean>
    <bean id="user" class="****.beans.User"/>
    </beans>

    faces-config.xml

    <?xml version='1.0' encoding='UTF-8'?>
    
    <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
        version="1.2">
    <!--此配置把jsf bean 交给spring管理-->
          <application>
             <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
          </application>
    <!--  
        <managed-bean>
            <managed-bean-name>user</managed-bean-name>
            <managed-bean-class>*****.beans.User</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
    -->  
        <navigation-rule>
            <from-view-id>/index.jsp</from-view-id>
            <navigation-case>
                <from-outcome>success</from-outcome>
                <to-view-id>/sucess.jsp</to-view-id>
            </navigation-case>
        </navigation-rule>
    </faces-config>
    //jsf  中获取spring实例的对象            
    ServletContext context = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext(); ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);

     

  • 相关阅读:
    odoo 的各种domain
    odoo search之时间搜索,时间段查询
    git 修改远程仓库地址
    Windows 挂起进程
    结构体 偏移量 (size_t)&(((s *)0)->m) , list相关
    Data Flow Diagram with Examples
    Windows环境,获取当前线程的ID,GetCurrentThreadId
    获取 保存 系统信息 [Windows]
    notepad正则删除关键词所在行
    文件或文件夹改变后,发信号让系统刷新
  • 原文地址:https://www.cnblogs.com/heml/p/3499830.html
Copyright © 2020-2023  润新知