spring boot入门之使用JdbcTemplate
2017-03-30 15:53
447 查看
spring boot 对数据库操作在jdbc上做了进一步的封装,jdbcTemplate提供了基于注解的事务管理功能,spring可以通过注解的形式,把DataSouce数据源直接注入到jdbcTemplate中。
主要作用:
tomcat-jdbc-{version}.jar为我们自动配置DataSource.
如果你没有定义任何DataSource,SpringBoot将会自动配置一个内存的数据库资源设置
如果你没有定义任何DataSource,SpringBoot将会自动配置一个内存的数据库资源设置
如果没有设置任一个beans,SpringBoot会自动注册它:
spring boot 在启动的时候会去自动加载数据操作配置信息,根据配置,spring-boot会去载入calasspath下的schema.sql和data.sql文件,同时也会载入一些classpath下存在的默认配置(比如:schema-platform.sql和data−{platform}.sql)。
ps:在spring boot中,提供了两种配置文件(application.properties和application.yml文件),这两种文件基本上用法一样,后面会具体讲到。这里需要注意的是如果加了schemal配置,在classpath下没有test.sql就会报错。
先排除tomcat-jdbc的默认配置dataSource
定义自己的数据资源 这里使用了阿里巴巴的数据池管理,你也可以使用BasicDataSource
通过bena的方式使用:
@Bean
当然如果你不想用上述java代码的方式,你也可以通过配置的方式去生成dataSource Bean,只需要在application.properties中加入配置:
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.sql和data−{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相关文章推荐
- Spring Boot入门——JDBCTemplate使用及其相关问题解决
- spring boot + JdbcTemplate 使用druid数据源
- Spring基础:快速入门spring boot(4):使用slf4j输出日志
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- SpringBoot入门学习一(如何使用IDEA创建一个SpringBoot应用)
- 详解spring boot中使用JdbcTemplate
- Spring Boot 官方文档学习(一)入门及使用
- (6)spring boot下使用jdbcTemplate操作数据库
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
- Spring Boot 官方文档学习(一)入门及使用
- 利用springboot使用JdbcTemplate连接数据库
- Spring Boot 官方文档学习(一)入门及使用
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- Spring Boot中使用jdbctemplate 操作MYSQL数据库实例
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- Spring Boot项目中使用jdbctemplate 操作MYSQL数据库
- • Spring Boot - 进阶 数 据 访 问 -使用jdbcTemplate访问数据库
- (9)使用JdbcTemplate【从零开始学Spring Boot】
- eclipse中使用spring boot 入门开发(包含:与jsp页面和数据库交互,cmd打包运行war包)
- Spring Boot 学习9--使用JdbcTemplate