前言
提示:喜欢就点个赞哦
提示:以下是本篇文章正文内容,下面案例可供参考
一、springboot+模板引擎+mysql+整合mybatis
示例:为了方便
二、使用步骤
1.导入依赖
代码如下(示例):pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.oyjl</groupId>
<artifactId>spring-boot-name</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-name</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-commons</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
编写实体类
package com.oyjl.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true) //链式编程
public class Users {
private Integer id;
private String name;
private String password;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
Mapper接口
package com.oyjl.Mapper;
import com.oyjl.pojo.Users;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@SuppressWarnings("all")
@Mapper
public interface UsersMapper {
List<Users> finAll();
Users findUserById(int id);
int addUser(Users user);
int update(Users user);
int delete(int id);
}
Svrivce接口
package com.oyjl.Service;
import com.oyjl.pojo.Users;
import java.util.List;
public interface UsersService {
List<Users> finAll();
Users findUserById(int id);
int addUser(Users user);
int update(Users user);
int delete(int id);
}
Svrivceimpl类
package com.oyjl.Service.impl;
import com.oyjl.Mapper.UsersMapper;
import com.oyjl.Service.UsersService;
import com.oyjl.pojo.Users;
import jdk.internal.instrumentation.Logger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.swing.*;
import java.util.List;
@SuppressWarnings("all")
@Slf4j
@Service
public class UsersServiceimpl implements UsersService {
@Autowired
public UsersMapper usersMapper;
@Override
public List<Users> finAll() {
List<Users> users = usersMapper.finAll();
return users;
}
@Override
public Users findUserById(int id) {
return usersMapper.findUserById(id);
}
@Override
public int addUser(Users user) {
return usersMapper.addUser(user);
}
@Override
public int update(Users user) {
return usersMapper.update(user);
}
@Override
public int delete(int id) {
return usersMapper.delete(id);
}
}
mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.oyjl.Mapper.UsersMapper">
<insert id="addUser" parameterType="Users">
insert into table_user(name,password,age)
values (#{name}, #{password}, #{age})
</insert>
<update id="update">
update table_user
set name = #{name},password = #{password},age = #{age}
where id = #{id}
</update>
<delete id="delete" parameterType="int">
delete from table_user where id=#{id}
</delete>
<select id="finAll" resultType="Users">
select * from table_user
</select>
<select id="findUserById" resultType="Users">
select * from table_user where id=#{id}
</select>
</mapper>
application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1/itveteran?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
mybatis:
type-aliases-package: com.oyjl.pojo
mapper-locations: classpath:mybatis/mapper/*.xml
controller类
package com.oyjl.conrotller;
import com.oyjl.Service.UsersService;
import com.oyjl.pojo.Users;
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 org.springframework.web.bind.annotation.RequestParam;
import org.thymeleaf.util.StringUtils;
import javax.servlet.http.HttpSession;
import javax.xml.transform.Result;
import java.util.List;
import java.util.Map;
@SuppressWarnings("all")
@Controller
public class Userscontroller {
@Autowired
public UsersService usersService;
@RequestMapping("/allout")
public String finAll(Model model){
List<Users> list = usersService.finAll();
model.addAttribute("list",list);
return "/indexs.html";
}
//添加
@RequestMapping("/toAdd")
public String toAddPaper() {
return "adduser";
}
@RequestMapping("/add")
public String addPaper(Users user) {
System.out.println(user);
usersService.addUser(user);
return "redirect:/allout";
}
//修改
@RequestMapping("/toEdit")
public String toEdit(Model model,int id) {
Users users=usersService.findUserById(id);
model.addAttribute("user", users);
return "updateBook";
}
@RequestMapping("/edit")
public String edit(Users user) {
usersService.update(user);
return "redirect:/allout";
}
//删除
@RequestMapping("/delete")
public String delete(int id) {
usersService.delete(id);
return "redirect:/allout";
}
}
查询全部页面
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<title>书籍列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
<small>用户列表</small>
</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4 column">
<a class="btn btn-primary" href="/toAdd" th:href="@{/toAdd}">新增</a>
</div>
</div>
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-hover table-striped">
<thead>
<tr>
<th>用户ID</th>
<th>用户名</th>
<th>密码</th>
<th>年龄</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tbody>
<tr th:each="user:${list}">
<th scope="row" th:text="${user.id}"></th>
<th th:text="${user.name}"></th>
<th th:text="${user.password}"></th>
<th th:text="${user.age}"></th>
<th>
<a th:href="@{/toEdit(id=${user.id})}">更改</a> |
<a th:href="@{/delete(id=${user.id})}" onclick= "return cli()">删除</a>
</th>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<script type="text/javascript">
function cli(){
//confirm方法弹出一个对话框,可以选择确定与取消操作
//同时该方法有返回值,true和false,两个布尔值
var flag = confirm("确定删除吗?");
if(flag){
alert("你点击了确定");
return true;
//进行后台处理,路径跳转
window.location.href="/allout";
}else{
alert("你点击了取消");
return false;
}
}
</script>
</div>
修改页面
<html lang="en" xmlns:th="http://www.thymeleaf.org">>
<head>
<title>修改信息</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
<small>修改信息</small>
</h1>
</div>
</div>
</div>
<form th:action="@{/edit}" method="post">
<input type="hidden" name="id" th:value="*{user.id}" />
<div class="form-group">
<label for="name" class="col-sm-2 control-label">name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" th:value="*{user.name}" placeholder="name"/>
</div>
</div>
<br>
<br>
<br>
<div class="form-group">
<label for="password" class="col-sm-2 control-label" >Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" name="password" id="password" th:value="*{user.password}" placeholder="Password"/>
</div>
</div>
<br>
<br>
<div class="form-group">
<label for="age" class="col-sm-2 control-label">age</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="age" id="age" th:value="*{user.age}" placeholder="age"/>
</div>
</div>
<br><br>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="修改" class="btn btn-info" />
<a href="/allout" th:href="@{/allout}" class="btn btn-info">返回</a>
</div>
</div>
</form>
</div>
新增页面
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<title>修改信息</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
<small>添加用户</small>
</h1>
</div>
</div>
</div>
<form th:action="@{/add}" method="post">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" placeholder="name"/>
</div>
</div>
<br>
<br>
<br>
<div class="form-group">
<label for="password" class="col-sm-2 control-label" >Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" name="password" id="password" placeholder="Password"/>
</div>
</div>
<br>
<br>
<div class="form-group">
<label for="age" class="col-sm-2 control-label">age</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="age" id="age" placeholder="age"/>
</div>
</div>
<br><br>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="添加" class="btn btn-info" id="b1" onclick= "return yz()" />
<a href="/allout" th:href="@{/allout}" class="btn btn-info">返回</a>
</div>
</div>
</form>
<script type="text/javascript">
function yz() //封装一个<body>中做成点击事件的函数
{
var name = document.getElementById("name").value; //通过id名 找到 元素并重新 赋值
var password = document.getElementById("password").value;
var age = document.getElementById("age").value;
if(name=="" || null) //判断条件
{
alert("用户名不能为空!"); //输出不满足条件的提示内容
return false;
}
else if(password =="" || null)
{
alert("密码不能为空!");
return false;
}
else if(age =="" || null)
{
alert("年龄不能为空!");
return false;
}
else
{
return true; //满足条件时将执行表单的action
}
}
</script>
</div>
页面就不一一发出来了
2.项目结构
总结
这个要多练,加油吧