package com.spring.json.jdbcTemplate.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
/**
* @User: Json
* @Date: 2022/4/17
**/
@Configuration //配置类
@ComponentScan(basePackages = "com.spring.json.jdbcTemplate")
@EnableTransactionManagement //开启事务
public class JdbcConfig {
//创建数据库连接池
// 注解 @Bean是一个方法级别的注解,
// 主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名。
// 表示 在 ioc 容器中进行创建对象
@Bean
public DruidDataSource getDruidDataSource(){
DruidDataSource druidDataSource=new DruidDataSource();
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/java_test");
druidDataSource.setUsername("root");
druidDataSource.setPassword("1123");
return druidDataSource;
}
// 以上代码 基于配置文件 实现连接数据库
// 相当于 xml中
// <bean id="DruidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
// <property name="driverClassName" value="${prop.driverClass}"></property>
// <property name="url" value="${prop.url}"></property>
// <property name="username" value="${prop.username}"></property>
// <property name="password" value="${prop.password}"></property>
// </bean>
//创建JdbcTemplate对象
@Bean
public JdbcTemplate getJdbcTemplate(DataSource dataSource){
//到ioc 容器中 根据类型找到相对应得 DataSource 对象 进行注入
JdbcTemplate jdbcTemplate=new JdbcTemplate();
//注入DruidDataSource
jdbcTemplate.setDataSource(dataSource);
return jdbcTemplate;
}
// 以上代码 基于配置文件 实现连接数据库
// 相当于 xml中
//
// <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
//
// <property name="dataSource" ref="DruidDataSource" ></property>
// </bean>
@Bean
public DataSourceTransactionManager getDataSourceTransactionManager(DataSource dataSource){
DataSourceTransactionManager dataSourceTransactionManager=new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource);
return dataSourceTransactionManager;
}
// 以上代码 基于配置文件 实现连接数据库
// 相当于 xml中
//
// <bean id="DataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
//
// <property name="dataSource" ref="DruidDataSource" ></property>
// </bean>
}