Spring系列四之JDBC

一、Spring JDBC之数据库环境

下面开始学习Sping中数据库配置的相关内容

MySQL及辅助jar包的下载

在学习Spring JDBC中,我们采用的数据库是MySQL,版本是社区版+解压缩版,因为社区版是免费的,解压缩版相对msi安装版更锻炼能力。下面开始详细流程。

  1. 进入下载页面:打开百度,输入关键字mysql,进入有认证的官网,点击DOWNLOADS,在下载页找到社区版MySQL Community (GPL) Downloads)下载入口;
    社区版下载
    注意:之所以没有直接给出大家链接的原因是,将来官网的链接有可能会换,大家要根据关键字来找下载链接,作为程序员,这是必须要学习的技能
  2. 点击后进入页面,点击MySQL Community Server。
    MySQL 社区服务端
  3. 选对操作系统和下载包
    下载注意
  4. 下载mysql8.0.19,点击No thanks,立马下载,不用注册;
    在这里插入图片描述
  5. 再次进入到第2小步的页面,点击Connector/J,即将要下载的是MySQL与Java的适配器jar包。
    Connector/C++,Python, PHP等都是MySQL和不同语言的适配器在这里插入图片描述
  6. 选择平台–Platform Independent;
    在这里插入图片描述
  7. 下载zip格式,点击Dowload后, 依然No thanks,不用注册,立马下载。到此,需要在MySQL上下载的就告一段落了。
    在这里插入图片描述
    说明:MySQL msi安装版的教程参考https://www.runoob.com/w3cnote/windows10-mysql-installer.html

MySQL解压缩版的安装

  1. 将下载的压缩包解压到全英文路径下(路径里切记不要有英文),进入到该路径下,共有5个文件夹,2个文件;
    在这里插入图片描述
  2. 设置显示文件后缀名;
    在这里插入图片描述
  3. 在mysql目录下,新建一个文本文件,将其名称改为my,后缀名改为ini,不在是txt。
    该文件名必须为my.ini,不要更改
    在这里插入图片描述
  4. 用记事本方式打开my.ini,加入以下配置信息。其中basedir后的目录,换成你自己的目录,目录路目录之间用双\。
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录,替换成你自己的
basedir=D:\\soft\\mysql-8.0.19-winx64
# 设置 mysql数据库的数据的存放目录,通常是basedir下data
datadir=D:\\soft\\mysql-8.0.19-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
  1. 保存时my.ini配置文件时,要注意不要直接保存,使用另存为,在另存为中,文件名不变,设置编码方式为ANSI;
    在这里插入图片描述
  2. 管理员身份打开cmd。
    在这里插入图片描述
  3. 在cmd中使用cd 命令进入到刚才的mysql路径下的bin文件夹里;
    在这里插入图片描述
  4. 输入初始化mysql的命令,敲回车。仔细看命令,别拼写错误

mysqld --initialize --console

(1)如果看到图片中的文字,表明结果正常,记下自动生成的密码。(密码随机生成,里边可能会有特殊符号)
在这里插入图片描述
(2)如果出现以下这种情况,从班级群中下载vcruntime140_1.dll这个文件拷贝到C:\Windows\System32这个路径下
在这里插入图片描述
(3)如果出现如下情况,从班级群里下载vc_redist.x64.exe安装,这是缺少VS2015运行库导致的。
在这里插入图片描述
(4)如果出现一下这种情况,排查的方向有是否以管理员方式启动(重新启动cmd);my.ini配置文件编写错误(认真核对);mysql目录下是否已有data文件(删掉data文件夹)。
在这里插入图片描述
9.命令行中输入.输入时查看是否在mysql安装路径的bin目录下

mysqld install

成功后显示,Service successfully installed.
如果失败,首先检查是否是以管理员身份运行的cmd
10. 启动MySQL服务,

net start mysql

成功的话会显示:
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
可在win10的服务功能中找到MySQL服务(如何打开服务界面,自行百度)
在这里插入图片描述
11. 双击该项服务,将其启动类型设置为手动,点击确定。自动的话是随着操作系统开启时一同启动的,没有必要。
在这里插入图片描述

MySQL设置开启桌面图标

注意:先设置MySQL服务为手动启动(看上图)

  1. 编写bat脚本文件:在mysql安装目录下新建一个txt,文件内写入以下内容后,保存

net start mysql

  1. 重新修改文件名:文件名修改为mysql(名字任意),后缀修改为bat
    在这里插入图片描述
  2. 创建快捷方式到桌面:右击该文件->发送到->桌面快捷方式
    在这里插入图片描述
  3. 修改快捷方式属性:右击该文件->属性->高级->勾选用管理员身份运行->确定
    在这里插入图片描述
    在这里插入图片描述
    设置图标(图标文件.ico在群文件中,下载到mysql安装路径下)
    更改图标->点击确定
    在这里插入图片描述
    在这里插入图片描述
    选择图标文件:浏览->选择mysql.ico->打开->确定->确定->应用->确定
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 修改快捷方式名称,双击测试:名字修改任意,我修改为mysql。
    在这里插入图片描述
    在这里插入图片描述

登录MySQL

  1. 开启cmd,利用cd命令切入到mysql安装路径下的bin目录。敲命令

mysql -u root -p

进入界面,敲如刚才自动生成的密码,按回车
在这里插入图片描述
进入如下界面,表示登录成功
在这里插入图片描述
如果进入以下界面,表示密码输入错误,访问被拒绝(自动生成密码较复杂,很容易输错,多输几次)
在这里插入图片描述
2. 进入mysql命令行,修改用户名密码。密码统一改为123456。

alter user ‘root’@‘localhost’ identified by ‘123456’;

结果如图,修改成功
在这里插入图片描述
3. 用新密码重新登录mysql.
4. 创建数据库test,并查看

create database test;
show databases;

结果如图所示:
在这里插入图片描述

Eclipse连接MySQL

1.打开Eclipse的数据浏览器: 选择Window->Show View->Data Source Explorer
在这里插入图片描述
出现下图,表明已打开。
在这里插入图片描述
2.右击DataBaseConnections->New->单击MySQL,在Name框中输入名字,点击Next
在这里插入图片描述
.3.添加驱动与数据库信息
在这里插入图片描述
在这里插入图片描述
切换到JarList选项卡,点击clear All
在这里插入图片描述
单击 Add JAR/Zip
在这里插入图片描述
选中下载的mysql和java连接器压缩包中的jar文件,点击打开(我已将它解压缩,提取出来放入了我的springBasicLibrary目录下)
在这里插入图片描述
切换到Properties标签页中配置信息。
在这里插入图片描述
url改为如下:
jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai
DataBase Name改为test
在这里插入图片描述
点击Test Connection ,测试连接
在这里插入图片描述
出现一下为连接正常。注意:此时必须先确定mysql服务已开启
在这里插入图片描述
点击Finish,配置完成。
4、配置完成,可在Eclipse中可视化浏览数据库test
在这里插入图片描述

二、Spring JDBC之JdbcTemplate

下面开始学习Sping中数据库编程相关内容

JDBC基础概念

JDBC的相关原理和使用参考如下链接:https://blog.csdn.net/u011753266/article/details/80044768
这里只解释一下里边最重要的两个图,一时半会可能理解不了,大家慢慢去感悟。
下图展示了JDBC的作用:用来统一不同数据库厂商所给出操作数据库函数的名称和参数,也就是jdbc定义了接口(规范了函数名和参数列表,这就是接口的好处),这样使得用java jdbc开发出的程序可以随意移植,不用因为数据库不同就重写程序了,更加利于java的推广。
在这里插入图片描述
注意:从jdbc去体会使用接口的好处
下图是jdbc的六个流程,spring jdbc框架或者是其他jdbc框架基本上都是对其中的流程1、2、6进行了内部管理,不再需要程序员自己去管理,将精力更加聚焦到主业务逻辑。此外还对流程3、4、5中用到的jdbc原生函数进行了不同程度的封装,更加方便程序员使用。
在这里插入图片描述

Spring Jdbc Template

1.创建工程,加入新jar包。

点击next
在这里插入图片描述
切换到Libraries选项卡,点击Add Library
在这里插入图片描述
在这里插入图片描述
选中UserLibray,点击Next
在这里插入图片描述
点击User Librayies…
在这里插入图片描述
选中后点击Add External JARs…
在这里插入图片描述
使用ctrl键分别选中以下4个包(前两个包在群文件中,后两个包在spring 源jar包中找,我事先把这4个jar包放入到了我个人的springBasicLibs里了)
在这里插入图片描述
个人的spring 库中就有14个jar包了,确认后Apply and close
在这里插入图片描述
务必勾选上,之后Finish
在这里插入图片描述
再次Finish,添加完成。
在这里插入图片描述
2. 创建表


在Data source Explorer中找到test数据库,右击选择 GenerateDDL
在这里插入图片描述
什么也不勾选
在这里插入图片描述
还是不勾选
在这里插入图片描述
选择sql脚本存放目录。
在这里插入图片描述
选择刚创建的工程test21
在这里插入图片描述
设置文件名,根据用途修改。我选择不变。
在这里插入图片描述
点击Finish
在这里插入图片描述
双击该文件,进入编辑页面
在这里插入图片描述
选择作用范围:Name
在这里插入图片描述
选择要操作的数据库
在这里插入图片描述
编写Sql语句:创建一个student表,插入两条语句
在这里插入图片描述
如下:

create table student(
	id int not null auto_increment,
	username varchar(50) not null,
	password varchar(10) not null,
	primary key(id)
);

insert into student(username, password) values("A","123456");
insert into student(username, password) values("B","123456");

运行SQl语句
在这里插入图片描述
运行结果:创建成功,Schemas/test/Tables/目录下已包含student表
在这里插入图片描述
查看表中数据:右击student表->Data->Edit
在这里插入图片描述
查看数据
在这里插入图片描述
3. 工程目录:
在这里插入图片描述
4. 在各个包中编写java源码
包com.edu.tjdz.geng.model下创建实体类Student。
刚开始学习时,可以简单认为实体类对应了数据库的名字,实体类中的属性对应了数据库表中的属性

package com.edu.tjdz.geng.model;

public class Student {
	private String username;
	private String password;
	private int id;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
}

包com.edu.tjdz.geng.dao下创建一个接口StudentDao

package com.edu.tjdz.geng.dao;

import com.edu.tjdz.geng.model.Student;

public interface StudentDao {
	public void insertStudent(Student s);
}

包com.edu.tjdz.geng.dao.impl下创建一个实现类StudentDaoImpl。该实现类中有一个JdbcTemplate的成员属性,为它生成setter方法。inserStudent这是方法是大家要重点模仿的方法,函数名根据实际功能变化,模仿它的内部实现,通过调用jdbcTemplate对象的方法去实现增删改查这几个功能。

package com.edu.tjdz.geng.dao.impl;

import org.springframework.jdbc.core.JdbcTemplate;

import com.edu.tjdz.geng.dao.StudentDao;
import com.edu.tjdz.geng.model.Student;

public class StudentDaoImpl implements StudentDao {
	private JdbcTemplate jdbcTemplate;
	
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	@Override
	public void insertStudent(Student s) {
		String sql = "insert into student(username, password) values(?,?)";
		Object[] args = {s.getUsername(), s.getPassword()};
		this.jdbcTemplate.update(sql, args);
	}
}

包com.edu.tjdz.geng.test下创建测试类:Test。

package com.edu.tjdz.geng.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.edu.tjdz.geng.dao.StudentDao;
import com.edu.tjdz.geng.model.Student;

public class Test {

	public static void main(String[] args) {
		Student s = new Student();
		s.setUsername("C");
		s.setPassword("123456");
		
		ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		StudentDao stuDao = (StudentDao)appContext.getBean("stuDao1");
		
		stuDao.insertStudent(s);;
	}
}

注意下图中关于那三行代码的说明
在这里插入图片描述
5. 编写配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
    	http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        ">
	<!--1、创建数据源,采用c3p0  -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"></property>
		<property name="user" value="root"></property>
		<property name="password" value="123456"></property>
	</bean>
	
	<!--2、创建Spring jdbcTemplate对象-->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!--3、创建studentDao对象-->
	<bean id="stuDao1" class="com.edu.tjdz.geng.dao.impl.StudentDaoImpl">
		<property name="jdbcTemplate" ref="jdbcTemplate"></property>
	</bean>
    
</beans>

  1. 运行Test类的main方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值