失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 使用java代码动态在oracle数据库中动态创建表

使用java代码动态在oracle数据库中动态创建表

时间:2018-09-24 04:16:38

相关推荐

使用java代码动态在oracle数据库中动态创建表

一.jdbcTemplate的配置

package com.djhu.followup.config;

import com.alibaba.druid.pool.DruidDataSource;import com.djhu.api.util.MybatisInterceptor;import org.apache.ibatis.plugin.Interceptor;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource;

/**

@Author zw

@DATE /5/9 15:18

@VERSION 1.0.0

*/

@Configuration

@MapperScan(basePackages = FollowUpDbConfig.PACKAGE,sqlSessionFactoryRef=“followUp_SqlSessionFactory”)

public class FollowUpDbConfig {

static final String PACKAGE = “com.djhu.followup.dao.followup”;

static final String MAPPER_LOCATION = "classpath:followup/*.xml";

static final String CONFIG_LOCATION = “classpath:mybatis-config.xml”;

@Value("${jdbc.url}")

private String url;

@Value("${jdbc.username}")

private String user;

@Value("${jdbc.password}")

private String password;

@Value("${jdbc.driver}")

private String driverClass;

@Bean(name = “followUpDataSource”)

public DataSource followUpDataSource() {

// try {

// Thread.sleep(3000L);

// } catch (InterruptedException e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }

DruidDataSource followUpDataSource = new DruidDataSource();

followUpDataSource.setDriverClassName(driverClass.trim());

followUpDataSource.setUrl(url.trim());

followUpDataSource.setUsername(user.trim());

followUpDataSource.setPassword(password.trim());

followUpDataSource.setInitialSize(5);

followUpDataSource.setMinIdle(1);

followUpDataSource.setMaxActive(10);

followUpDataSource.setPoolPreparedStatements(false);

return followUpDataSource;

}

//注入模板类

@Bean(name = “followupJdbcTemplate”)

public JdbcTemplate getJdbcTemplate(@Qualifier(“followUpDataSource”) DataSource followUpDataSource){

return new org.springframework.jdbc.core.JdbcTemplate(followUpDataSource);

}

@Bean(name = "followUp_SqlSessionFactory")public SqlSessionFactory followUpClusterSqlSessionFactory(@Qualifier("followUpDataSource") DataSource followUpDataSource)throws Exception {SqlSessionFactoryBean followUp_SqlSessionFactory = new SqlSessionFactoryBean();followUp_SqlSessionFactory.setDataSource(followUpDataSource);followUp_SqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION));followUp_SqlSessionFactory.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(CONFIG_LOCATION));Interceptor[] interceptors= {new MybatisInterceptor()};followUp_SqlSessionFactory.setPlugins(interceptors);return followUp_SqlSessionFactory.getObject();}

}

二.方法内部使用

public static final String TABLE_NAME_PREFIX = “patient_info”;

@Autowiredprivate JdbcTemplate jdbcTemplate;String tableId = this.baseMapper.patientTableId();//String table = Joiner.on("_").join(TABLE_NAME_PREFIX,tableId);// “自定义”log.info("创建随访人员表 ,表名是 {}", table);File file = new File("./config/create.sql");InputStream fileInputStream = null;try {fileInputStream = new FileInputStream(file);String line = IOUtils.toString(fileInputStream);String createSql = String.format(line, table);createSql = createSql.replaceAll("\r|\n", "");log.info("创建随访人员表,建表语句是 :");log.info(createSql);jdbcTemplate.execute(createSql);log.info("创建随访人员表成功.");return true;} catch (Exception e) {log.error("创建表失败!!!,table name is {}",table);return false;} finally {IOUtils.closeQuietly(fileInputStream);}

如果觉得《使用java代码动态在oracle数据库中动态创建表》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。