同福

做个java框架(8)——使用JdbcTemplate操作MySQL数据库【20210110】

介绍

介绍

福哥今天带着同学们给我们的TFSpring框架增加JdbcTemplate的功能。虽然这么说,其实福哥并没有对JdbcTemplate进行封装,只是简单的把它配置起来而已。

JdbcTemplate是Java语言操作数据库的主流工具对象,它不仅仅可以操作MySQL,还可以操作很多其他数据库引擎。

JdbcTemplate可以通过execute方法完成更新SQL的运行操作,还可以通过queryForMap、queryForList等等功能方法将数据库里的数据提取出来放入我们的数据结构当中。

MySQL授权

授权

首先,因为IDEA是安装在Windows上面的,所以从IDEA访问TFLinux的MySQL就是远程访问,需要进行授权才可以。

mysql> grant all on *.* to tfums@192.168.1.118 identified by 'abcdef';
Query OK, 0 rows affected, 1 warning (0.00 sec)

SpringBoot自动配置

关闭自动配置

默认SpringBoot会自动载入配置文件里面的数据源参数进行连接,福哥建议关闭它,我们自己来连接。

在项目的Application.java里面将@SpringBootApplication注解增加一个参数,表示我们不要SpringBoot自动配置数据源。

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@SpringBootApplication
public class TfspringApplication {

配置数据源

配置MySQL数据源

##############################################################################
# mysql
##############################################################################

sql.mysql.jdbc-url=jdbc:mysql://192.168.1.168:3306/tfums?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&serverTimezone=UTC&autoReconnect=true&useSSL=false
sql.mysql.username=tfums
sql.mysql.password=abcdef
sql.mysql.driverClassName=com.mysql.cj.jdbc.Driver

依赖项

增加Jdbc依赖项

<!-- jdbc -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
    <version>2.1.7.RELEASE</version>
</dependency>

增加MySQL驱动依赖项

<!-- mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.17</version>
</dependency>

ConfigJdbc

定义

@Configuration
public class ConfigJdbc {

mysqlDS

@Bean(name = "mysqlDS")
@Qualifier("mysqlDS")
@ConfigurationProperties(prefix = "sql.mysql")
public DataSource mysqlDS(){

    return DataSourceBuilder.create().build();
}

mysqlJT

@Bean(name = "mysqlJT")
@Qualifier("mysqlJT")
public JdbcTemplate mysqlJT(
        @Qualifier ("mysqlDS") DataSource dataSource
) {

    return new JdbcTemplate(dataSource);
}

ConfigDataSourceObject

定义

@Configuration
public class ConfigDataSourceObject {

mysqlJT

@Autowired
@Qualifier("mysqlJT")
private JdbcTemplate mysqlJT;

getMySQL

public JdbcTemplate getMySQL(){

    return mysqlJT;
}

讲解

ConfigJdbc

定义

给ConfigJdbc增加@Configuration注解,它需要第一时间运行

mysqlDS

这个方法通过@ConfigurationProperties将配置文件里的sql.mysql.*参数引入进来创建了数据源。

mysqlJT

这个方法通过mysqlDS数据源创建了JdbcTemplate对象,这个JdbcTemplate就可以操作MySQL数据库了。

ConfigDataSourceObject

定义

给ConfigDataSourceObject增加@Configuration注解,它需要第一时间运行

mysqlJT

注入ConfigJdbc的mysqlJT方法的结果到mysqlJT属性上面。

getMySQL

返回mysqlJT这个JdbcTemplate实例,这个是前面一步一步的注入“自动载入”进来的。

使用

代码

List<Map<String, Object>> results = dso.getMySQL().queryForList("show tables");
map.put("queryForList", results);

效果

c3d06bfe3a856254.jpg

总结

福哥今天带着童鞋们给TFSpring框架配置了JdbcTemplate功能,我们在控制器里面注入ConfigDataSourceObjec对象的实例,然后通过ConfigDataSourceObject
的getMySQL方法就可以拿到连接了MySQL的JdbcTemplate对象实例了。

下一课,福哥将带着大家给我们的ConfigDataSourceObject增加连接Redis的功能。