- 博客(72)
- 资源 (19)
- 收藏
- 关注
原创 Mysql order by与limit混用陷阱
问题:在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。解决方案:如果想在Limit存在或不存在的情况下,都保证排序结果相同,可以额外加一个排序条件。例如id字段是唯一的,可以考虑在排序字段中额外加个id排序去确保顺序稳定。例如:order b
2020-12-09 17:31:24
198
原创 union all的效率问题
union all 是将查出来的结果合并起来,如果单纯只是2张表的查询合并,那效率就等同于查两张表各自查询所需要的时间相加,因为合并这个动作没有涉及到计算如果使用union all 之后使用了order by,limit等操作,(排序)其实是涉及到了大量的运算,所以会存在效率问题,而且是将合并起来的所有数据进行排序如果合并后的数据量很大,排序字段又没有索引的话,就会存在很大的效率问题,这里的效率问题其实就是由大量数据排序引起的,跟union all其实没有本质关系...
2020-12-07 15:52:01
7271
转载 java堆内存--新生代和老年代
Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存模型大致为:从...
2018-03-01 10:07:57
1974
原创 oracle中wm_concat()函数
select a.PXH,m.admission_code,sysdate print_date,m.delivery_code,m.supplier_code,b.platform_action_text,c.confirm_point_text,d.supplier_textFROM wm_platform_delivery m left join wm_platform_confir
2017-09-08 09:22:39
925
原创 java对象转化为xml报文
package cn.evun.iLE.restful;import java.util.List;import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlElement;imp
2017-08-29 10:20:41
1252
原创 mybatis+oracle+foreach list 批量插入数据
背景:在list中存放对象,本来可以遍历list得到每一个对象,然后将每个对象插入数据库,但是这样做的话没遍历得到一个对象就要操作一次数据库,如果数据少的话还好,如果是成千上万的数据,就会使开销大大增加和性能大大降低,为了解决这个,就需要将之前的每次插入换成批量插入直接上sql insert into JK_MATNRDTL_FROM_SRM (ID, RUNSHEE
2017-07-26 17:35:18
3207
原创 mybatis自动生成entity,dao和mapper
需要3样东西1.generatorConfig.xml(自动生成的配置文件)2.mybatis-generator-core-1.3.5.jar(自动生成的核心jar包)3.ojdbc-6.jar(连接数据库的jar包)---实际根据你使用的数据库选择,这边我用的是oracle,如果是mysql,请换成mysql的相关jar包配置文件内容如下:<!DOCTYPE genera
2017-07-25 13:59:35
2745
转载 java的逻辑运算符和位运算符
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。 1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class dat
2017-07-20 09:03:20
640
转载 HashCode和equal方法的区别和联系
equals()反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。而hashCode()是对象或变量通过哈希算法计算出的哈希值。之所以有hashCode方法,是因为在批量的对象比较中,hashCode要比equals来得快,很多集合都用到了hashCode,比如HashTable。 两个obj,如果equals()相等,hashCode()
2017-07-19 17:15:44
468
原创 hashCode()方法中使用系数31的原因
public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < value.length; i++) { h = 31 * h
2017-07-19 16:42:02
1311
转载 MyBatis在Oracle数据库下用concat函数模糊查询之参数个数无效错误
Oracle拼接字符串concat需要注意的小事项在用ssm框架编写代码的时候,因为数据库换成了Oracle,在模糊查询数据的时候突然发现报错了select * from SYS_MENU where url like concat('%',#{roleName},'%')一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%')这样写的
2017-07-14 17:33:39
9574
3
原创 sql中join问题
INNER JOIN 等价于 JOIN你可以理解为 JOIN 是 INNER JOIN 的缩写LEFT JOIN 等价于 LEFT OUTER JOINRIGHT JOIN 等价于 RIGHT OUTER JOINinner join:理解为“有效连接”,两张表中都有的数据才会显示left join:理解为“有左显示”,比如on a.fiel
2017-07-06 10:23:09
336
原创 java中判断一个类的对象是否相等问题
场景:Map的key中放入的是类的对象,现在要把map中的key取出来判断是否相同,一般来说要比较一个对象是否相等比较复杂,而实际其实只是需要判断对象中的某个值是否相等就行了,那我们要怎么做呢?我们可以重写这个对象的指定某个值的equals()方法和hashCode()方法就行了在eclipse中可以这样操作:打开某个类,右键source→Generate hasCode() and
2017-07-04 14:08:57
410
转载 java中static关键字
二、static static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。
2017-07-04 11:07:22
211
转载 java中final关键字
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 fina
2017-07-04 11:03:44
192
原创 Java迭代器 Iterator
public interface Iterator { boolean hasNext(); Object next(); void remove(); } 其中: Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型 boolean ha
2017-07-04 10:26:58
242
原创 java中三目运算符
Java中的条件运算符是一个三元运算符,它的形式如下:booleanExpression ? valueWhenTrue : valueWhenFalse如果布尔表达式值为true,则表达式的值为valueWhenTrue的值,否则为valueWhenFalse的值。比如我们要计算x的绝对值,可以通过如下代码实现:if (x >= 0) { y = x;} e
2017-07-04 10:06:45
287
原创 java中&&和&区别
电路问题总结:对于:&& -- > 只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。对于:& -- > 不管怎样,都会执行"&"符号左右两边的程序下面来说说运算规则:对于:&& -- > 只要符号左边为false,则结果为false;当左边为true,同时右边也为true,则结果为true对于:& -- > 只要左右两边有一个为fa
2017-07-04 10:05:19
218
转载 Java中关键字continue、break和return的区别
Java中关键字continue、break和return的区别:continue:跳出本次循环继续下一次循环break: 跳出循环体,继续执行循环外的函数体return: 跳出整个函数体,函数体后面的部分不再执行有代码才有真相: public class JavaBese { public static void main (String[]
2017-07-04 09:10:26
223
原创 帆软报表非必填参数表达式
${if(len(proPlant) == 0, "", "and p1.plant_code ='" + proPlant + "'")}proPlant-----控件名p1.plant_code----p1是表的别名,plant_code是字段名
2017-07-03 17:03:54
2725
原创 oracle查看数据库名、数据库实例名和db link
查看数据库名SQL> select name from v$database;查看实例名SQL> select instance_name from v$instance;查看存在的database linkSQL> select * from dba_db_links;删除db linkSQL> drop database link 连接名称;
2017-06-30 15:37:47
1294
原创 oracle跨数据库查询数据并插入
场景:一个正式库,一个测试库,两个库的表结构都一模一样,因为正式库中有数据,测试库中没有,现在想要把正式库中相关表的数据复制到测试库中的相关表中下面是两个数据库在tnsnames.ora文件中的配置,用户名和密码都设置成了一样,例如都是用户名:aaa 密码:bbb测试库psc_aaa = (DESCRIPTION = (ADDRESS_LIST = (AD
2017-06-30 11:01:38
4873
2
原创 oracle的substr()方法
select substr('2017-06-21',0,7)||'-01' from dual 执行结果:前面执行出来是2017-06,然后再并上‘-01’,最后结果就是2017-06-01这个是处理字符串格式的日期取当月的第一天包前不包后,就是含[0],不包含[7]2 0 1 7 - 0 6 - 2 10 1 2 3 4 5 6 7
2017-06-29 15:28:05
233
原创 linux服务器部署项目
由于是springboot项目,已经在打好的 jar包中集成了tomcat,所以不需要再linux中执行有关于tomcat服务器开启和关闭的命令操作后端部署:1.将psc-entry打包,可选择在eclipse里面(debug as---maven build)打包或者进入项目目录用命令(mvn clean package)打包2.打开SecureFXPortable.exe将
2017-06-26 17:37:13
475
原创 判断是否为空时String对象要放右边
public static String subStr(String str, int start) { if (str == null || str.equals("") || str.length() == 0) return ""; if (start < str.length()) { return str.s
2017-06-21 10:34:27
380
原创 springboot下webservice使用cxf jar包报错及解决
一般要在项目中使用关于webservice的cxf包都使用的是cxf的捆绑包http://bbs.csdn.net/topics/392172078但是捆绑包中包含有跟spring相冲突的包,所以就单独使用几个非捆绑包之后再实际调用webservice的时候遇见了几个错误java.lang.IllegalStateException Unable to create schema
2017-06-16 21:47:48
4740
转载 <![CDATA[]]>和转义字符
被这个标记所包含的内容将表示为纯文本,比如表示文本内容“。 此标记用于xml文档中,我们先来看看使用转义符的情况。我们知道,在xml中,”、”>”、”&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”<”、”>”、”&”,这样才能保存进xml文档。 在使用程序读取的时候,解析器会自动将这些实体转换回
2017-06-12 16:52:09
256
转载 Java生成DN20160127001这样的送货单号
String maxDN = deliveryDAO.selectMaxDN(); // 从数据库查询出的最大编号String dnNumber=DNUtils.generatorDnNumber(maxDN); //系统生成DN号public class DNUtils { public static String generatorDnNumber(String maxDN){
2017-06-03 17:38:29
1563
1
原创 mybatis自动生成主键
下面就是将主键id自动生成,累加1的实现方法 select get_seq_next('Engine_Line_Stock') from dual这个需要你建一个名字叫做ENGINE_LINE_STOCK_SEQ的序列 select get_seq_next('Engine_Line_Stock') fro
2017-05-27 10:08:04
597
3
原创 dom4j解析xml字符串(报文)
在dom4j的API中, xml文件下的所有节点都是elment,无论是跟节点还是子元素节点Element root = doc.getRootElement(); 、//获取根节点,即DATAList elements = root.elements(); // //获取根节点下的所有子元素 ,即所有的ENTITY// 遍历所有子元素,即遍历出单个的一个个ENTITY
2017-05-27 09:29:54
4349
原创 to_char()和to_date()的用法
TO_CHAR 是把日期或数字转换为字符串使用TO_CHAR函数处理日期:TO_CHAR(date,’格式’); TO_CHAR(newdate,’yyyy-mm-dd’) 遇见两边类型不一样报错或者格式不一样查不到数据可以使用如下方法,把两边的格式转成一样就ok了数据库查询条件where to_char(a.REQUIRED_TIME,'yyyyMMdd')
2017-05-26 14:11:47
1594
转载 webservice注解
Web Service 元数据注释(JSR 181)注释类: 注释: 属性:javax.jws.WebService当实现 Web Service 时,@WebService 注释标记 Java 类;实现 Web Service 接口时,标记服务端点接口(SEI)。要点:? 实现 Web Service 的 Java 类必须指定 @WebService 或
2017-05-24 09:48:12
317
转载 遍历Map的四种方法
先构建一个MapMap map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3");开始遍历推荐,尤其是容量大时同时 遍历key和value 使用map.entrySet(),得到map中所有单个的对象Entry,然后再使用E
2017-05-23 11:59:09
294
原创 mybatis 中 foreach collection的值
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。 item表示集合中每一个元素进行迭代时的别名, index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置, open表示该语句以什么开始, s
2017-05-23 11:21:11
3593
原创 有参构造函数和无参构造函数的区别
构造函数的作用 构造函数是面向对象编程思想所需求的,它的主要作用有以下两个: 1) 创建对象。任何一个对象创建时,都需要初始化才能使用,所以任何类想要创建实例对象就必须具有构造函数。 2) 对象初始化。构造函数可以对对象进行初始化,并且是给与之格式(参数列表)相符合的对象初始化,是具有一定针对性的初始化函数。在这里要说明一点,如果在类中我们不声明构造函数,JVM
2017-05-23 11:03:13
17672
1
转载 阿里巴巴Java开发手册- 编程规约-命名规约
本文只用来记录阿里巴巴Java开发手册内容,方便个人阅读,不做商业用途!【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / Object/name/name / Object$【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读
2017-05-15 16:25:31
210
ojdbc14.jar
2017-03-08
项目管理工具模板
2017-03-07
java并发编程pdf
2017-03-03
springboot 教程版
2017-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人