get SqlSessionFactory from MybatisSqlSessionFactoryBean (#985)
* rename from DatasourceUserMapper to DataSourceUserMapper * add unit test in UserMapper and WorkerGroupMapper * change cn.escheduler to org.apache.dolphinscheduler * add unit test in UdfFuncMapperTest * add unit test in UdfFuncMapperTest * remove DatabaseConfiguration * add ConnectionFactoryTest * cal duration in processInstancesList * change desc to description * change table name in mysql ddl * change table name in mysql ddl * change escheduler to dolphinscheduler * change escheduler to dolphinscheduler * change escheduler to dolphinscheduler * remove log4j-1.2-api and modify AlertMapperTest * remove log4j-1.2-api * Add alertDao to spring management * Add alertDao to spring management * get SqlSessionFactory from MybatisSqlSessionFactoryBean
This commit is contained in:
parent
02b2420611
commit
e2f66e2343
|
|
@ -16,16 +16,17 @@
|
|||
*/
|
||||
package org.apache.dolphinscheduler.dao;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.dolphinscheduler.common.enums.AlertStatus;
|
||||
import org.apache.dolphinscheduler.common.enums.AlertType;
|
||||
import org.apache.dolphinscheduler.common.enums.ShowType;
|
||||
import org.apache.dolphinscheduler.dao.datasource.ConnectionFactory;
|
||||
import org.apache.dolphinscheduler.dao.entity.Alert;
|
||||
import org.apache.dolphinscheduler.dao.mapper.AlertMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.UserAlertGroupMapper;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
||||
import org.apache.dolphinscheduler.dao.entity.User;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.dolphinscheduler.dao.mapper.AlertMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.UserAlertGroupMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -47,8 +48,8 @@ public class AlertDao extends AbstractBaseDao {
|
|||
|
||||
@Override
|
||||
protected void init() {
|
||||
// alertMapper = ConnectionFactory.getSqlSession().getMapper(AlertMapper.class);
|
||||
// userAlertGroupMapper = ConnectionFactory.getSqlSession().getMapper(UserAlertGroupMapper.class);
|
||||
alertMapper = ConnectionFactory.getSqlSession().getMapper(AlertMapper.class);
|
||||
userAlertGroupMapper = ConnectionFactory.getSqlSession().getMapper(UserAlertGroupMapper.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -17,19 +17,20 @@
|
|||
package org.apache.dolphinscheduler.dao.datasource;
|
||||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
import org.apache.commons.configuration.ConfigurationException;
|
||||
import org.apache.commons.configuration.PropertiesConfiguration;
|
||||
import org.apache.dolphinscheduler.common.Constants;
|
||||
import org.apache.ibatis.mapping.Environment;
|
||||
import org.apache.ibatis.session.Configuration;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
|
||||
import org.apache.ibatis.transaction.TransactionFactory;
|
||||
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
|
|
@ -43,7 +44,7 @@ public class ConnectionFactory {
|
|||
private static SqlSessionFactory sqlSessionFactory;
|
||||
|
||||
/**
|
||||
* 加载配置文件
|
||||
* Load configuration file
|
||||
*/
|
||||
private static org.apache.commons.configuration.Configuration conf;
|
||||
|
||||
|
|
@ -79,7 +80,7 @@ public class ConnectionFactory {
|
|||
/**
|
||||
* get sql session factory
|
||||
*/
|
||||
public static SqlSessionFactory getSqlSessionFactory() {
|
||||
public static SqlSessionFactory getSqlSessionFactory() throws Exception {
|
||||
if (sqlSessionFactory == null) {
|
||||
synchronized (ConnectionFactory.class) {
|
||||
if (sqlSessionFactory == null) {
|
||||
|
|
@ -88,13 +89,17 @@ public class ConnectionFactory {
|
|||
|
||||
Environment environment = new Environment("development", transactionFactory, dataSource);
|
||||
|
||||
Configuration configuration = new Configuration(environment);
|
||||
MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
configuration.setEnvironment(environment);
|
||||
configuration.setLazyLoadingEnabled(true);
|
||||
configuration.addMappers("org.apache.dolphinscheduler.dao.mapper");
|
||||
|
||||
|
||||
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
|
||||
sqlSessionFactory = builder.build(configuration);
|
||||
MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
|
||||
sqlSessionFactoryBean.setDataSource(dataSource);
|
||||
sqlSessionFactoryBean.setTypeEnumsPackage("org.apache.dolphinscheduler.*.enums");
|
||||
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:org/apache/dolphinscheduler/dao/mapper/*.xml"));
|
||||
sqlSessionFactoryBean.setConfiguration(configuration);
|
||||
return sqlSessionFactoryBean.getObject();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -106,10 +111,20 @@ public class ConnectionFactory {
|
|||
* get sql session
|
||||
*/
|
||||
public static SqlSession getSqlSession() {
|
||||
return new SqlSessionTemplate(getSqlSessionFactory());
|
||||
try {
|
||||
return new SqlSessionTemplate(getSqlSessionFactory());
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(),e);
|
||||
throw new RuntimeException("get sqlSession failed!");
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T getMapper(Class<T> type){
|
||||
return getSqlSession().getMapper(type);
|
||||
try {
|
||||
return getSqlSession().getMapper(type);
|
||||
} catch (Exception e) {
|
||||
logger.error(e.getMessage(),e);
|
||||
throw new RuntimeException("get mapper failed!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue