在main方法中调用mybatis的mapper,一次性执行导入数据功能package com.runxsoft.test;import com.runxsoft.iutils.common.utils.UserUtils;
import com.runxsoft.superwe.base.SqlVo;
import com.runxsoft.superwe.base.mapper.ProtogenesisMapper;
import com.runxsoft.superwe.valueCard.Constants;
import com.runxsoft.superwe.valueCard.mapper.CardInfoMapper;
import com.runxsoft.superwe.valueCard.mapper.CardTypeMapper;
import com.runxsoft.superwe.valueCard.mapper.CustomerInfoMapper;
import com.runxsoft.superwe.valueCard.model.Bonus;
import com.runxsoft.superwe.valueCard.model.CardInfo;
import com.runxsoft.superwe.valueCard.model.CardType;
import com.runxsoft.superwe.valueCard.model.CustomerInfo;
import com.runxsoft.superwe.valueCard.model.CustomerInfoExample;
import com.runxsoft.superwe.valueCard.service.CustomerInfoService;
import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class ImprotMain {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("spring-config-imp.xml");BeanFactory factory = (BeanFactory) context;CustomerInfoMapper customerInfoMapper=factory.getBean(CustomerInfoMapper.class);ProtogenesisMapper protogenesisMapper = factory.getBean(ProtogenesisMapper.class);CardTypeMapper cardTypeMapper = factory.getBean(CardTypeMapper.class);CardInfoMapper cardInfoMapper = factory.getBean(CardInfoMapper.class);try {//下面就可以使用mapper接口了List<Map<String,Object>> results = protogenesisMapper.selectBySql(new SqlVo("select usAccounts,usNumber,usName,departname,usMoney, " +"ifnull(ROUND((select sum(crMoney) from old_chargerecord cr where cr.crAccounts = ubi.usAccounts),2),0) as consumedMoney, " +"ROUND((usMoney + ifnull((select sum(crMoney) from old_chargerecord cr where cr.crAccounts = ubi.usAccounts),0)),0) as totalMoney," +"usCardNo, usRegisterDate ,ushandtel,usIdentityCardNo,usSex " +"from old_userbasicinfo ubi " +"left join old_T_S_Department on DepartID = usDepartmentNo  " +"where ifnull(usNumber,'')<>'' " +"and ifnull(usCardNo,'0')<>'0' " +"and usMoney > 0  " +"order by ubi.usName"));String userName = "";CardInfo cardInfo = null;Long customerId = 0L;System.out.println(results.size());} catch (Exception e) {e.printStackTrace();}}}

配置文件代码:

<?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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><context:property-placeholder location="classpath:config.properties"/><!-- 扫描注解Bean 采用自定义命名策略工具类 --><context:component-scan base-package="com.runxsoft" name-generator="com.runxsoft.iutils.common.spring.JAnnotationBeanNameGenerator"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!-- 开启AOP监听 只对当前配置文件有效 --><aop:aspectj-autoproxy expose-proxy="true"/><!-- 第一个数据源 --><bean id="dataSource_1" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass --><property name="driverClassName" value="${jdbc.driver}" /><!-- 基本属性 url、user、password --><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="${druid.initialSize}"/><property name="minIdle" value="${druid.minIdle}"/><property name="maxActive" value="${druid.maxActive}"/><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="${druid.maxWait}"/><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" /><property name="validationQuery" value="${druid.validationQuery}" /><property name="validationQueryTimeout" value="${druid.validationQueryTimeout}" /><property name="testWhileIdle" value="${druid.testWhileIdle}" /><property name="testOnBorrow" value="${druid.testOnBorrow}" /><property name="testOnReturn" value="${druid.testOnReturn}" /><property name="removeAbandoned" value="${druid.removeAbandoned}" /><property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" /><property name="logAbandoned" value="${druid.logAbandoned}" /><!-- 打开PSCache,并且指定每个连接上PSCache的大小 oracle=true mysql=false --><property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" /><property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" /><!-- 配置监控统计拦截的filters --><property name="filters" value="${druid.filters}" /></bean><!-- 第二个数据源 --><!--<bean id="dataSource_2" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">--><!--&lt;!&ndash; 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass &ndash;&gt;--><!--<property name="driverClassName" value="${jdbc2.driver}" />--><!--&lt;!&ndash; 基本属性 url、user、password &ndash;&gt;--><!--<property name="url" value="${jdbc2.url}"/>--><!--<property name="username" value="${jdbc2.username}"/>--><!--<property name="password" value="${jdbc2.password}"/>--><!--&lt;!&ndash; 配置初始化大小、最小、最大 &ndash;&gt;--><!--<property name="initialSize" value="${druid.initialSize}"/>--><!--<property name="minIdle" value="${druid.minIdle}"/>--><!--<property name="maxActive" value="${druid.maxActive}"/>--><!--&lt;!&ndash; 配置获取连接等待超时的时间 &ndash;&gt;--><!--<property name="maxWait" value="${druid.maxWait}"/>--><!--&lt;!&ndash; 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 &ndash;&gt;--><!--<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />--><!--&lt;!&ndash; 配置一个连接在池中最小生存的时间,单位是毫秒 &ndash;&gt;--><!--<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />--><!--<property name="validationQuery" value="${druid.validationQuery}" />--><!--<property name="validationQueryTimeout" value="${druid.validationQueryTimeout}" />--><!--<property name="testWhileIdle" value="${druid.testWhileIdle}" />--><!--<property name="testOnBorrow" value="${druid.testOnBorrow}" />--><!--<property name="testOnReturn" value="${druid.testOnReturn}" />--><!--<property name="removeAbandoned" value="${druid.removeAbandoned}" />--><!--<property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />--><!--<property name="logAbandoned" value="${druid.logAbandoned}" />--><!--&lt;!&ndash; 打开PSCache,并且指定每个连接上PSCache的大小 oracle=true mysql=false &ndash;&gt;--><!--<property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" />--><!--<property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" />--><!--&lt;!&ndash; 配置监控统计拦截的filters &ndash;&gt;--><!--<property name="filters" value="${druid.filters}" />--><!--</bean>--><!-- 动态配置数据源 --><bean id ="dataSource" class= "com.runxsoft.iutils.common.datasource.DynamicDataSource" ><property name ="targetDataSources"><map key-type ="java.lang.String"><entry value-ref ="dataSource_1" key= "dataSource_1"></entry ><!--<entry value-ref ="dataSource_2" key= "dataSource_2"></entry >--></map ></property ><property name ="defaultTargetDataSource" ref= "dataSource_1"></property ></bean ><!-- MyBatis begin --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="classpath:/mappings/**/*.xml"/><property name="configLocation" value="classpath:/mybatis-config.xml"></property></bean><!-- 扫描basePackage下所有以@MyBatisDao注解的接口 --><bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /><property name="basePackage" value="com.runxsoft"/><property name="annotationClass" value="com.runxsoft.iutils.common.annotation.MyBatisDao"/></bean><!-- 定义事务 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 配置 Annotation 驱动,扫描@Transactional注解的类定义事务  --><tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/><!-- MyBatis end --><!-- 配置事务的传播特性 --><tx:advice id ="txAdvice" transaction-manager="transactionManager"><tx:attributes ><tx:method name ="find*" read-only="true" /><tx:method name ="get*" read-only="true" /><tx:method name ="query*" read-only="true" /><tx:method name ="save*" propagation="REQUIRED" /><tx:method name ="add*" propagation="REQUIRED" /><tx:method name ="update*" propagation="REQUIRED" /><tx:method name ="delete*" propagation="REQUIRED" /></tx:attributes ></tx:advice ><!-- 配置AOP --><aop:config ><!-- 切点 多包配置 execution(* cn.iutils.*.service..*.*(..)) or execution(* com.company.*.service..*.*(..)) --><aop:pointcut expression ="execution(* com.runxsoft.*.*.service..*.*(..))" id= "pointcut" /><aop:advisor advice-ref ="txAdvice" pointcut-ref="pointcut" /></aop:config ><!-- Spring工具 --><bean class="com.runxsoft.iutils.common.spring.SpringUtils"></bean><!-- 调度工厂 --><bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"></bean><!-- 导入shiro配置 --><!--<import resource="classpath:spring-config-shiro.xml"/>--></beans>

java main方法里调用mapper相关推荐

  1. java main方法调用非静态方法_java中main函数怎么调用外部非static方法

    展开全部 方法可以分为静态方法和实例方法 在main函数里调用非static方法(实例方法),那么32313133353236313431303231363533e78988e69d833133336 ...

  2. Java实现 for循环输出空心的菱形 在main方法中调用printHollowRhombus()方法完成10行的空心菱形输出,其中 printHollo

    Java实现for循环输出空心的菱形 @author asus 在main方法中调用printHollowRhombus()方法完成10行的空心菱形输出,其中 printHollowRhombus() ...

  3. Java main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  4. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  5. Java main()方法

    在 Java 中,main() 方法是 Java 应用程序的入口方法,程序在运行的时候,第一个执行的方法就是 main() 方法.main() 方法和其他的方法有很大的不同. 下面先来看最简单的一个 ...

  6. 深入理解Java main方法

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,例如 方法的名字必须是main 方法必须 ...

  7. main方法中args_public static void main(String [] args)– Java main方法

    main方法中args public static void main(String[] args) is the most important Java method. When you start ...

  8. JAVA中方法的调用(详细整理)

    JAVA中方法的调用主要有以下几种: 1.非静态方法 非静态方法就是没有 static 修饰的方法,对于非静态方法的调用,是通过对 象来调用的,表现形式如下. 对象名.方法() eg: public ...

  9. JAVA中方法的调用

    JAVA中方法的调用主要有以下几种: 1.非静态方法 非静态方法就是没有 static 修饰的方法,对于非静态方法的调用,是通过对 象来调用的,表现形式如下. 对象名.方法() eg: public ...

最新文章

  1. OpenCV支持中文字符输出实现
  2. docker 僵尸进程解决方案 Baseimage-docker,胖容器和“容器也是虚拟机”
  3. Java 面试题(4)—— 多线程
  4. 十八、PHP框架Laravel学习笔记——模型的增删改
  5. C++基础04-类基础
  6. 最全JavaScript基础总结~建议收藏
  7. Scality试图将对象存储转移到磁带和云中
  8. iOS音频播放 (一):概述 转
  9. 从其他文件夹导入文件
  10. select在各个浏览器中的兼容性问题
  11. 单例模式详解(线程安全,饿汉,懒汉模式)
  12. 锁屏显示Activity
  13. 基于Java的奖学金评定管理系统
  14. Paul Graham:未来的互联网创业
  15. 结构动力学MATLAB编程例题,华工结构动力学编程 MATLAB
  16. 重磅!谷歌宣布 DeepMind 与 Google Brain 合并,奋力追赶 OpenAI
  17. 毕达哥拉斯的面包规矩
  18. 面渣逆袭:Spring三十五问,四万字+五十图详解 。不要错过
  19. 3G到来将全面颠覆SP、CP游戏规则
  20. java 桌面客户端开发

热门文章

  1. 利用scp 远程上传下载文件/文件夹
  2. Java GregorianCalendar computeTime()方法与示例
  3. 远控免杀专题1---基础篇
  4. Linux 可执行文件 ELF结构 及程序加载运行
  5. UVA 11988——Broken Keyboard (a.k.a. Beiju Text)
  6. C++ 多态之纯虚函数和抽象类01
  7. linux设置时间快1小时,LINUX CentOS系统时间与现在时间相差8小时解决方法
  8. 详解malloc,calloc,realloc原理及其模拟实现
  9. pip代理解决pip下载失败问题
  10. HDU1999不可摸数-暴力打表