- 浏览: 796786 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
1、批量新增:
2、批量修改:
单个条件、单个修改字段:
多个条件、多个修改字段:
3、批量删除:
单个条件:
多个条件:
多个条件第2种形式:
4、批量查询:(未验证)
PS:带in的查询:
4.1mybatis sql in 查询总结
5、mapper常用写法
方式一: <insert id="addMonthDutyIntoDB" parameterType="java.util.List"> insert into TB_DUTY select SEQ_TB_DUTY.nextval,A.* from( <foreach collection="list" item="item" index="index" separator="union"> SELECT #{item.dscd}, #{item.unitId},#{item.year},#{item.month},#{item.day},#{item.weekDay}, #{item.morningPeopleIds}, #{item.morningPeopleNames},#{item.afternoonPeopleIds},#{item.afternoonPeopleNames},#{item.eveningPeopleIds}, #{item.eveningPeopleNames},#{item.leaderIds},#{item.leaderNames},#{item.flag},#{item.remark},#{item.day0} FROM DUAL </foreach> ) A </insert> 方式二: <!-- 批量新增--> <insert id="batchAdd" parameterType="java.util.List"> insert all <foreach collection="list" item="item" index="index" separator="" > into t_student ( a, b ) values( #{item.a}, #{item.b} ) </foreach> select 1 from dual </insert>
2、批量修改:
单个条件、单个修改字段:
<update id="auditMultiByIds" parameterType="java.util.List"> update tb_code_name_result_new set state=#{state,jdbcType=INTEGER} where id in <foreach collection="list" item="item" index="index" open="(" separator="," close=")" > #{item} </foreach> </update>
多个条件、多个修改字段:
<update id="updateByMultiConditions" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="begin" close="; end;" separator=";"> update TB_DUTY <set> <if test="item.morningPeopleIds != null and item.morningPeopleIds != '' " > MORNING_PEOPLE_IDS=#{item.morningPeopleIds,jdbcType=VARCHAR}, </if> <if test="item.morningPeopleNames != null and item.morningPeopleNames != '' " > MORNING_PEOPLE_NAMES=#{item.morningPeopleNames,jdbcType=VARCHAR}, </if> <if test="item.afternoonPeopleIds != null and item.afternoonPeopleIds != '' " > AFTERNOON_PEOPLE_IDS=#{item.afternoonPeopleIds,jdbcType=VARCHAR}, </if> <if test="item.afternoonPeopleNames != null and item.afternoonPeopleNames != '' " > AFTERNOON_PEOPLE_NAMES=#{item.afternoonPeopleNames,jdbcType=VARCHAR}, </if> <if test="item.eveningPeopleIds != null and item.eveningPeopleIds != '' " > EVENING_PEOPLE_IDS=#{item.eveningPeopleIds,jdbcType=VARCHAR}, </if> <if test="item.eveningPeopleNames != null and item.eveningPeopleNames != '' " > EVENING_PEOPLE_NAMES=#{item.eveningPeopleNames,jdbcType=VARCHAR}, </if> <if test="item.leaderIds != null and item.leaderIds != '' " > LEADER_IDS=#{item.leaderIds,jdbcType=VARCHAR}, </if> <if test="item.leaderNames != null and item.leaderNames != '' " > LEADER_NAMES=#{item.leaderNames,jdbcType=VARCHAR}, </if> </set> where DUTY_ID=#{item.dutyId,jdbcType=INTEGER} </foreach> </update>
3、批量删除:
单个条件:
<delete id="delMultiByIds" parameterType="java.util.List"> delete from TB_CODE_NAME_RESULT_NEW where ID in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete>
多个条件:
<delete id="delMultiByIds2" parameterType="java.util.List"> delete from tb_duty A where exists ( select 1 from( <foreach collection="list" item="item" index="index" separator="union all"> select B.* from tb_duty B where 1=1 and B.dscd=${item.dscd} and B.unit_id=${item.unitId} and B.year=${item.year} and B.month=${item.month} and B.flag=${item.flag} </foreach> )S where A.duty_id=S.duty_id ) </delete>
多个条件第2种形式:
<!-- 成功删除返回的是-1而不是删除的记录数 --> <delete id="delMultiByIds" > <foreach collection="list" item="item" index="index" open="begin" close="; end;" separator=";"> delete from tb_duty_statistics a where a.person_id in( select b.person_id from tb_duty_person_info b where b.dscd=#{dscd,jdbcType=CHAR} and b.unit_id=#{unitId,jdbcType=INTEGER} ) and substr(a.duty_id,1,7)=#{item.dutyId,jdbcType=CHAR} </foreach> </delete>
4、批量查询:(未验证)
<select id="selectBySomePoiIds" resultType="list" parameterType="java.util.Map"> SELECT <include refid="Base_Column_List" /> FROM 表名 WHERE poi_id in <foreach collection="poiIds" item="poiId" index="index" open="(" close=")" separator=","> #{poiId} </foreach> AND pass_uid = #{passUid} <if test="status != null"> AND status = #{status,jdbcType=BIGINT} </if> </select>
PS:带in的查询:
4.1mybatis sql in 查询总结
http://blog.csdn.net/u013628152/article/details/51184641
String[] array={CommonEnum.INITIATIVE_PAYMENT_AWARD_FUN.getCode(),CommonEnum.INITIATIVE_PAYMENT_AWARD_NUM.getCode()}; List<ModuleConfigEntity> list=moduleConfigRepository.selectMultiRecords(array); if(CollectionUtils.isNotEmpty(list)){ for (ModuleConfigEntity moduleConfigEntity : list) { if(CommonEnum.INITIATIVE_PAYMENT_AWARD_FUN.getCode().equals(moduleConfigEntity.getConfigName())){ unionPaySltEntities.get(0).setInitiativePaymentAwardFun(moduleConfigEntity.getConfigValue());//开关 }else if(CommonEnum.INITIATIVE_PAYMENT_AWARD_NUM.getCode().equals(moduleConfigEntity.getConfigName())){ unionPaySltEntities.get(0).setInitiativePaymentAwardNum(moduleConfigEntity.getConfigValue());//数量 } } } // <!--根据config_name查询多个开关配置--> <select id="selectMultiRecords" resultType="ModuleConfigEntity"> SELECT CONFIG_NAME configName, CONFIG_VALUE configValue FROM t_ddq_module_config WHERE DELETE_FLAG=0 and CONFIG_NAME in <foreach item="item" index="index" collection="array" open="(" separator="," close=")"> #{item} </foreach> </select>
5、mapper常用写法
<resultMap id="BaseResultMap" type="com.xyxc.CustomerInfoEntity"> <id column="id" property="id" /> <result column="aa" property="aa" /> <result column="bb" property="bb" /> </resultMap> <sql id="table_column_no_id"> aa, bb , cc, dd, ee </sql> <sql id="columns" > id,<include refid="table_column_no_id"/> </sql> <sql id="table_name" > TableName </sql> <insert id="insert" parameterType="com.xyxc.CustomerInfoEntity" useGeneratedKeys="true" keyProperty="installmentId"> <![CDATA[ INSERT INTO T_DDQ_INSTALLMENT_INFO ( aa, bb , cc, dd, ee ) VALUES ( #{sltAccountId}, #{loanPeriodNo}, #{scheduleAmount}, now(), now() ) ]]> <selectKey resultType="Long" keyProperty="installmentId" order="AFTER"> <![CDATA[ SELECT LAST_INSERT_ID() AS installmentId ]]> </selectKey> </insert>
发表评论
-
数据库sql、mybatis、堆栈
2016-04-01 16:00 6591、数据库方面 SQL SERVER: select r.id ... -
mybatis直接执行前台传递的sql语句(mapper参数即为sql字符串)
2016-03-23 13:24 34301、dao.java public List<Map& ... -
Mybatis配置SQL的Mapper.xml
2016-03-02 13:57 763引用参考: --MyBatis中jdbcType和javaTy ... -
ibatis3
2013-04-25 13:43 843MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持 ...
相关推荐
在Eclipse中创建一个JUnit测试类,注入`TestService`,并调用其方法进行数据库操作,如查询、插入、更新或删除,以验证MyBatis是否成功连接到Oracle数据库。 通过以上步骤,你就完成了MyBatis连接Oracle数据库的...
通过使用SQL方言包,MyBatis能够更好地适应各种数据库,如MySQL、Oracle和DB2,使得在切换数据库时无需对SQL语句进行大量修改。 1. **MyBatis框架概述** MyBatis是一个轻量级的ORM(对象关系映射)框架,它消除了...
在Spring Boot项目中,我们经常会遇到需要连接多个数据库的需求,比如主从数据库、读写分离等场景。本配置示例将详细介绍如何在Spring Boot中整合MyBatis与Oracle数据库,并配置两个不同的数据源。 首先,我们需要...
在Java开发中,MyBatis是一个非常流行的持久层框架,它简化了数据库操作与Java对象之间的映射。本文将详细讲解如何使用MyBatis连接MySQL数据库,并介绍在该过程中所需的jar包及其作用。 首先,我们要了解MyBatis的...
mybatis 分页 mybatis-...大家知道mybatis自动生成代码是没有分页功能的 我在网上找了很久 有很多内容 但正真可以使用的少之又少 本人整合了网上的资源 整理了基于Oracle数据库的mybatis插件 经测试可以完美运行。。
MyBatis动态SQL和批量插入的应用 MyBatis是一款功能强大且灵活的持久层框架,提供了多种方式来对数据库进行交互。其中,动态SQL是一种非常强大的特性,能够根据不同的条件生成不同的SQL语句。下面将详细介绍MyBatis...
在本项目"SpringBoot+Mybatis+Oracle代码demo"中,开发者旨在提供一个集成SpringBoot、Mybatis和Oracle数据库的示例,以帮助初学者更好地理解和应用SpringBoot框架。下面将详细阐述这三个核心技术及其在项目中的应用...
本教程将深入探讨如何利用SpringBoot整合Mybatis-Plus,同时支持Oracle和MySQL数据库,并通过Nacos作为注册中心,以及使用Swagger2进行API文档的生成。 首先,让我们了解SpringBoot的核心优势。SpringBoot简化了...
7. **测试**:在"测试通过"的描述中,我们可以理解项目已经进行了单元测试或集成测试,确保了SpringBoot、MyBatis和Oracle的正确集成。这可能涉及到JUnit或者Spring Boot的@Test注解,以及Mockito等测试工具。 8. *...
首先,我们要理解MyBatis的核心原理,它是一个基于Java的持久层框架,通过XML或注解来映射SQL语句,简化了Java与数据库之间的交互。在使用注解进行批量处理时,MyBatis提供了动态SQL的功能,使得我们可以在不写大量...
* 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库 * 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢...
在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char类型字段进行特殊处理,以确保查询结果的正确性。 首先,需要了解...
本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...
【标题】"mybatis + oracle demo"是一个关于如何结合MyBatis框架与Oracle数据库进行实际操作的示例项目。这个项目旨在为初学者提供一个简单易懂的起点,帮助他们快速掌握MyBatis在Oracle环境下的应用。 【描述】...
在使用MyBatis与Oracle数据库进行交互时,通常需要一些特定的库来确保连接和操作的顺利进行。这里提到的两个jar包,"ojdbc6.jar"和"mybatis-3.4.4.jar",正是实现这一目的的关键组件。 首先,"mybatis-3.4.4.jar"是...
本知识点将详细介绍如何在Idea中配置Maven、Spring Boot、MyBatis以及Oracle数据库,实现一个完整的Java Web项目架构。 **一、配置Maven** 1. **安装Maven**: 首先确保你的系统中已经安装了Maven,可以在命令行...
MyBatis-Oracle逆向工程工具是一款高效实用的开发辅助软件,专为使用MyBatis框架和Oracle数据库的开发者设计。这款工具的核心功能是自动生成与数据库表结构对应的MyBatis映射文件、实体类以及DAO接口,极大地提高了...
在提供的压缩包文件名"generator-oracle-mysql"中,我们可以推测其包含了用于生成Oracle和MySQL数据库代码的相关配置和脚本。可能包括: 1. 配置文件:这些文件定义了如何连接到数据库,选择要生成的表,以及如何...
MyBatis是一个流行的Java持久层框架,它简化了数据库与Java应用程序之间的交互,通过XML或注解方式将SQL语句映射为Java方法,提供了一种灵活的数据访问接口。本压缩包包含MyBatis框架所需的全部依赖,以及适用于...
在本项目中,我们主要探讨的是如何利用SpringBoot集成Mybatis框架进行大数据量(例如500万条)的批量插入操作,并将其高效地存入MySQL数据库。这个Demo旨在提供一个学习实例,帮助开发者理解并优化大数据处理的性能...