MyBatisの-config.xmlには、本明細書に記載の構成では、春の起動を設定するためのクラスを使用して、データベースの様々なサポートするように構成されています。
1.設定application.yml
# mybatis配置
mybatis:
check-config-location: false
type-aliases-package: ${base.package}.model
configuration:
map-underscore-to-camel-case: true
# 二级缓存的总开关
cache-enabled: false
mapper-locations: classpath:mapping/*.xml
2.構成クラスのデータソースを追加します。
/**
* 数据源配置
* @author simon
* @date 2019-02-18
*/
@Configuration
public class DataSourceConfig {
@Value("${mybatis.mapper-locations}")
private String mapperLocations;
@Primary
@Bean
@ConfigurationProperties("spring.datasource.druid")
public DataSource dataSource(){
return DruidDataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate jdbcTemplate(){
return new JdbcTemplate(dataSource());
}
@Bean
public DatabaseIdProvider databaseIdProvider(){
DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
Properties p = new Properties();
p.setProperty("Oracle", "oracle");
p.setProperty("MySQL", "mysql");
p.setProperty("PostgreSQL", "postgresql");
p.setProperty("DB2", "db2");
p.setProperty("SQL Server", "sqlserver");
databaseIdProvider.setProperties(p);
return databaseIdProvider;
}
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource());
factoryBean.setDatabaseIdProvider(databaseIdProvider());
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
return factoryBean;
}
}
mapper.xml 3.
方法1
<select id="findAuthorityByUrl" resultType="java.lang.String" databaseId="mysql">
SELECT
group_concat( tsma.authority ) as authority
FROM
t_side_menu tsm
LEFT JOIN t_side_menu_authority tsma ON tsm.id = tsma.side_menu_id
</select>
<select id="findAuthorityByUrl" resultType="java.lang.String" databaseId="postgresql">
SELECT
string_agg( tsma.authority, ',') as authority
FROM
t_side_menu tsm
LEFT JOIN t_side_menu_authority tsma ON tsm.id = tsma.side_menu_id
</select>
方法2
<select id="selectByPids" parameterType="String" resultMap="SuperResultMap">
SELECT
tsm.*,
<if test="_databaseId == 'mysql'">
group_concat( tsma.authority ) as authority
</if>
<if test="_databaseId == 'postgresql'">
string_agg( tsma.authority, ',') as authority
</if>
FROM
t_side_menu tsm
LEFT JOIN t_side_menu_authority tsma ON tsm.id = tsma.side_menu_id
WHERE pid IN (#{pids})
GROUP BY
tsm.id
</select>
余談
興味のある方は、与えてくださいoauthsererプロジェクトにスターを。春ブーツのOAuth2ベースoauthserverは、完全なスタンドアロン型マイクロのOAuth2サーバーサービスです。このプロジェクトの目的は、マイクロのOAuth2 Serverサービスを取得することができ、データベース接続情報を変更し、データテーブルを作成するために必要なだけです。
オリジナル住所ます。https://segmentfault.com/a/1190000018193491は、utm_source =タグ、最新の?