公司网站服务类型怎么填,专业团队张益达图片,莆田网站制作方案定制,如何购买域名文章目录 SpringBoot整合MyBatis项目进行CRUD操作项目示例1.1.需求分析1.2.创建工程1.3.pom.xml1.4.application.properties1.5.启动类 2.添加用户2.1.数据表设计2.2.pojo2.3.mapper2.4.service2.5.junit2.6.controller2.7.thymeleaf2.8.测试 3.查询用户3.1.mapper3.2.service3… 文章目录 SpringBoot整合MyBatis项目进行CRUD操作项目示例1.1.需求分析1.2.创建工程1.3.pom.xml1.4.application.properties1.5.启动类 2.添加用户2.1.数据表设计2.2.pojo2.3.mapper2.4.service2.5.junit2.6.controller2.7.thymeleaf2.8.测试 3.查询用户3.1.mapper3.2.service3.4.controller3.5.thymeleaf3.6.测试 4.用户登录4.1.mapper4.2.service4.4.controller4.5.thymeleaf4.6.测试 5.SpringBoot整合日期转换器5.1.添加日期转换器5.2.配置日期转换器 6.SpringBoot整合拦截器6.1.添加拦截器6.2.配置拦截器 SpringBoot整合MyBatis项目进行CRUD操作项目示例
1.1.需求分析
通过使用 SpringBootMyBatis整合实现一个对数据库中的 users 表的 CRUD
1.2.创建工程
04_springboot_mybatis
1.3.pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.2.RELEASE/version/parentgroupIdcom.by/groupIdartifactId04_springboot_mybatis/artifactIdversion1.0-SNAPSHOT/versionpropertiesjava.version1.8/java.version/propertiesdependencies!-- springBoot 的启动器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- Mybatis 启动器 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.0.1/version/dependency!-- mysql 数据库驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.38/version/dependency!-- druid 数据库连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.0.9/version/dependency!-- 添加 junit 环境的 jar 包 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.0/version/dependency/dependencies
/project1.4.application.properties
spring.datasource.driver-class-namecom.mysql.jdbc.Driver
spring.datasource.urljdbc:mysql://localhost:3306/springboot
spring.datasource.usernameroot
spring.datasource.password1111
spring.datasource.typecom.alibaba.druid.pool.DruidDataSourcemybatis.type-aliases-packagecom.by.pojologging.level.com.by.mapperDEBUG1.5.启动类
SpringBootApplication
MapperScan(com.by.mapper) // MapperScan 用户扫描MyBatis的Mapper接口
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
2.添加用户
2.1.数据表设计
CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,nam varchar(255) DEFAULT NULL,sex int(11) DEFAULT NULL,pwd varchar(255) DEFAULT NULL,birth datetime DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8;2.2.pojo
public class User {private Integer id;private String nam;private String pwd;private Integer sex;private Date birth;
}2.3.mapper
public interface UserMapper {public void insertUser(User user);
}?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.by.mapper.UserMapperinsert idinsertUser parameterTypeuserinsert into user(nam,pwd,sex,birth) values(#{nam},#{pwd},#{sex},#{birth})/insert
/mapper2.4.service
Service
Transactional
public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic void addUser(User user) {this.userMapper.insertUser(user);}
}2.5.junit
/*** main方法* ApplicationContext acnew * ClassPathXmlApplicationContext(classpath:applicationContext.xml);* junit与spring整合* RunWith(SpringJUnit4ClassRunner.class)让junit与spring环境进行整合* Contextconfiguartion(classpath:applicationContext.xml) * junit与SpringBoot整合 * RunWith(SpringJUnit4ClassRunner.class)让junit与spring环境进行整合* SpringBootTest(classes{App.class})加载SpringBoot启动类。启动springBoot*/
RunWith(SpringJUnit4ClassRunner.class)
SpringBootTest(classes{App.class})
public class UserServiceTest {Autowiredprivate UserService userService;Testpublic void testAddUser(){User user new User();user.setId(1);user.setNam(二狗);user.setPwd(111);user.setSex(1);user.setBirth(new Date());this.userService.addUser(user);}
}2.6.controller
Controller
RequestMapping(/user)
public class UserController {Autowiredprivate UserService userService;/*** 页面跳转*/RequestMapping(/{page})public String showPage(PathVariable String page) {return page;}/*** 添加用户*/RequestMapping(/addUser)public String addUser(User user) {this.userService.addUser(user);return ok;}
}2.7.thymeleaf
add.html
!DOCTYPE html
html
headmeta charsetUTF-8title添加用户/title
/head
body
h3新增用户/h3
hr/
form th:action{/user/addUser} methodpost姓名input typetext namenam/br/密码input typetext namepwd/br/性别input typeradio namesex value1/女input typeradio namesex value0/男br/生日input typetext namebirth/br/input typesubmit value确定/br/
/form
/body
/html
2.8.测试 3.查询用户
3.1.mapper
public ListUser listUser();select idlistUser resultTypeuserselect * from user
/select3.2.service Overridepublic ListUser listUser() {return userMapper.listUser();}3.4.controller /*** 查询全部用户*/RequestMapping(/listUser)public String listUser(Model model) {ListUser list this.userService.listUser();model.addAttribute(list, list);return list;}3.5.thymeleaf
list.html
!DOCTYPE html
html xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title首页/titlestyle typetext/csstable {border-collapse: collapse; font-size: 14px; width: 80%; margin: auto}table, th, td {border: 1px solid darkslategray;padding: 10px}/style
/head
body
div styletext-align: centerspan stylecolor: darkslategray; font-size: 30px欢迎光临/spanhr/table classlisttrthid/thth姓名/thth密码/thth性别/thth生日/th/trtr th:eachuser : ${list}td th:text${user.id}/tdtd th:text${user.nam}/tdtd th:text${user.pwd}/tdtd th:text${user.sex1}?男:女/tdtd th:text${#dates.format(user.birth,yyyy-MM-dd)}/td/tr/table
/div
/body
/html3.6.测试 4.用户登录
4.1.mapper
public Users login(User user);select idlogin parameterTypeUser resultTypeUserselect * from user where nam#{nam} and pwd#{pwd}/select4.2.service Overridepublic Users login(User user) {return userMapper.login(user);}4.4.controller RequestMapping(/login)public String login(Model model, User user, HttpSession session) {User loginUser usersService.login(user);if(user!null){session.setAttribute(loginUser, loginUser);return redirect:/user/listUser;}return login;}添加PageController
Controller
public class PageController {RequestMapping(/)public String showLogin(){return login;}
}4.5.thymeleaf
login.html
html
head
meta charsetUTF-8
title注册/title
/head
body
centerh3登录/h3hr/form th:action{/user/login} methodpost账号input typetext namenam/br/密码input typetext namepwd/br/input typesubmit value确定/br//form
/center
/body
/html
4.6.测试 5.SpringBoot整合日期转换器
5.1.添加日期转换器
import java.text.ParseException;
import java.util.Date;import org.springframework.core.convert.converter.Converter;
import org.apache.commons.lang3.time.DateUtils;
public class DateConverter implements ConverterString, Date{Overridepublic Date convert(String str) {String[] patterns new String[]{yyyy-MM-dd,yyyy-MM-dd hh:mm:ss,yyyy/MM/dd,yyyy/MM/dd hh:mm:ss,MM-dd-yyyy,dd-MM-yyyy};try {Date date DateUtils.parseDate(str, patterns);return date;} catch (ParseException e) {e.printStackTrace();}return null;}}5.2.配置日期转换器 说明 WebMvcConfigurer配置类其实是Spring内部的一种配置方式采用JavaBean的形式来代替传统的xml配置文件形式针对框架进行个性化定制例如拦截器类型转化器等等。 代码示例 import com.by.converter.DateConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Component
public class MyConfig implements WebMvcConfigurer {Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(new DateConverter());}}6.SpringBoot整合拦截器
6.1.添加拦截器
package com.by.interceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.by.pojo.Users;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;public class LoginInterceptor implements HandlerInterceptor{Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler)throws Exception {Users user (Users) request.getSession().getAttribute(user);if(user!null){return true;}response.sendRedirect(/);return false;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {}}6.2.配置拦截器
修改MyConfig //mvc:interceptorsOverridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns(/emp/**);}