• 实用工具 小学数学练习 字帖生成 在线画板 函数绘制 拼音字母表 在线词典 黄历查询 中国历史 Excel函数 模拟请求 json格式化
  • 最新更新
  • 全站导航
  • 登陆/注册
  • 原创投稿
名师互学网
  • 知识解答知识解答
  • 合同文书合同文书
  • 教育问答教育问答
  • 最新资讯最新资讯
  • 学术期刊学术期刊
  • 资料下载资料下载
高考报名时间2022年11月1日还剩 天 距离2023年6月7日高考还有 天
  • 网站首页
  • 小学
  • 初中
  • 高中
  • 语言
  • 会计
  • 驾考
  • 学历
  • 司法
  • IT
  • 医护
  • 建筑
  • 作文
栏目分类:
  • 前沿技术
  • 软件开发
  • 系统运维
  • 产品运营
  • 生活办公
  • 面试经验
  • 考试题库
子分类:
  • 人工智能
  • 大数据
  • 云计算
  • 区块链
  • 物联网
  • 深度学习
  • 机器学习
  • NLP
  • 计算机视觉
  • 语音识别
  • 其他
  • 大数据系统
  • 数据可视化
  • 数据挖掘与分析
  • 其他
  • Docker/k8s
  • 虚拟化
  • 云平台
  • 其他
  • 基本原理
  • 数字货币
  • 智能合约
  • EOS应用
  • 其他
  • 通讯技术
  • 嵌入式开发
  • 单片机
  • 物联网应用
  • HarmonyOS
  • 其他
  • 后端开发
  • Web开发
  • 移动开发
  • 游戏开发
  • Python
  • Java
  • 架构设计
  • C/C++/C#
  • PHP
  • .Net
  • Go语言
  • R语言
  • asp
  • Html/CSS
  • 易语言
  • JavaScript
  • 汇编语言
  • Vue.js
  • React.JS
  • Ruby开发
返回
名师互学网
名师互学网用户登录
名师互学网
快速导航关闭
当前搜索
当前分类
前沿技术 软件开发 系统运维 产品运营 生活办公 面试经验 考试题库
子分类
人工智能 大数据 云计算 区块链 物联网 深度学习 机器学习 NLP 计算机视觉 语音识别 其他 大数据系统 数据可视化 数据挖掘与分析 其他 Docker/k8s 虚拟化 云平台 其他 基本原理 数字货币 智能合约 EOS应用 其他 通讯技术 嵌入式开发 单片机 物联网应用 HarmonyOS 其他 后端开发 Web开发 移动开发 游戏开发 Python Java 架构设计 C/C++/C# PHP .Net Go语言 R语言
实用工具
学习工具 小学数学练习 字帖生成 在线画板 函数绘制 拼音字母表 在线词典 黄历查询 亲戚关系计算 安全期计算 中国历史 Excel函数 模拟请求 json格式化 浏览器指纹
热门搜索
路由器设置 木托盘 宝塔面板 儿童python教程 心情低落 朋友圈 vim 双一流学科 专升本 我的学校 日记学校 西点培训学校 汽修学校 情书 化妆学校 塔沟武校 异形模板 西南大学排名 最精辟人生短句 6步教你追回被骗的钱 南昌大学排名 清朝十二帝 北京印刷学院排名 北方工业大学排名 北京航空航天大学排名 首都经济贸易大学排名 中国传媒大学排名 首都师范大学排名 中国地质大学(北京)排名 北京信息科技大学排名
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot模拟数据库开发

Java 更新时间:2026-04-07 23:38:16 发布时间:1521天前 IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot模拟数据库开发

Spring boot模拟数据库开发 准备工作

把准备的后台模板准备好,地址:

链接:https://pan.baidu.com/s/13mNCQ18_nl6DHpxfKl4ZFw
提取码:love

导所需要的依赖


    org.springframework.boot
    spring-boot-starter-thymeleaf



    org.springframework.boot
    spring-boot-starter-web



    org.projectlombok
    lombok
    true


    org.springframework.boot
    spring-boot-starter-test
    test

    然后把网页模板都导入到templates文件夹下

2.把静态资源导入到static文件夹下

3.模拟数据库操作

    pojo层创建

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    //部门表
    public class Development {
        private Integer id;
        private String developmentName;
    
    }
    
    @Data
    @NoArgsConstructor
    //员工表
    public class Employee {
        private Integer id;
        private String lastName;
        private String email;
        private Integer gender;
        private Development development;
        private Date birth;
    
        public Employee(Integer id, String lastName, String email, Integer gender, Development development) {
            this.id = id;
            this.lastName = lastName;
            this.email = email;
            this.gender = gender;
            this.development = development;
            this.birth=new Date();
        }
    }
    

    dao层创建

    @Repository
    public class DevelopmentDao {
        //模拟数据库管理数据
        public static Map developments=null;
        static {
            developments=new HashMap();
    
            developments.put(101,(new Development(101,"教育部")));
            developments.put(102,(new Development(102,"人事部")));
            developments.put(103,(new Development(103,"运营部")));
            developments.put(104,(new Development(104,"技术部")));
            developments.put(105,(new Development(105,"后勤部")));
        }
        //获取部门表的所有信息
        public Collection getDevelopmentAll(){
            return developments.values();
        }
    
        //通过获取id获得部门的信息
        public Development getDevelopmentById(Integer id){
            return developments.get(id);
        }
    }
    
    
    @Repository
    public class EmployeeDao {
        //模拟数据管理员工表
        public static Map employees=null;
        static {
            employees=new HashMap();
    
            employees.put(1001,new Employee(1001,"Aa","A1157627585@qq.com",0,new Development(101,"教育部")));
            employees.put(1002,new Employee(1002,"Bb","B1157627585@qq.com",1,new Development(102,"人事部")));
            employees.put(1003,new Employee(1003,"Cc","C1157627585@qq.com",0,new Development(103,"运营部")));
            employees.put(1004,new Employee(1004,"Dd","D1157627585@qq.com",1,new Development(104,"技术部")));
            employees.put(1005,new Employee(1005,"Ee","E1157627585@qq.com",0,new Development(105,"后勤部")));
        }
    
        //获得所有员工的信息
        public Collection getEmployeeAll(){
            return employees.values();
        }
    
    
        //根据id获取员工的信息
        public Employee getEmployeeById(Integer id){
            return employees.get(id);
        }
    
        //主键自增
        public static Integer initEmployeeid=1006;
        //增加一个员工
        public void addEmployee(Employee employee){
            //如果添加的员工id为空
            if (employee.getId()==null){
                //那么就自动+1
                employee.setId(initEmployeeid++);
            }
    
            //把所添加的信息添加到数据库中
            employees.put(employee.getId(),employee);
        }
    
        //根据id删除一个员工
        public void deleteEmployee(Integer id){
            employees.remove(id);
        }
    
    }
    
    
首页实现

    扩展首页的mvc配置

     //添加一个视图控制器,来控制跳转的方式
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/").setViewName("login");
            registry.addViewController("/index.html").setViewName("login");
            registry.addViewController("/main.html").setViewName("index");
        }
    

    需要关闭thymleaf引擎的缓存机制

    #关闭thymleaf缓存机制
    spring.thymeleaf.cache=false
    

    网页表头需要添加thymleaf的命名空间

    xmlns:th="http://www.thymeleaf.org"
    

    需要把网页改成thymleaf格式

    
    
    
    

    所有页面的静态资源都需要使用thymleaf接管,

    其他也都是需要改,在线的连接不需要改

国际化

首先需要修改File Encodings

创建i18n文件夹,并且创建login.properties

把网页修改成国际化

Please sign in

© 2017-2018

中文 English

th:text:#{}来配置国际化信息

自定义一个组件LocaleResolver来控制语言的国际化

//解析请求
@Override
public Locale resolveLocale(HttpServletRequest request) {
    //获取语言的请求
    String language = request.getParameter("l");
    Locale locale = Locale.getDefault();//如果没有所选的语言就是默认的
    //如果获取的链接携带了国际化的参数
    //如果选择的语言不为空
    if(!StringUtils.isEmpty(language)){
        //zh_CN
        String[] split = language.split("_");
        //国家,地区
        locale = new Locale(split[0], split[1]);

    }

    return locale;
}

然后将自定义组件配置到spring容器中,也就是@Bean

    //这个是为了实现国际化
    public LocaleResolver localResolver(){
        return new MyLocalResolver();
    }
登录功能实现

因为数据库是伪造的,所以登录的时候无论什么都能登录进去

写一个登录的控制器LoginController

@Controller
public class LoginController {
    @RequestMapping("/user/login")
    public String login(@RequestParam("username")String username,
                        @RequestParam("password")String pwd,
                        Model model, HttpSession session) {
        System.out.println("debug==>"+username);
        if (!StringUtils.isEmpty(username)&&"123456".equals(pwd)) {
            session.setAttribute("loginUser", username);
            return "redirect:/main.html";
        } else {
            model.addAttribute("msg", "密码或者用户名输入错误,请重新登录!");
            return "login";
        }
    }
}

由于没有提示,所以需要在前端加一个标签来提示

展示登录页面

登录拦截器

创建一个拦截器方法LoginHandlerInterceptor,为了拦截那些没有登录就进入主界面的操作

public class LoginHandlerInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //登录成功后,应该有用户的session
        Object loginUser = request.getSession().getAttribute("loginUser");
        if (loginUser==null){//没有登录
            request.setAttribute("msg","没有权限,请先登录");
            request.getRequestDispatcher("/index.html").forward(request,response);
            return false;
        }else {
            return true;
        }

    }

}

把LoginHandlerInterceptor配置到spring容器中,@Bean.

//添加一个拦截器,为了拦截那些没有登录就进入主界面的操作
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("-->
                

            
        

增加员工展示

修改员工信息

添加修改员工信息功能

@GetMapping("/updateEmp/{id}")
public String toUpdateEmp(@PathVariable("id") Integer id, Model model){
    Employee employeeById = employeeDao.queryEmployeeById(id);
    System.out.println(employeeById);
    model.addAttribute("emp",employeeById);

    Collection developments = developmentDao.getDevelopments();
    model.addAttribute("developments",developments);

    return "emp/update";
}

@PostMapping("/updateEmp")
public String updateEmp(Employee employee){
    System.out.println("update==>" + employee);
    employeeDao.updateEmplyee(employee);
    return "redirect:/emps";
}

创建一个update.html


修改页面展示

删除及404处理

添加删除功能

@RequestMapping("/delete/{id}")
public String Deleteemp(@PathVariable("id") Integer id){
    employeeDao.deleteEmplyee(id);
    return "redirect:/emps";
}

404处理页面只要放入到/templates/error文件夹下面,然后spring就会自动识别,如果跳转的页面不存在,就会自动跳转至此。


好了,一个springboot模拟数据库开发的网站就到此结束了,如果有什么不对的地方,请及时说出,我也会即使改正的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727798.html

上一篇 muduo库网络部分

下一篇 ssm简单整合

Java相关栏目本月热门文章

  • 1【Linux驱动开发】设备树详解(二)设备树语法详解
  • 2别跟客户扯细节
  • 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
  • 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
  • 5【分页】常见两种SpringBoot项目中分页技巧
  • 6一文带你搞懂OAuth2.0
  • 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
  • 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
  • 9JavaSE - 封装、static成员和内部类
  • 10树莓派mjpg-streamer实现监控及拍照功能调试
  • 11用c++写一个蓝屏代码
  • 12从JDK8源码中看ArrayList和LinkedList的区别
  • 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
  • 14在openwrt使用C语言增加ubus接口(包含C uci操作)
  • 15Spring 解决循环依赖
  • 16SpringMVC——基于MVC架构的Spring框架
  • 17Andy‘s First Dictionary C++ STL set应用
  • 18动态内存管理
  • 19我的创作纪念日
  • 20Docker自定义镜像-Dockerfile
热门相关搜索
路由器设置 木托盘 宝塔面板 儿童python教程 心情低落 朋友圈 vim 双一流学科 专升本 我的学校 日记学校 西点培训学校 汽修学校 情书 化妆学校 塔沟武校 异形模板 西南大学排名 最精辟人生短句 6步教你追回被骗的钱 南昌大学排名 清朝十二帝 北京印刷学院排名 北方工业大学排名 北京航空航天大学排名 首都经济贸易大学排名 中国传媒大学排名 首都师范大学排名 中国地质大学(北京)排名 北京信息科技大学排名 中央民族大学排名 北京舞蹈学院排名 北京电影学院排名 中国戏曲学院排名 河北政法职业学院排名 河北经贸大学排名 天津中德应用技术大学排名 天津医学高等专科学校排名 天津美术学院排名 天津音乐学院排名 天津工业大学排名 北京工业大学耿丹学院排名 北京警察学院排名 天津科技大学排名 北京邮电大学(宏福校区)排名 北京网络职业学院排名 北京大学医学部排名 河北科技大学排名 河北地质大学排名 河北体育学院排名
学习工具
代数计算器
三角函数
解析几何
立体几何
知识解答
教育知识
百科知识
生活知识
常识知识
写作必备
作文大全
作文素材
句子大全
实用范文
关于我们
关于我们
联系我们
网站地图
交流群

名师互学网交流群

名师互学网客服

名师互学网客服

名师互学网 版权所有 (c)2021-2022 ICP备案号:晋ICP备2021003244-6号

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号