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());
}
}
}