#java #swing #netbeans #mybatis
#java #swing #netbeans #mybatis
Вопрос:
Допустим, у меня есть приложение swing, и я использую mybatis:
public class MyAppCView extends FrameView {
public SqlSession session;
public StaticMapper mapper;
public Config c = new Config();
public MyAppView(SingleFrameApplication app) {
super(app);
String user="root", pswd="root"
session = MyBatisSqlSessionFactory.getSqlSessionFactory().openSession();
mapper = session.getMapper(StaticMapper.class);
MyBatisSqlSessionFactory выглядит следующим образом:
public class MyBatisSqlSessionFactory {
public static Map<String,String> propeties = new HashMap<String,String>();
protected static final SqlSessionFactory FACTORY;
static {
try {
Properties props = new Properties();
props.setProperty("username", user);
....
// how can i get variables from swing application into configuration of sqlfactory?
Reader reader = Resources.getResourceAsReader("wsnscc/mybatis/xml/Configuration.xml");
FACTORY = new SqlSessionFactoryBuilder().build(reader,props);
} catch (Exception e){
throw new RuntimeException("Fatal Error. Cause: " e, e);
}
}
public static SqlSessionFactory getSqlSessionFactory() {
return FACTORY;
}
}
Как я могу получить переменные из приложения swing в конфигурацию sqlfactory?
Спасибо за любые советы.
Ответ №1:
Вы передаете переменные в SQL factory.
Вы можете сделать это, изменив класс MyBatisSQLSessionFactory
на что-то вроде этого:
public class MyBatisSqlSessionFactory {
public static Map<String,String> properties = new HashMap<String,String>();
protected static final SqlSessionFactory FACTORY;
public MyBatisSqlSessionFactory(String userid, String password) {
try {
Properties props = new Properties();
props.setProperty("username", userid);
props.setProperty("password", password);
Reader reader = Resources.getResourceAsReader
("wsnscc/mybatis/xml/Configuration.xml");
} catch (Exception e){
throw new RuntimeException("Fatal Error. Cause: " e, e);
}
}
public static SqlSessionFactory getSqlSessionFactory
(String userid, String password)
throws RuntimeException {
if (FACTORY == null)
FACTORY = new MyBatisSqlSessionFactory(userid, password);
return FACTORY;
}
}