Tag: datasource

MyBatis-guice 3.3 +多个数据源+属性+ scriptrunner

我正在使用MyBatis-guice 3.3使用java Properties对象和ScriptRunner连接到第一个数据库来运行几个脚本: Environment environment = injector.getInstance(SqlSessionFactory.class).getConfiguration().getEnvironment(); DataSource source = environment.getDataSource(); ScriptRunner runner = new ScriptRunner(source.getConnection()); runner.setLogWriter(null); runner.setStopOnError(true); runner.runScript(Resources.getResourceAsReader(properties.getProperty(“script.dbA.create.schema”))); 现在我想使用相同的方法添加第二个数据源(dbB)。 按照MyBatis-guice参考指南,我必须使用2个PrivateModule。 这部分工作正常。 但是,我应该如何调用我的ScriptRunner为dbA运行一些脚本,为dbB运行一些其他脚本?

如何将JRBeanCollectionDataSource传递给iReport?

我目前正在尝试使用jasper来帮助我创建报告。 我有这个方法中显示的信息和数据: private void writeToFile(final List sceneLoadModel) throws Exception { final BufferedWriter bw = new BufferedWriter(new FileWriter(“/Uma/nft/result.psv”)); for (final ScenarioLoadModel slm : sceneLoadModel) { bw.write(slm.getScenarioId() + PSP + slm.getScenarioId() + PSP + slm.getScenarioConfig().getName() + PSP + slm.getLoad() + PSP + “” + EOL); if (!slm.getScenarios().isEmpty()) { final int tempCount = slm.getScenarios().get(0).getTemplates().size(); final int sceneCount = […]

带有mysql DataSource的javax.naming.NoInitialContextException

试图连接到MySQL数据库 MysqlDataSource mysqlDs = new MysqlDataSource(); Properties prop = new Properties(); String mysqlDataSourceDriver = “com.mysql.jdbc.jdbc2.optional.MysqlDataSource”; Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, mysqlDataSourceDriver); properties.put(Context.PROVIDER_URL , “jdbc:mysql://localhost:3306/database”); Context ctx = new InitialContext(prop); ctx.bind(“jdbc/wczasy”, mysqlDs); 和堆栈跟踪: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: […]

如何在spring中覆盖JndiObjectFactoryBean并在java中设置解密密码

我在tomcat中有一个数据源,其密码是使用某种算法加密的,我想在建立与DB的连接时解密。 以下是我的春季配置代码 <!– –> 上面的bean是一个扩展JndiObjectFactoryBean的自定义bean public class EncryptedDataSource extends JndiObjectFactoryBean{ … } 我该怎么做才能获得加密密码并将其设置回来。 我有我的解密算法,但我不确定哪个超类方法会获取我可以重新设置的密码。 请建议,我有搜索并尝试了很多。

在Spring Boot中的每个数据库连接的开头运行SQL语句

如何在使用Spring Boot获取数据库连接后直接运行自定义SQL语句? 每次建立新连接时都需要运行SQL。 该解决方案应该与Spring Boot默认DataSource实现(我认为是Tomcat池数据源)一起使用。 声明是什么并不重要,但在我的情况下,它将是ALTER SESSION SET CURRENT_SCHEMA=xxxx

动态数据源路由

对不起,我的英语不好。 我为AbstractRoutingDataSource编写了实现: public class DatabaseRoutingDataSource extends AbstractRoutingDataSource{ @Override protected Object determineCurrentLookupKey() { return DatabaseContextHolder.getDatabaseType(); } } 我创建了用于在数据库之间切换的新类: public class DatabaseContextHolder { private static final ThreadLocal contextHolder = new ThreadLocal(); public static void setDatabaseType(DatabaseType databaseType) { contextHolder.set(databaseType); } public static DatabaseType getDatabaseType() { return (DatabaseType) contextHolder.get(); } public static void clearDatabaseType() { contextHolder.remove(); } } 其中DatabaseType是: […]

Spring中具有多个事务管理器的多个DataSource

我在Junit应用程序上下文文件中定义了三个DataSource (JDBC)。 其中两个需要进行交易管理; 使用这两个数据源时,我不必链接任何方法(它们完全相互独立)。 当我使用单个事务管理器进行dataSource2 ,我没有遇到任何问题,即使dataSource3正在被使用但未在相应的方法中进行管理。 尽管如此,在需要同时管理来自仅使用dataSource3各种DAO类的方法时,我添加了第二个事务txManager2 。 上下文文件包含以下内容: 由于正在定义多个事务管理器,因此我使用自己的值对它们进行了限定 。 如您所见,使用setter方法注入dataSource3 : package my.pkg; @Component public class MyDAO { private DataSource dataSource3; // Read only from datasource @Autowired @Qualifier(“dataSource”) public void setDataSource(DataSource ds) { template = new NamedParameterJdbcTemplate(ds); } // Performs reads/updates/inserts from datasource2 @Autowired @Qualifier(“dataSource2”) public void setDataSource2(DataSource ds) { iTemplate = new […]

Out容器JNDI数据源

我想在Java SE应用程序中使用JNDI配置DataSource。 做这个的最好方式是什么? 到目前为止,我遇到了两个项目: Apache命名 。 项目页面有一个用于配置数据源的特定示例,但看起来该项目已经超级旧并且不再处于活动状态。 JBossNS 。 看起来使用LocalOnlyContextFactory配置本地JNDI很容易,但我没有找到任何关于如何实际配置数据源的文档。 如果可能的话,我还想用JTA事务管理器配置数据源(使用JOTM?)。

在persistence.xml中引用Tomcat JNDI数据源

在server.xml中我已经定义了全局资源(我使用的是Tomcat 6 ): 我在catalina.out中看到这是绑定的,所以我想它没关系。 在我的网络应用程序中,我有数据源的链接,我不确定它是否正常: 在应用程序中有persistence.xml: org.hibernate.ejb.HibernatePersistence jdbc/myds 它应该没问题,但很可能这个或者ResourceLink定义是错误的,因为我得到了: javax.naming.NameNotFoundException:名称jdbc未绑定在此Context中 这有什么不对,为什么这不起作用? 更新: 我试图直接获取数据源: public class WebAppListener implements ServletContextListener { // ServletContextListener interface – start public void contextInitialized(ServletContextEvent sce) { try { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup(“java:comp/env”); DataSource ds = (DataSource) envCtx.lookup(“jdbc/myds”); } catch (NamingException ex) { System.out.println(“!!!! Got NamingException:”); ex.printStackTrace(System.out); […]

Weblogic数据源从JNDI树中消失

我们正在使用weblogic版本12C。 重现问题的步骤: – 创建数据源。 将应用程序部署到weblogic。 应用程序正常。 使用新的耳朵更新已部署的耳朵。 应用程序无法连接数据源。 数据源在JNDI树中不可用。 我们需要每次都创建一个新的数据源,或者再次保存数据源设置。 如果您知道某些解决方案,有人可以检查并告诉我吗?