1.创建Springboot项目
项目名称必须使用自己的学号,例如学号是2018123456,项目名称就是k2018123456,k小写
勾选Springboot的Web支持,方便后期创建jsp项目
2.双击打开pom.xml添加项目jar相关依赖
注意:一定是在dependencies复数形式里面添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 添加servlet依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- 添加jstl标签库依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--添加tomcat依赖模块.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!-- 使用jsp引擎,springboot内置tomcat没有此依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--添加mysql驱动依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.37</version>
</dependency>
3.配置application.yml项目信息
点击resources目录,新建application.yml,将下面的内容复制到配置文件中,仔细查看项目配置,端口号和项目名
application.yml配置内容,复制粘贴放进去
spring:
mvc:
view:
prefix: /views/ #视图解析器jsp存放文件夹
suffix: .jsp #视图解析器匹配文件后缀名
devtools:
restart:
enabled: false
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://47.102.221.219:3306/tqm?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
hikari: # springboot 2.0 整合了hikari ,据说这是目前性能最好的java数据库连接池
username: tqm
password: tqm
jpa:
hibernate:
ddl-auto: update # 第一次建表create 后面用update,要不然每次重启都会新建表
show-sql: true # 显示jpa执行的SQL语句
server:
port: 8084 #这里设置项目端口号,如果被占用 请更换其他端口号
servlet:
context-path: /k2018xxxx # 2018xxxx换成自己的学号 项目访问路径 localhost:端口号/项目路径
4.创建项目包结构,分别是entity,controller,dao
完成以后检查项目包目录是否正确
5.实现jpa查询数据库并通过网页显示数据
遇到错误,先找同学咨询,处理不了,找老师
5.1 将下面jpa管理的实体类复制到entity包中
package com.example.k2018xxxx.eneity;
import javax.persistence.*;
@Entity // 该注解声明一个实体类,与数据库中的表对应
@Table(name = "k2018xxxx_userinfo") //这里注解是写表名 k2018xxxx改成自己的学号
public class Userinfo {
@Id //主键id
@GeneratedValue(strategy = GenerationType.IDENTITY)//主键生成策略
private int id;
private String num;
private String name;
private String sex;
public Userinfo() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
5.2 将下面dao操作类复制到dao包中
package com.example.k2018xxxx.dao;
import com.example.k2018xxxx.eneity.Userinfo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
@Component // Userinfo代表你要操作的实体类,Integer 代表主键类型 <实体类,主键类型>
public interface UserinfoDAO extends JpaRepository<Userinfo, Integer> {
}
5.3 将下面controller操作类复制到controller包中
package com.example.k2018xxxx.controller;
import com.example.k2018xxxx.dao.UserinfoDAO;
import com.example.k2018xxxx.eneity.Userinfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller //代表处理网络请求
public class UserinfoController {
//注入数据库操作dao
@Autowired
UserinfoDAO userinfoDAO;
// 查询所有信息请求
@ResponseBody
@RequestMapping("/userinfoList")
public Object findAll() {
return userinfoDAO.findAll();
}
// 添加信息
@ResponseBody
@RequestMapping("/userinfoSave")
public Object userinfoSave(Userinfo obj) {
return userinfoDAO.save(obj);
}
//删除信息
@ResponseBody
@RequestMapping("/userinfoDelete")
public Object userinfoDelete(Integer id) {
userinfoDAO.deleteById(id);
return "删除" + id;
}
}
6.运行程序,通过网页测试结果,并进行截图
6.1 测试程序数据添加,端口号和项目名称根据自己的情况修改
下面的是添加用户的测试访问路径,多添加几条数据,方便后期查询
http://localhost:8084/k2018xxxx/userinfoSave?num=2018123456&name=张三&sex=男
使用?传递参数,多个参数之间使用&连接,用自己的真实姓名和学号 性别
浏览器访问测试结果如下图所示,
6.2 测试程序查询列表操作
访问路径如下
http://localhost:8084/k2018xxxx/userinfoList
运行截图如下:
6.3 测试程序删除数据操作
访问路径如下: id是你数据库中存在的数据的id值
http://localhost:8084/k2018xxxx/userinfoDelete?id=1
运行截图如下:
恭喜您到这里,你已经成功创建了项目,并实现基本功能
从这里开始将由你自己来完成,每个同学,参考5步骤和6步骤,自己完成两个表的操作,每个表至少四个字段以上,不懂之处多看代码中的注释。
实验报告中,测试截图和代码为考核标准
步骤二 整合jsp,实现页面的增删改查
2.1 在main目录中新建webapp文件夹,用于存储web资源文件
建立完成以后项目如下图所示,请检查自己项目
2.2 在webapp目录中新建views文件夹,用于存放jsp文件
建立完成以后项目如下图所示,请检查自己项目
下面开始写代码,请按照要求复制
2.3 写用户表对应jsp控制层
请将下面内容复制到controller包进行粘贴
package com.example.k2018xxxx.controller;
import com.example.k2018xxxx.dao.UserinfoDAO;
import com.example.k2018xxxx.eneity.Userinfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller //代表处理网络请求
public class UserinfoJSPController {
//注入数据库操作dao
@Autowired
UserinfoDAO userinfoDAO;
// 查询信息到页面展示
@RequestMapping("/userinfo_list")
public String userinfo_list(Model model) {
List<Userinfo> all = userinfoDAO.findAll(); //查询所有数据
model.addAttribute("all", all); //绑定参数到页面
return "userinfo_list"; //返回对应的jsp页面
}
// 保存信息
@RequestMapping("/userinfo_save")
public String userinfo_save(Userinfo obj) {
userinfoDAO.save(obj); //保存到数据库
return "redirect:userinfo_list"; //重定向到 查询请求 方便及时看到最新的数据
}
//删除信息
@RequestMapping("/userinfo_delete")
public String userinfo_delete(Integer id) {
userinfoDAO.deleteById(id);
return "redirect:userinfo_list"; //重定向到 查询请求 方便及时看到最新的数据
}
//跳转到编辑信息页面
@RequestMapping("/userinfo_edit")
public String userinfo_edit(Integer id, Model model) {
Userinfo obj = userinfoDAO.getById(id);
model.addAttribute("obj", obj); //绑定参数到页面
return "userinfo_edit"; //返回对应的jsp页面
}
}