1. 什么的是JdbcTemplate
- Spring 框架对JDBC进行封装,使用JdbcTemplate可以很方便实现对数据库操作。
2. 准备工作
2.1 安装MySQL数据库
MySQL下载官网:http://www.mysql.com
进入官网,页面拉到底,点击如下:
然后选择对应系统安装包进行下载:
如果是下载Windows操作系统免安装MySQL安装包(这里演示免安装配置方式),如下:
下载完成后解压,然后进行配置:
- 配置环境变量:
配置好后,cmd如下命令检查是否配置成功:
- 创建配置文件,命名为my.ini,编辑my.ini文件的内容,然后将此文件放到mysql的bin文件夹的同级目录下(即放在根目录下),如图:
文本内容如下,方便复制:
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\MySQL\mysql-8.0.31-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir=D:\MySQL\mysql-8.0.31-winx64\data
#允许最大的连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character_set_server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
- 安装MySQL服务,执行命令为 mysqld-install,如下:
注意:上面一定要管理员身份打开cmd命令窗口,特别时win10系统下!否则可能无效。
执行上面的初始化命令后,在根目录下生成了data文件夹及里面的相关文件。
注:如果遇到如下问题:
原因一:my.ini文件中的basedir(设置mysql的安装目录)、datadir(设置mysql数据库的数据的存放目录)与MySQL解压后的路径不一致
解决办法:检查mysql安装目录 my.ini 目录,将basedir和datadir改为MySQL解压后的路径
原因二:my.ini文件中basedir和datadir的路径符号问题,此原因跟用的系统有关
解决方法:my.ini文件中把basedir和datadir中的 \ 改成 \\就可以正常执行了,据说这个跟用的系统有关
成功后就会生成一个data存储数据文件夹
- 启动MySQL服务,并使用用户root登录,同时设置登录密码(这里用“root”),如下:
(在“Enter password”后直接回车即可)
- 登录后进入MySQL数据库初始界面,输入简单命令测试MySQL是否部署成功,如下:
注意:上面一定要管理员身份打开cmd命令窗口,特别时win10系统下!否则可能无效。
也可以看之前任务管理器里是否启动了该服务:
2.2 安装Sqlyog可视化界面
(MySQL数据库管理工具,常用的工具还有Navicat)
SQLyog下载地址:SQLyog - Download
双击下载的exe文件,开始下载安装:
点击“Run”进行安装,然后一直点击下一步,直到完成:
桌面图标如下:
双击打开后发现需要破解才能用,先试用着,以后再破解。
新建连接如下:
注:网上下载了破解版:
问题:用SQLyog连接时出现如下错误:
原因:
因为SQLyog连接mysql8.0时,SQLyog Ultimate显示报错信息并附带乱码:“错误号码2058,Plugin caching——sha2_passward could not be loaded:******** ”(最后一段信息是乱码)。
将报错信息翻译过来就是:“插件缓存——sha2_密码无法进行加载”,这是由于你的SQLyog mysql 密码加密方法变了,SQLyog未能正确解析使用。
解决办法一:
1. 以管理员身份运行cmd,输入mysql查看环境变量是否配置。
见此输出,说明mysql的环境变量没有配置。
打开电脑环境变量,在path中加入mysql的bin路径到path中。
2. 连接数据库,执行sql修改密码
以管理员身份进入命令行窗口, 输入命令:
mysql -u root -p
登录到你个人的 mysql 数据库,然后 执行如下SQL语句:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
(这里的分号很重要)
管理员身份启动cmd,执行命令重启服务:
3. 打开SQLyog再次连接数据库
连接成功。
解决办法二:在前面提到的配置文件中加入如下配置(必须在[mysqld]之后加入):
default_authentication_plugin=mysql_native_password
然后重启mysql服务即可。
2.3 下载mysql驱动Jar包
驱动包下载地址:MySQL
下载后解压获得Jar包:
2.4 引入相关Jar包
druid(德鲁伊)包在之前的例子中已经引入,这里不再引入。
还有Spring的三个依赖:jdbc、tx 和orm 包。
以上Jar包引入项目中:
3. 使用JdbcTemplate实例
3.1 添加数据实现
- 在Spring配置文件中配置数据库连接池
- 配置JdbcTamplete对象,注入dataSource
- 创建service类,创建dao类,在dao中注入JdbcTamplete对象
- 创建数据库,对应数据库表创建实体类
- 编写service和dao,实现数据的添加操作。
- dao中调用JdbcTamplate对象里的update方法实现添加操作
3.2 修改和删除数据实现
跟上面的例子类似,注意区别如下:
3.3 查询数据实现
(1)JdbcTamplete操作数据库(查询返回某个值,如查询表里有多少条数据)
同上例子,关键区别如下:
(2)JdbcTamplete操作数据库(查询返回对象,如查询图书的详情页面)
调用JdbcTamplete的方法如下方法:
- 第一个参数:sql语句
- 第二个参数:RowMapper是接口,返回不同类型的数据,使用这个接口里面的类完成数据封装。
- 第三个参数:sql语句的参数值
例子同上,主要区别如下:
(3)JdbcTamplete操作数据库(查询返回集合,如查询图书列表分页)
调用JdbcTamplete中的query方法如下:
- 第一个参数:sql语句
- 第二个参数:RowMapper是接口,返回不同类型的数据,使用这个接口里面的类完成数据封装。
- 第三个参数:sql语句的参数值
例子同上,主要区别如下:
3.4 批量操作数据库
(1)JdbcTamplete操作数据库(批量添加操作)
- 批量操作:操作表里多条记录
- JdbcTamplete实现批量添加操作
调用JdbcTamplete的batchUpdate方法:
第一个参数:sql 语句
第二个参数:List集合,添加多条记录的参数数据
例子同上,主要区别如下:
(2)JdbcTamplete操作数据库(批量修改和删除操作)
调用JdbcTamplete的batchUpdate方法:
第一个参数:sql 语句
第二个参数:List集合,添加多条记录的参数数据
例子同上,主要区别如下: