org.unlaxer.jaddress.dao.JyuusyoJPDomaSingletonConfig Maven / Gradle / Ivy
package org.unlaxer.jaddress.dao;
import java.nio.file.Path;
import javax.sql.DataSource;
import org.seasar.doma.SingletonConfig;
import org.seasar.doma.jdbc.Config;
import org.seasar.doma.jdbc.SimpleDataSource;
import org.seasar.doma.jdbc.dialect.Dialect;
import org.seasar.doma.jdbc.dialect.SqliteDialect;
import org.seasar.doma.jdbc.tx.LocalTransactionDataSource;
import org.seasar.doma.jdbc.tx.LocalTransactionManager;
import org.seasar.doma.jdbc.tx.TransactionManager;
import org.unlaxer.jaddress.UserHomeContext;
@SingletonConfig
public class JyuusyoJPDomaSingletonConfig implements Config {
private static final JyuusyoJPDomaSingletonConfig CONFIG = new JyuusyoJPDomaSingletonConfig();
private final Dialect dialect;
private final LocalTransactionDataSource dataSource;
private final TransactionManager transactionManager;
private JyuusyoJPDomaSingletonConfig() {
this(UserHomeContext.getPathWithFolderAndFile("jyuusyojp","zenkoku.sqlite3"));
}
private JyuusyoJPDomaSingletonConfig(Path pathToSqlite) {
dialect = new SqliteDialect();
String dbUrl= "jdbc:sqlite:" + pathToSqlite.toString();
SimpleDataSource simpleDataSource = new SimpleDataSource();
simpleDataSource.setUrl(dbUrl);
dataSource = new LocalTransactionDataSource(simpleDataSource);
transactionManager = new LocalTransactionManager(
dataSource.getLocalTransaction(getJdbcLogger()));
}
@Override
public Dialect getDialect() {
return dialect;
}
@Override
public DataSource getDataSource() {
return dataSource;
}
@Override
public TransactionManager getTransactionManager() {
return transactionManager;
}
public static JyuusyoJPDomaSingletonConfig singleton() {
return CONFIG;
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy