小编dyn*_*yng的帖子

git show <commit> --onon not not on online

我正在使用mysysgit的1.8.3版本,似乎--oneline命令不会给我每次提交一行,我也得到所有的diff行.

git show HEAD --oneline
Run Code Online (Sandbox Code Playgroud)

乃至 git show HEAD --pretty="%h %s"

不要只给一行.

(注意:同时使用git bash和posh git的结果)

我想要show --oneline的原因是我想把一个rev-list查询的结果从posh git中输入它.

git rev-list <somestuff> | %{git show $_ --oneline}
Run Code Online (Sandbox Code Playgroud)

git msysgit

15
推荐指数
2
解决办法
3269
查看次数

MyBatis如何为不同的数据库后端生成不同的sql

我正在使用mybatis-spring 1.2.3和Spring4来创建一个Web应用程序.主数据存储是MySQL在生产环境中,但我也在内存数据库H2中进行单元测试.

MyBatis在测试和生产中都能很好地兼容MySQL和H2,但是我遇到了一个问题,有一天我需要force index(idx1)在MySQL的查询中使用它,这将导致单元测试中的语法错误,因为H2不支持force index.结果,单元测试完全被打破.

我想知道MyBatis有什么方法可以处理这种情况吗?(数据库类型在测试和生产方面有所不同,它们对SQL语法的支持也不尽相同.)

这是我的映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="myproject.mapper.UserMapper">
  <select id="getGameUsersForDate" resultType="myproject.dao.domain.GameUser">
    select
    *
    from game_user
    force index(idx1)
    where
    game_id in
    <choose>
      <when test="gameIds.size() > 0">
        <foreach item="gameId" collection="gameIds" open="(" separator="," close=")">
          #{gameId}
        </foreach>
      </when>
      <otherwise>
        (null)
      </otherwise>
    </choose>
    and uid in
    <choose>
      <when test="uids.size() > 0">
        <foreach item="uid" collection="mids" open="(" separator="," close=")">
          #{mid}
        </foreach>
      </when>
      <otherwise>
        (null)
      </otherwise>
    </choose>
    and `date` = #{date}
  </select>
</mapper>
Run Code Online (Sandbox Code Playgroud)

java h2 mybatis spring-boot spring-mybatis

7
推荐指数
1
解决办法
2062
查看次数

可以`LockSupport.park()`替换`Object.wait()`?

目前我正在学习Java中的并发编程.我注意到LockSupport.park()在Java 1.6中介绍比Object.wait()使用容易得多,一般的用法Object.wait()就像

// Thread1
synchronized (lock) {
    while (condition != true) {
        lock.wait()
    }

    // do stuff
}

// Thread2
synchronized (lock) {
    condition = true;
    lock.notify();
}
Run Code Online (Sandbox Code Playgroud)

而且我想我可以使用LockSupport.park()喜欢的方式重写它

// Thread1
while (condition != true) {
    LockSupport.park();
}

// do stuff

// Thread2
condition = true;
LockSupport.unpark(Thread1);
Run Code Online (Sandbox Code Playgroud)

通过使用LockSupport.park(),繁琐的synchroinzed块消失.

我的问题是,我总是喜欢LockSupport.park()Object.wait()?是否有任何方面Object.wait()LockSupport.park()性能更好?

java multithreading locking wait

2
推荐指数
1
解决办法
549
查看次数