jdbcTempate配置(在既有项目中增加)

61 阅读1分钟

1.配置注入DataSource和自定义一个JdbcTemplate


import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;

@Configuration
public class JDBCTemplateConfig {
	
	@Bean(name = "primaryDataSource")
    @Qualifier("primaryDataSource")
//    @ConfigurationProperties(prefix="spring.datasource.primary")
    public DataSource primaryDataSource() {
		 DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
		    dataSourceBuilder.driverClassName("com.mysql.cj.jdbc.Driver");
		    dataSourceBuilder.url("jdbc:mysql://xxxx.xxxx.xxxx.xxxx:3306/test?characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&useSSL=false");
		    dataSourceBuilder.username("test");
		    dataSourceBuilder.password("123456");
		return dataSourceBuilder.build();
    }
	
	@Bean(name = "primaryJdbcTemplate")
    public JdbcTemplate primaryJdbcTemplate(
            @Qualifier("primaryDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

}

2.测试类



import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes=TestApplication.class)
public class JunitTest {

	@Autowired
	@Qualifier("primaryJdbcTemplate")
	protected JdbcTemplate primaryJdbcTemplate;


//	@Test
	public void test() {
		try {
			UserInfo ui=new UserInfo();
			ui.setId(19);
			ui.setName("test");
			ui.setCname("1");
			ui.setPhone("123");
			ui.setSms("1234");
			ui.setCreateTime(DateUtil.currentTimeSeconds());
			ui.setUpdateTime(DateUtil.currentTimeSeconds());
			int update = primaryJdbcTemplate.update(
					"replace into user_info(id,name,cname,phone,sms,create_time,update_time) values(?, ?, ?, ? ,? ,? ,?)",
					ui.getId(), ui.getName(), ui.getCname(), ui.getPhone(), ui.getSms(), ui.getCreateTime(),
					ui.getUpdateTime());
			System.out.println("更新或者新增数据:" + update);
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}


}