spring boot入门之使用JdbcTemplate

版权声明:本文为博主原创文章,转载请标注出处。 https://blog.csdn.net/qq27Ke/article/details/68488808

spring boot 对数据库操作在jdbc上做了进一步的封装,jdbcTemplate提供了基于注解的事务管理功能,spring可以通过注解的形式,把DataSouce数据源直接注入到jdbcTemplate中。

1,加入Maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

主要作用:

  • tomcat-jdbc-{version}.jar为我们自动配置DataSource.

  • 如果你没有定义任何DataSource,SpringBoot将会自动配置一个内存的数据库资源设置

  • 如果你没有定义任何DataSource,SpringBoot将会自动配置一个内存的数据库资源设置

  • 如果没有设置任一个beans,SpringBoot会自动注册它:

spring boot 在启动的时候会去自动加载数据操作配置信息,根据配置,spring-boot会去载入calasspath下的schema.sql和data.sql文件,同时也会载入一些classpath下存在的默认配置(比如:schema- platform.sqldata {platform}.sql)。

#可以定义你的建库文件
spring.datasource.schema=test.sql
#可以定义你的数据文件
spring.datasource.data=xxxx-data.sql
#可以决定是不是要初始化这些数据库文件
spring.datasource.initialize=false
#有了错误是否继续运行
spring.datasource.continueOnError=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sb_jdbc
spring.datasource.username=root
spring.datasource.password=××××

ps:在spring boot中,提供了两种配置文件(application.properties和application.yml文件),这两种文件基本上用法一样,后面会具体讲到。这里需要注意的是如果加了schemal配置,在classpath下没有test.sql就会报错。

2,自定义数据源

与之前我们使用spring框架一样,这里我们可以根据项目配置不同的数据,使用@Bean的方式注入:
先排除tomcat-jdbc的默认配置dataSource

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </exclusion>
    </exclusions>
</dependency>

定义自己的数据资源 这里使用了阿里巴巴的数据池管理,你也可以使用BasicDataSource

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.26</version>
</dependency>

通过bena的方式使用:
@Bean

public DataSource dataSource() {
    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl(env.getProperty("spring.datasource.url"));
        //用户名
            dataSource.setUsername(env.getProperty("spring.datasource.username"));
            dataSource.setPassword(env.getProperty("spring.datasource.password"));//密码
            dataSource.setInitialSize(2);
            dataSource.setMaxActive(20);
            dataSource.setMinIdle(0);
            dataSource.setMaxWait(60000);
            dataSource.setValidationQuery("SELECT 1");
            dataSource.setTestOnBorrow(false);
            dataSource.setTestWhileIdle(true);
            dataSource.setPoolPreparedStatements(false);
            return dataSource;
    }

当然如果你不想用上述java代码的方式,你也可以通过配置的方式去生成dataSource Bean,只需要在application.properties中加入配置:

    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

3,定义实体类(略)

4,创建持久层

通过配置了数据,就可以通过jedbcTemplate与数据库进行交互。

@Repository
public class UserDao {
    private Logger logger = LoggerFactory.getLogger(UserDao.class) ;
    @Autowired
    private JdbcTemplate jdbcTemplate ;
    public List<User> findAll(){
        if(jdbcTemplate.getDataSource() instanceof DruidDataSource){
            logger.info("验证确实通过@Bean注入了DruiDataSource数据源");
        }
        String sql = "select * from user" ;
        List<User> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(User.class)) ;
        return list ;
    }
}
.....

5,单元测试(略)

在这里就不一一贴出代码了,具体请参考:https://github.com/larrychina/skills/tree/master/springboot01

猜你喜欢

转载自blog.csdn.net/qq27Ke/article/details/68488808