







1.Spring封装了JDBC所有的底层细节,从开始打开连接,准备和执行SQL语句,处理异常,处理事务,到最后关闭连接。大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑中。
2.Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础这是管理所有数据库通信和异常处理的中央框架类。
3.Spring框架提供了DriverManagerDataSource类,该类是一个标准的标准JDBC数据源的简单实现类。
4.Spring框架能整合一些数据库连接池,如DBPC连接池、c3p0连接池、alibabadruid连接池

<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>5.3.22version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.30version>
dependency>

<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3307/springboot01?characterEncoding=utf8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
bean>
<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
<property name="dataSource" ref="dataSource"/>
bean>
beans>

package com.zou.pojo;
public class Person {
private int id;
private int age;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

public List<Person> findAllPerson();

@Autowired
JdbcTemplate jdbcTemplate;
public List<Person> findAllPerson() {
RowMapper<Person> rowMapper=new BeanPropertyRowMapper<Person>(Person.class);
return jdbcTemplate.query("select * from class1",rowMapper);
}

public List<Person> findAllPerson();

public List<Person> findAllPerson() {
return userDao.findAllPerson();
}


@RequestMapping("personlist")
public String personlist(Model model){
model.addAttribute("personlist",userService.findAllPerson());
return "personlist";
}



public void addPerson(int age,String name);

@Autowired
JdbcTemplate jdbcTemplate;
public void addPerson(int age, String name) {
jdbcTemplate.update("insert into class1 values (null,?,?)",age,name);
}

public void addPerson(int age,String name);

public void addPerson(int age, String name) {
userDao.addPerson(age, name);
}

<%--
Created by IntelliJ IDEA.
User: Admin
Date: 2022/9/30
Time: 14:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>增加person页面</h1>
<form action="${pageContext.request.contextPath}/addpersoncommit" method="post">
<div>id:<input name="id"></div>
<div>用户名:<input name="name"></div>
<div>年龄:<input name="age"></div>
<div><input type="submit" value="提交"></div>
</form>
</body>
</html>

@RequestMapping("addperson")
public String addperson(){
// model.addAttribute("name",userService.findUserName());
return "addPerson";
}
@RequestMapping("addpersoncommit")
public String addpersoncommit(Model model, String name,int age){
userService.addPerson(age,name);
return "success";
跳到列表
// return "forward:/personlist";
}




public void deletePerson(int id);

public void deletePerson(int id) {
jdbcTemplate.update("delete from class where id=?",id);
}

public void deletePerson(int id);

public void deletePerson(int id) {
userDao.deletePerson(id);
}

@RequestMapping("deleteperson")
public String deleteperson(int id){
userService.deletePerson(id);
// 跳到列表
return "forward:/personlist";
}

<%--
Created by IntelliJ IDEA.
User: Admin
Date: 2022/9/30
Time: 15:18
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--<h1>--%>
<%--<a href="${pageContext.request.contextPath}/addperson">增加用户</a>--%>
<%--</h1>--%>
<h1>person列表</h1>
<%--jstl标签--%>
<table border="1">
<tr>
<td>id</td>
<td>年龄</td>
<td>姓名</td>
<td>删除操作</td>
<%-- <td>更新操作</td>--%>
</tr>
<c:forEach var="person" items="${personlist}">
<tr>
<td>${person.id}</td>
<td>${person.age}</td>
<td>${person.name}</td>
<td>
<a href="${pageContext.request.contextPath}/deleteperson?id=${person.id}">删除用户</a>
</td>
<%-- <td>--%>
<%-- <a href="${pageContext.request.contextPath}/updateperson?id=${person.id}&age=${person.age}&name=${person.name}">更新用户</a>--%>
<%-- </td>--%>
</tr>
</c:forEach>
</table>
</body>
</html>




public void updatePerson(int id,int age,String name);

public void updatePerson(int id, int age, String name) {
jdbcTemplate.update("update class set age=?,name=? where id=?",age,name,id);
}

public void updatePerson(int id,int age,String name);

public void updatePerson(int id, int age, String name) {
userDao.updatePerson(id,age,name);
}

<%--
Created by IntelliJ IDEA.
User: Admin
Date: 2022/9/30
Time: 16:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>更新页面</h1>
<%--<div>${id}</div>--%>
<%--<div>${age}</div>--%>
<%--<div>${name}</div>--%>
<form action="${pageContext.request.contextPath}/updatepersoncommit" method="post">
<%-- <div>id:<input name="id" value="${id}" ></div>--%>
<div><input name="id" value="${id}" hidden></div>
<div>年龄:<input name="age" value="${age}"></div>
<div>用户名:<input name="name" value="${name}"></div>
<div><input type="submit" value="提交"></div>
</form>
</body>
</html>

@RequestMapping("updateperson")
public String updateperson(Model model,int id,int age,String name){
model.addAttribute("id",id);
model.addAttribute("age",age);
model.addAttribute("name",name);
// 跳到列表
return "updateperson";
}
@RequestMapping("updatepersoncommit")
public String updatepersoncommit(Model model,int id,int age,String name){
userService.updatePerson(id,age,name);
// 跳到列表
return "forward:/personlist";
}

<%--
Created by IntelliJ IDEA.
User: Admin
Date: 2022/9/30
Time: 15:18
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>
<a href="${pageContext.request.contextPath}/addperson">增加用户</a>
</h1>
<h1>person列表</h1>
<%--jstl标签--%>
<table border="1">
<tr>
<td>id</td>
<td>年龄</td>
<td>姓名</td>
<td>删除操作</td>
<td>更新操作</td>
</tr>
<c:forEach var="person" items="${personlist}">
<tr>
<td>${person.id}</td>
<td>${person.age}</td>
<td>${person.name}</td>
<td>
<a href="${pageContext.request.contextPath}/deleteperson?id=${person.id}">删除用户</a>
</td>
<td>
<a href="${pageContext.request.contextPath}/updateperson?id=${person.id}&age=${person.age}&name=${person.name}">更新用户</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>





下载地址:SpringBoot开发之SpringJDBC
到此一个完整的数据库增删改操作就基本完成啦,学习道路永无止境,继续努力吧!!!