小编ple*_*dge的帖子

Guice,JDBC和管理数据库连接

我正在寻找创建一个示例项目,同时学习Guice,它使用JDBC来读/写SQL数据库.然而,经过多年的使用Spring并让它抽象出连接处理和事务,我正在努力从概念上运用它.

我想要一个启动和停止事务的服务,并调用大量的存储库,这些存储库重用相同的连接并参与同一个事务.我的问题是:

  • 我在哪里创建我的数据源?
  • 如何授予存储库访问连接的权限?(ThreadLocal的?)
  • 管理事务的最佳方法(为注释创建拦截器?)

下面的代码显示了我将如何在Spring中执行此操作.注入每个存储库的JdbcOperations可以访问与活动事务关联的连接.

我无法找到许多涵盖此内容的教程,除了显示为事务创建拦截器的教程之外.

我很高兴继续使用Spring,因为它在我的项目中工作得非常好,但我想知道如何在纯Guice和JBBC中做到这一点(没有JPA/Hibernate/Warp/Reusing Spring)

@Service
public class MyService implements MyInterface {

  @Autowired
  private RepositoryA repositoryA;
  @Autowired
  private RepositoryB repositoryB;
  @Autowired
  private RepositoryC repositoryC; 

  @Override
  @Transactional
  public void doSomeWork() {
    this.repositoryA.someInsert();
    this.repositoryB.someUpdate();
    this.repositoryC.someSelect();  
  }    
}

@Repository
public class MyRepositoryA implements RepositoryA {

  @Autowired
  private JdbcOperations jdbcOperations;

  @Override
  public void someInsert() {
    //use jdbcOperations to perform an insert
  }
}

@Repository
public class MyRepositoryB implements RepositoryB {

  @Autowired
  private JdbcOperations jdbcOperations;

  @Override
  public void someUpdate() {
    //use …
Run Code Online (Sandbox Code Playgroud)

java database jdbc guice

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

如何在使用功能分支时使用Flyway

我们最近开始使用功能分支来处理我们所处理的每个故事.这些是尽可能独立的,然后我们的项目经理决定哪些故事将构成一个版本.这意味着我们确实知道故事最初投入生产的确切顺序.

在Flyway有一个标准的处理方法吗?我已经阅读了FAQ,它讨论了对生产数据库的更改是如何线性的,这是正确的.但是我不确定团队成员如何决定在他们的功能分支工作时为他们的迁移提供哪些版本号.我们还需要在发布之前合并到集成分支和master时手动重命名迁移文件.

java database flyway

29
推荐指数
2
解决办法
8907
查看次数

使用itertools创建选项矩阵

我试图生成一个True和False值的矩阵,它显示给定数量的选择的所有排列.因此,对于5种选择,您将获得以下输出.

F F F F F
T F F F F
T T F F F
T T T F F
...
F T F F F
...
Run Code Online (Sandbox Code Playgroud)

我一直在研究使用itertool的排列和组合,但是这些都是在位置而不是值上导致重复.

我确定这个问题有一个标准算法,但我很难找到它的名字.

python python-itertools

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

在Java中创建有效的文件名

我正在根据动态值创建文件名,例如公司名称和forename/surname.

然后,我想在尝试创建文件之前验证文件名是否有效.这是检查它不包含任何非法字符,如果他们这样做,则替换它们.

我当然可以使用正则表达式,但是想知道是否有像commons-lang或commons-io这样的现有方法呢?

java regex

5
推荐指数
1
解决办法
1310
查看次数

Git樱桃结合git show

我正在使用Git cherry,并希望看到它找到的提交的更多细节.首先,我跑

git cherry
-- read the output
git show sha-1
Run Code Online (Sandbox Code Playgroud)

有没有办法看到cherry的所有结果的提交/日志/差异,并通过它们翻页?我已经尝试将git cherry的结果用于各种各样的事情,但似乎无法找到一个有效的.

git

4
推荐指数
1
解决办法
1204
查看次数

Google Collections供应商和查找

我正在寻找一种Google Collections方法,该方法返回一系列不返回null的供应商的第一个结果.

我正在寻找使用Iterables.find(),但在我的Predicate中,我必须调用我的供应商将结果与null进行比较,然后在find方法返回供应商后再次调用它.

java guava

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

标签 统计

java ×4

database ×2

flyway ×1

git ×1

guava ×1

guice ×1

jdbc ×1

python ×1

python-itertools ×1

regex ×1