spring+springMVC+mybatis基础代码

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 02:51   21   0

web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
   
   <!-- ==========================spring lo4j相关配置 开始========================================= -->
   <!--log4j配置文件加载-->  
   <context-param>      
       <param-name>log4jConfigLocation</param-name>      
       <param-value>classpath:log4j.properties</param-value>      
   </context-param>  
   <!--启动一个watchdog线程每1800秒扫描一下log4j配置文件的变化-->  
   <context-param>      
       <param-name>log4jRefreshInterval</param-name>      
       <param-value>1800000</param-value>      
   </context-param>   
   <!--spring log4j监听器-->  
   <listener>
       <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>      
   </listener>
   <!-- ==========================spring lo4j相关配置 结束========================================= -->
   
   <!-- ==========================spring mvc context相关配置 开始========================================= -->
   <!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->
 <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:spring-main.xml</param-value>
 </context-param>  
   
    <!-- Spring MVC配置 -->
 <servlet>
  <description>可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,
  名称为如spring-servlet.xml</description>
     <servlet-name>spring mvc</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <init-param>
      <param-name>contextConfigLocation</param-name>
         <param-value>classpath:spring-mvc.xml</param-value>
     </init-param>
      <load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet-mapping>
     <servlet-name>spring mvc</servlet-name>
     <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 
 <!-- Spring配置 -->
 <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
 </listener>
 
   <!-- ==========================spring mvc context相关配置 结束========================================= -->
 
    <welcome-file-list>
        <welcome-file>/index.html</welcome-file>
        <welcome-file>/index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

spring-main.xml spring综合配置文件

<?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"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
      http://www.springframework.org/schema/beans/spring-beans-3.1.xsd   
      http://www.springframework.org/schema/context   
      http://www.springframework.org/schema/context/spring-context-3.1.xsd
      http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ">
 <description>定义业务层和集成层对象,包括Action、Service、BO、DAO、SAO、EJB、JNDI资源
 </description>
 <!--===================================================================== -->
 <!-- 配置外部变量文件 -->
 <!--===================================================================== -->
 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location">
   <description>可以引用CLASSPATH中common-spring.properties中定义的变量
   </description>
   <value>classpath:common-spring.properties</value>
  </property>
  <property name="ignoreUnresolvablePlaceholders" value="true" />
 </bean>

 <!--修改为本项目的根包名,这点很重要 -->
 <context:component-scan base-package="com.fast.base"></context:component-scan>
 <context:component-scan base-package="com.fast.app"></context:component-scan>

 <!-- 引入其它配置文件 -->
 <!--
    <import resource="spring-mvc.xml"/>
    -->
    <import resource="spring-orm.xml"/>
</beans>

spring-mvc.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    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.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.0.xsd">
 <description>此配置对应spring mvc相关拦截配置</description>
 
 <!--开启扫描包和子包 -->
    <context:component-scan base-package="com.fast.app.web"/>
 
    <!-- 使用默认的Servlet来响应静态文件 -->
    <mvc:default-servlet-handler />
 
    <!-- 注解支持 -->
    <mvc:annotation-driven />
     
    <!-- configure the InternalResourceViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/pages" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
    
    <!-- 拦截器设置 -->
 <mvc:interceptors>
     <mvc:interceptor>
         <mvc:mapping path="/*.do"/>
         <bean class="com.fast.app.web.interceptor.CommonInterceptor"></bean>
     </mvc:interceptor>        
 </mvc:interceptors>
    
</beans>

spring-orm.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"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans  
      http://www.springframework.org/schema/beans/spring-beans-3.1.xsd   
      http://www.springframework.org/schema/context   
      http://www.springframework.org/schema/context/spring-context-3.1.xsd
      http://www.springframework.org/schema/tx
      http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ">
 <description>此配置文件主要针对数据库连接,事务,session控制等等</description>
 
 <!--===================================================================== -->
 <!-- 数据源定义 -->
 <!--===================================================================== -->
 <!-- TODO: 如果使用到数据源,请将dsFactory的定义打开,并正确配置数据源JNDI  -->
    <!-- C3P0连接池配置 oracle-->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="${jdbc.driverClass}" />
  <property name="jdbcUrl" value="${jdbc.jdbcUrl}" />
  <property name="user" value="${jdbc.user}" />
  <property name="password" value="${jdbc.password}" />
  <!--连接池中保留的最小连接数。-->
  <property name="minPoolSize" value="${jdbc.miniPoolSize}" />
  <!--连接池中保留的最大连接数。-->
  <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/> 
  <!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
  <property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>
  <!--最大空闲时间,设置值内未使用则连接被丢弃。若为0则永不丢弃。 -->  
  <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>
  <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。--> 
  <property name="acquireIncrement" value="${jdbc.acquireIncrement}"/>
  
  <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
  <property name="acquireRetryAttempts" value="${jdbc.acquireRetryAttempts}"/>
  <!--两次连接中间隔时间,单位毫秒。Default: 1000 -->
  <property name="acquireRetryDelay" value="${jdbc.acquireRetryDelay}"/>
  <!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->
  <property name="testConnectionOnCheckin" value="${jdbc.testConnectionOnCheckin}"/>
  <!--<property name="automaticTestTable" value="${jdbc.automaticTestTable}"/>-->
  <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
  <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}"/>
  <!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出
   SQLException,如设为0则无限期等待。单位毫秒。Default: 0 -->
  <property name="checkoutTimeout" value="${jdbc.checkoutTimeout}"/>
  <!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意:测试的表必须在初始数据源的时候就存在。Default: null-->
  <property name="preferredTestQuery" value="${jdbc.preferredTestQuery}" />
 </bean>
 <!--===================================================================== -->
 <!-- MYBATIS 配置文件定义 -->
 <!--===================================================================== -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
     <property name="dataSource" ref="dataSource" />  
     <property name="configLocation" value="classpath:mybatis-config.xml"></property>  
 </bean>  
 
 <bean id="sqlSession"  class="org.mybatis.spring.SqlSessionTemplate">   
       <constructor-arg index="0" ref="sqlSessionFactory" />   
    </bean>  
 
 <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.fast.base.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
    </bean> 
    
    <!-- 定义事务处理类,不同的数据访问方式,事务处理类不同  
     比如:Hibernate操作的HibernateTransactionManager,JDBC操作的使用DataSourceTransactionManager  
  -->  
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
     <property name="dataSource" ref="dataSource"></property>  
 </bean>  
 <!-- 声明使用注解式事务 -->  
 <tx:annotation-driven transaction-manager="transactionManager"/>  
    
</beans>

common-spring.properties 综合配置文件

#C3P0 连接池配置
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.jdbcUrl=jdbc:oracle:thin:@10.20.128.115:1526:d0rsapp
jdbc.user=elisdata
jdbc.password=ilovetong
#连接池中保留的最小连接数。 
jdbc.miniPoolSize= 20
#连接池中保留的最大连接数。 
jdbc.maxPoolSize= 50
#初始化时获取N个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3  
jdbc.initialPoolSize= 20
#最大空闲时间,设置值内未使用则连接被丢弃。若为0则永不丢弃。    
jdbc.maxIdleTime= 25000
#当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。  
jdbc.acquireIncrement= 3

#定义在从数据库获取新连接失败后重复尝试的次数。Default: 30  
jdbc.acquireRetryAttempts= 30
#两次连接中间隔时间,单位毫秒。Default: 1000 
jdbc.acquireRetryDelay= 1000
#如果设为true那么在取得连接的同时将校验连接的有效性。Default: false  
jdbc.testConnectionOnCheckin= true
#c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。
jdbc.automaticTestTable= c3p0TestTable
#当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出 SQLException,如设为0则无限期等待。单位毫秒。Default: 0  
jdbc.idleConnectionTestPeriod= 18000
#定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。
#注意:测试的表必须在初始数据源的时候就存在。Default: null,该配置项不可以和automaticTestTable同时使用
jdbc.preferredTestQuery=select id from test_c3p0 where id=1
#超时时间
jdbc.checkoutTimeout=3000

log4j.properties 日志配置相关

#ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句,方便调试:
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=info,stdout,logfile
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

### 把日志信息输出到文件:default ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=${catalina.home}/logs/default.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

###显示SQL语句部分
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

#job
log4j.logger.com.jinguanjia.task.service.impl=INFO,task
log4j.appender.task=org.apache.log4j.DailyRollingFileAppender
log4j.appender.task.File=${catalina.home}/logs/task.log
log4j.appender.task.Append=true
log4j.appender.task.layout=org.apache.log4j.PatternLayout 
log4j.appender.task.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%t|%-5p|%c,%L,%M|->%m%n

mybatis-config.xml mybatis综合配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC  
    "-//mybatis.org//DTD Config 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>
  <typeAliases>
      <!--
      通过package, 可以直接指定package的名字, mybatis会自动扫描你指定包下面的javabean,
      并且默认设置一个别名,默认的名字为: javabean 的首字母小写的非限定类名来作为它的别名。
      也可在javabean 加上注解@Alias 来自定义别名, 例如: @Alias(user) 
      <package name="com.dy.entity"/>
       -->
      <typeAlias alias="PRODUCTINFO" type="com.fast.app.model.ProductInfo" />
  </typeAliases>
      
    <mappers>  
        <mapper resource="com/fast/app/mapper/ProductInfoDaoMapper.xml"/>  
    </mappers>  
</configuration>

基础Dao

package com.fast.base.dao;

import java.util.List;
import java.util.Map;

/**
 * mybatis基础Dao
 * @author LUSHUIFA242
 *
 */
public interface BaseDao{

 /**
     * 对对象进行持久化操作,如果成功则返回1
     * 失败返回-1
     * @param obj
     * @return
     */
 <T> int save(T bean);
 
 /**
  * 批量保存
  * @param objList
  * @return 成功返回操作的成功的数量 失败则回滚并返回-1
  */
 <T> int save(List<T> beanList);
 
 /**
     * 对对象进行持久化操作,如果成功则返回1
     * 失败返回-1
     * @param obj
     * @return
     */
 <T> int saveOrUpdate(T bean);
 
 /**
  * 批量保存与更新 
  * @param objList
  * @return 成功返回操作的成功的数量 失败则回滚并返回-1
  */
 <T> int saveOrUpdate(List<T> beanList);
 
  /**
     * 修改指定的持久化对象
     * @param id
     * @param obj
     */
    <T> int update(T bean);
    
    /**
     * 修改指定的持久化对象,批量
     * @param objList
     * @return
     */
    <T> int update(List<T> beanList);
    
    /**
     * 删除指定id的持久化对象
     * @param id
     * @return 
     */
    <T> int delete(Object primaryKey);
   
    
    /**
     * 返回持久化对象
     * @param obj
     * @return 找到则返回,否则返回空
     */
    <T> T queryObject(T bean);
    
    /**
     * 返回持久化对象
     * @param primaryKey
     * @return 找到则返回,否则返回空
     */
    <T> T queryObjectByPrimaryKey(Object primaryKey);
    
    /**
     * 返回持久化对象
     * @param queryParam
     * @return 找到则返回,否则返回空
     */
    <T> T queryObjectByParam(Map<String,Object> queryParam);
    
    /**
     * 返回列表 
     * @param queryParam
     * @return 找到则返回,否则返回空
     */
    <T> List<T> queryList(T bean);
    
    /**
     * 返回列表 
     * @param bean
     * @param limitSize
     * @return 找到则返回,否则返回空
     */
    <T> List<T> queryList(T bean,int limitSize);
    
    /**
     * 返回列表 
     * @param bean
     * @param startIndex
     * @param endIndex
     * @return 找到则返回,否则返回空
     */
    <T> List<T> queryList(T bean,int startIndex,int endIndex);
    
    /**
     * 返回列表 
     * @param queryParam
     * @return 找到则返回,否则返回空
     */
    <T> List<T> queryListByParam(Map<String,Object> queryParam);
    
    /**
     * 返回列表 
     * @param queryParam
     * @param limitSize
     * @return 找到则返回,否则返回空
     */
    <T> List<T> queryListByParam(Map<String,Object> queryParam,int limitSize);
    
    /**
     * 返回列表 
     * @param queryParam
     * @param startIndex
     * @param endIndex
     * @return 找到则返回,否则返回空
     */
    <T> List<T> queryListByParam(Map<String,Object> queryParam,int startIndex,int endIndex);
    
    /**
     * 统计所有记录数
     * @return
     */
    <T> long count();
    
    /**
     * 根据条件统计
     * @param bean
     * @return
     */
    <T> long count(T bean);
    
 void setXmlName(String xmlName);
    
}

基础dao实现类

package com.fast.base.dao.impl;

import java.sql.Connection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Component;

import com.alibaba.fastjson.JSONObject;
import com.fast.base.dao.BaseDao;

@Component
public class BaseDaoImpl implements BaseDao {

 @Resource(name = "sqlSession")
 private SqlSession session;
 private String path = "com.fast.app.mapper.";
 
 private String xmlName;
 
 protected BaseDaoImpl(){
  path = path + this.getXmlName();
 }
 
 protected BaseDaoImpl(String xmlName) {
  this.setXmlName(xmlName);
  path = path + xmlName;
 }
 
 protected String getMethodPath(String methodName) {
  return path +"."+ methodName;
 }
 
 /**
     * 对对象进行持久化操作,如果成功则返回1
     * 失败返回-1
     * @param obj
     * @return
     */
 public <T> int save(T bean){
  return this.session.insert(getMethodPath("save"), bean);
 }
 
 /**
  * 批量保存
  * @param objList
  * @return 成功返回操作的成功的数量 失败则回滚并返回-1
  */
 public <T> int save(List<T> beanList) {
  return this.session.insert(getMethodPath("batchSave"), beanList);
 }
 
 /**
     * 对对象进行持久化操作,如果成功则返回1
     * 失败返回-1
     * @param obj
     * @return
     */
 public <T> int saveOrUpdate(T bean) {
  return this.session.insert(getMethodPath("saveOrUpdate"), bean);
 }
 
 /**
  * 批量保存与更新 
  * @param objList
  * @return 成功返回操作的成功的数量 失败则回滚并返回-1
  */
 public <T> int saveOrUpdate(List<T> beanList) {
  int actionCount = -1;
  for (T t : beanList) {
   if(saveOrUpdate(t)>0){
    actionCount++;
   }
  }
  return actionCount;
 }
 
  /**
     * 修改指定的持久化对象
     * @param id
     * @param obj
     */
    public <T> int update(T bean) {
  return this.session.update(getMethodPath("update"), bean);
 }
    
    /**
     * 修改指定的持久化对象,批量
     * @param objList
     * @return
     */
    public <T> int update(List<T> beanList) {
     return this.session.update(getMethodPath("batchUpdate"), beanList);
 }
    
    /**
     * 删除指定id的持久化对象
     * @param id
     */
    public <T> int delete(Object primaryKey) {
  return this.session.delete(getMethodPath("deleteByPrimaryKey"), primaryKey);
     
 }
   
    /**
     * 返回持久化对象
     * @param obj
     * @return 找到则返回,否则返回空
     */
    public <T> T queryObject(T bean) {
  return this.session.selectOne(getMethodPath("queryObject"), bean);
 }
    
    /**
     * 返回持久化对象
     * @param primaryKey
     * @return 找到则返回,否则返回空
     */
    public <T> T queryObjectByPrimaryKey(Object primaryKey) {
     return this.session.selectOne(getMethodPath("queryObjectByPrimaryKey"), primaryKey);
 }
    
    /**
     * 返回持久化对象
     * @param queryParam
     * @return 找到则返回,否则返回空
     */
    public <T> T queryObjectByParam(Map<String,Object> queryParam) {
     return this.session.selectOne(getMethodPath("queryObjectByParam"), queryParam);
 }
    
    /**
     * 返回列表 
     * @param queryParam
     * @return 找到则返回,否则返回空
     */
    public <T> List<T> queryList(T bean) {
     return queryList(bean,-1);
 }
    
    /**
     * 返回列表 
     * @param bean
     * @param limitSize -1
     * @return 找到则返回,否则返回空
     */
    public <T> List<T> queryList(T bean,int limitSize) {
     try {
      Map<String,Object> param = new HashMap<String,Object>();
      param.putAll((Map<? extends String, ? extends Object>) JSONObject.toJSON(bean));
         param.put("limitSize", limitSize);
         return this.session.selectList(getMethodPath("queryList"), param);
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }
    
    /**
     * 返回列表 此方法适用分页
     * @param bean
     * @param startIndex
     * @param endIndex
     * @return 找到则返回,否则返回空
     */
    public <T> List<T> queryList(T bean,int startIndex,int endIndex){
     Map<String,Object> param = new HashMap<String,Object>();
     param.putAll((Map<? extends String, ? extends Object>) JSONObject.toJSON(bean));
     param.put("startIndex", startIndex);
     param.put("endIndex", endIndex);
     return this.session.selectList(getMethodPath("queryListInRange"), param);
    }
    
    /**
     * 返回列表 
     * @param queryParam
     * @return 找到则返回,否则返回空
     */
    public <T> List<T> queryListByParam(Map<String,Object> queryParam){
     return this.session.selectList(getMethodPath("queryListByParam"), queryParam);
    }
    
    /**
     * 返回列表 
     * @param queryParam
     * @param limitSize
     * @return 找到则返回,否则返回空
     */
    public <T> List<T> queryListByParam(Map<String,Object> queryParam,int limitSize){
     queryParam.put("limitSize", limitSize);
     return this.session.selectList(getMethodPath("queryListByParam"), queryParam);
    }
    
    /**
     * 返回列表 
     * @param queryParam
     * @param startIndex
     * @param endIndex
     * @return 找到则返回,否则返回空
     */
    public <T> List<T> queryListByParam(Map<String,Object> queryParam,int startIndex,int endIndex){
     queryParam.put("startIndex", startIndex);
     queryParam.put("endIndex", endIndex);
     return this.session.selectList(getMethodPath("queryListByParam"), queryParam);
    }
    
    /**
     * 统计所有记录数
     * @return
     */
    public <T> long count(){
     return this.session.selectOne(getMethodPath("count"));
    }
    
    /**
     * 根据条件统计
     * @param bean
     * @return
     */
    public <T> long count(T bean){
     return this.session.selectOne(getMethodPath("count"),bean);
    }

 /**
  * 得到数据库连接
  * @return
  */
 public Connection getConn(){
  return this.getSession().getConnection();
 }

 /**
  * 得到mybatis session操作类
  * @return
  */
 public SqlSession getSession() {
  return session;
 }

 public void setSession(SqlSession session) {
  this.session = session;
 }

 public String getXmlName() {
  return xmlName;
 }

 @Override
 public void setXmlName(String xmlName) {
  this.xmlName = xmlName;
 }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP