知尽Java第几重
mysql+mybatis+druid批量更新数据时的配置
Joyven 发表于 标签: mysql / mybatis / druid
批量更新SQL
为什么要批量更新
很多时候,我们都是单条更新数据,或者是批量更新统一字段相同值。
但有些情况下,为了某些场景,我们通常需要批量更新某一段时间的或者全量的数据。比如,某个业务线需要增加一个字段,但是这个字段需要根据已存在的数据计算得出,并不是保持一致的时候,需要批量更新。再比如,某些傻叉设计的用户密码是明文入库,当你发现的时候,有必要加密处理。
批量更新逻辑
先看看一段批量更新mybatis表达式:
1 | <update id="updateUserPassword" parameterType="com.zhoujunwen.gaea.dal.po.User"> |
Sikuli的App类中文手册
Joyven 发表于 标签: java / sikuli / App类
一般而言,你可以选择使用类的方法(e.g. `App.open("application-identifier")`)或者先创建一个类的实例接着使用该实例的方法(e.g. 先`myApp = App("application-identifier")` ,之后 `myApp.open()`)。(对于二者)没有一个优先级的用法推荐,唯一真正的不同之处在于,当使用实例方法时,可能会节省一些资源,因为使用类的方法可能会产生更多的中间对象。因此,如果您频繁地使用相同的应用或者窗口,使用实例方法也许更合适(注:transparent的意思为"透明的;显然的;坦率的;易懂的",但译者认为此处理解为“合适的”最好)。
在实例创建时,使用给定的文本扫描进程列表以查找可执行文件的名称。如果找到了,应用程序将被初始化为响应的信息(PID,可执行文件,主窗口最前面的窗口标题)。所以,你可以直接访问此应用实例,查看应用是否运行(`isRunning()`),是否有窗口(`hasWindow()`),获取主窗口的标题(`getWindow()`)以及获取进程ID(PID)(`getPID`)。
Java日志Log4j或者Logback的NDC和MDC功能
Admin 发表于 标签: java / NDC / MDC
NDC和MDC的区别
Java中使用的日志的实现框架有很多种,常用的log4j和logback以及java.util.logging,而log4j是apache实现的一个开源日志组件(Wrapped implementations),logback是slf4j的原生实现(Native implementations)。需要说明的slf4j是Java简单日志的门面(The Simple Logging Facade for Java),如果使用slf4j日志门面,必须要用到slf4j-api,而logback是直接实现的,所以不需要其他额外的转换以及转换带来的消耗,而slf4j要调用log4j的实现,就需要一个适配层,将log4j的实现适配到slf4j-api可调用的模式。
说完基本的日志框架的区别之后,我们再看看NDC和MDC。
不管是log4j还是logback,打印的日志要能体现出问题的所在,能够快速的定位到问题的症结,就必须携带上下文信息(context information),那么其存储该信息的两个重要的类就是NDC(Nested Diagnostic Context)和MDC(Mapped Diagnositc Context)。
三个annotation类型(RetentionPolicy,ElementType)
Admin 发表于 标签: java / annotation / Target / RetentionPolicy / ElementType
第一部分
了解一下java1.5起默认的三个annotation类型:@Override
: 只能用在方法之上的,用来告诉别人这一个方法是改写父类的。@Deprecated
: 建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上.@SuppressWarnings
:这一个类型可以来暂时把一些警告信息消息关闭.
第二部分
先讲一下annotation的概念,再来讲一下怎样设计自己的annotation.
首先在jdk自带的Java.lang.annotation包里,打开如下几个源文件:
1、源文件Target.java
1 | @Documented |
关于dubbo配置引起的线上事故报告
查询日志发现,在2017-03-28 21:59:54.793的时候,dubbo provider不能注册服务。此时,tomcat的进程已经down掉了。后续的日志都是一些不能注册或者不能订阅的错误,甚至是调用方法时service没有实例化的错误,应该属于tomcat down掉后,dubbo的进程还没有shutdown(从时间上可以看出,具体看后面的两段日志[1])。
后续从日志中,早于服务挂掉的时间,发现有dubbo线程池耗尽的警告。
mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台
Joyven 发表于 标签: mybatis / druid / log4j
引言
作为程序员,开发工程中,一套利于测试或者监控的工具很重要,mybatis默认没有提供log4j的打印sql语句的配置。
这对于开发rest服务,提供接口的开发者而言,是在很不好做,再加上mybatis很灵活,使用脚本动态生成sql语句,因此,有时候真不知道运行的sql是不是我们所期望的,过滤的条件是否起作用。
所幸,德鲁伊监控平台是个不错的选择,在性能方面druid连接池也比spring原生的要好,因此也是很多企业开发的首选数据源配置。
在引言阶段,我们先看看目前我配置的结果是否是你想要的,如果不是你所期望的,就别浪费时间往下面看,毕竟大家都时间有限,没必要花费时间看一些对自己没用的东西。