漂亮企业网站源码深圳做网站公司有那些
2026/4/5 5:06:09 网站建设 项目流程
漂亮企业网站源码,深圳做网站公司有那些,艾乐时代 网站建设,上海长宁网站建设前端 前端使用的是开源框架#xff0c;主题的框架主要是由Bootstrap实现 后端 后端采用SpringBoot框架和SpringMVC的三层架构模型 Controller负责前后端的交互#xff0c;service层负责处理逻辑#xff0c;Dao层负责处理数据库的交互 导入所有的依赖#xff08;spring和…前端前端使用的是开源框架主题的框架主要是由Bootstrap实现后端后端采用SpringBoot框架和SpringMVC的三层架构模型Controller负责前后端的交互service层负责处理逻辑Dao层负责处理数据库的交互导入所有的依赖spring和mybatis和mysql和lombokSpringweb负责提供一个整体的框架mybatis负责jdbc代码mysql driver负责进行和数据库的链接Lombok负责写get和set方法配置文件yml格式Applicantion部分是这个项目的名字Datasource部分是配置和数据库相关的Mybatis部分是开启驼峰自动转换以及为后续使用动态绑定sql提供路径Logging部分主要是为了后续使用slf4j框架打印日志前后端代码实现用户登录部分创建实体类model这里的实体类要求和数据库中的用户表的字段相对应要求在配置文件中开启驼峰自动转换加一个Data让Lombok帮我们写get and set 和无参的构造方法三层架构模型MVCController这一层主要就是处理和前端的数据交互然后调用service层这里主要干的活就是当前端传入用户的姓名和密码的时候首先会对传入的信息进行非空校验为空就返回false不为空就进行判断首先会使用service层调用queryByName进行查询如果查不到这个用户就直接返回false如果查询到了就会进行对比密码如果密码对的就会设置session这样就可以让http有记忆让后端知道后续是谁在进行操作注意点这里使用equals的时候要把不为空的常量写在前面这样就不会报空指针的异常这里需要注意我创建了一个常量类来存储session因为后续使用的地方很多逐个找去改很麻烦所以我这里使用常量类去管理Service层Service层这一层就是对逻辑的处理负责对数据进行处理返回给前端发送给后端主要就是调用dao层访问数据库查询是否有这个用户Dao层Dao层负责和数据库进行交互的这里的逻辑也很清晰把上一层传过来的用户名进行查询如果查不到就返回null前端使用jQuery当用户点击登录按钮的时候向后端发送ajax请求并从输入框中取值并发送给后端等待后端返回值进行判断成功就跳转到图书页面错误就弹框提示成功错误展示所有的图书按照正常的逻辑来说我只需要一股脑把数据丢给前端让前端去处理一个页面要留多少个数据实体类这个实体类存在的意义就是记录当前在哪一页一页要展示多少个数据最核心的是这个offset这个标志在哪里开始是用来数据库查询的关键核心这个是在后端查到的信息首先是总数一共在后端查到多少条每一条的详细消息这里之所以使用泛型不使用其他的是因为我返回来的里面有一个list里面装的是详细的信息如果我使用list的话就会套娃就比较麻烦三层架构Controller层这一层的难度就比较大了让我细细捋一下因为你要返回给前端的不只是数据如果发生了错误咋整是不是需要告诉前端是哪里发生了错误吧你总不可能直接就返回一个null就让前端去猜吧那你要被问候了这里一共分为三个状态因为这三个状态对应着不同的含义和数据所以我们可以定义一个枚举类定义一个Result类这个类内容包括状态错误信息数据这个类为什么会存在这里就是你要返回给前端的详细内容SuccessunloginfailSuccess状态成功的话你就要给前端返回数据和状态对吧因为返回数据所以这里需要使用泛型去传递这个数据Unlogin状态这里主要就是定义了用户未登录的状态Fail状态Fail状态主要是失败失败之后就要打印这个错误信息再回到controller层首先我们在登录界面的时候就设置了sessionid了所以这里我们可以根据sessionid去查询这个用户是否存在只要是不存在或者未登录的都统一返回未登录只有登录成功之后才允许把数据传递到service层Service层Service的逻辑很简单因为这里只需要处理一次展示的数据即可这里需要注意的点是定义一个count表示从后端查询到的总数据的条数定义一个list去接收dao层根据要求查到的条数最核心的点数据库存储的时候状态使用012来表示要定义一个枚举类把他转变过来这个枚举类主要的作用就是把数据库存储的数字按照对应关系变成汉字枚举类不需要初始化就可以调用由JVM自动初始化Service层进行详细的逻辑处理Dao层因为前面我们传入了pagerequest请求里面包含参数offset和pageSize表示一次查询多少个从哪里到哪里前端这里的前端使用了jQuery自带的分页插件使用的时候需要引一下依赖才可以使用这个是那个分页块的名字后续在使用翻页的时候需要保持名字一致这里当打开网页的时候会执行getbooklist这个方法然后执行这个方法的时候向后端发送ajax请求在写访问的路径的时候需要加一个location.search这个方法的作用就是在url中获取之后的值这里你可能会有疑问这个判断resultnull会不会是多余的一开始我也寻思是多余的这个存在的意义就是防止极端情况比如result为null的时候不用执行result.data这个否则执行的话后端会报空指针异常的问题Jqpageinator这个就好比货架管理员ajax在后端获取到数据之后他负责把这些数据放到货架上去TotalCounts表示的是元素的总个数pageSize表示的是一页有多少个元素visiblepages表示一次可视的页数有多少个按钮currentPage表示当前的页码onpagechange当你点击页码的时候时候Jqpageinator会自动读取到page和typeinit是初始化这个页面的时候产生的只要是初始化非人为点击就不执行跳转如果是点击就跳转同时把page的值赋值给currentpage这个时候就会getbooklist这个方法这个时候我们的location.search就发挥作用的读取之后的值并赋值个后端对应的参数注意这里的参数currentPage必须和后端的参数一样否则后端就没办法返回正确的值核心注意点导入jqpaginator依赖在进入方法的时候需要加上一个location.search作用是用来获取到后续?之后的参数方便让后端能返回对应的信息在后续使用翻页的时候记得要加上和后端对应的参数名称效果新增图书Controller层首先新增图书本质就是insert数据要进行判空处理要求前端输入的值不能为空如果为空就返回参数不合法这个添加图书可能会抛异常所以需要使用trycatch去捕获异常Service层Service层的核心逻辑就是处理添加图书的处理逻辑Dao层Dao层负责的是进行和数据库的交互因为是添加图书所以这里使用的是insert语句为什么不用动态sql呢是因为这里输入的都是必须的信息所以就不用动态sql前端当输入所有的消息的时候如果一个个去提交就比较麻烦所以这里提交一个表单的形式比较便捷当点击提交的时候发送Ajax请求如果后端返回空字符串就说明成功那就可以进行跳转到图书首页否则就无法跳转弹框提示效果展示更新图书Controller层这里你可能会有疑问这里不是更新吗为什么会出现一个查询的方法首先你修改的时候是不是需要给别人提供修改之前的信息不给别人提供修改前的信息别人怎么知道要修改啥Service层Service层的逻辑也很简答service层只需要调用dao层然后处理一下逻辑即可Dao层Dao层的话因为是更新所以就是修改修改的话使用的就是动态的sql因为并不是每个都修改推荐使用的是xml的根式使用set标签和if标签即可这里需要注意的点就是这个需要配置文件前端首先当页面一加载就会执行Ajax请求这里加一个location.search的作用就是在url中获取参数当有数据的时候就会获取出来由于页面加载的时候url参数可能是其他的这个ajax不管那么多的会把url中的全部取出来向后端请求数据只要后端返回不为空就会继续执行当我们点击修改的时候url会变成这样这个时候ajax就会把这个book.id传到后端接受bookId这个参数的接口中去这里的bookId必须和后端的bookId一致这样才能确保你点开的时候能获取到对应Id的信息Update当点击更新的时候同样会向后端发送一个ajax请求由于这里的数据太多并且存在于表单之中所以就可以使用选中这个表单之后序列化把这个数据往后端传输成功就进行跳转失败就弹窗提示整体失败就打印失败的日效果展示删除删除不是真的删除而是把删除标志置为0不让他显示出来就行Controller层删除的本质就是更新所以就调用更新的方法Service层Dao层这里使用的也是动态sql进行拼接如果不想使用就可以使用静态的sql都是可以的但是由于有现成的我也懒的写多一份前端当点击删除的时候首先会弹框提示是否删除如果点击确定就会给isDelete赋值为true就会执行后续的Ajax请求然后向后端发送id和status状态码进行修改成功就只需要跳转页面就可示例图批量删除Controller层批量删除的逻辑是接受前端返回的数据可能是数组集合都有可能这里需要使用参数绑定因为我接受的是使用集合的方式这个注解要在url中获取到idsService层Service层接受数据之后进行逻辑处理即可Dao层Dao层采用标签foreach进行拼接即可把ids这个集合里面所有的元素全部取出来拼接成集合即可前端当点击批量删除的时候就会弹框提示如果点击确定那么就会执行if语句创建一个数组然后把你选中的所有id都放到这个数组之间然后发送给后端等后端返回数据进行判断数据库采用Mybatis框架数据库非常简单只有两张表一张是用户表一张是图书信息表只需要导入对应的依赖即可第一个是spring框架mysql driver后面的是mybatis的驼峰自动转换和动态sql的位置第三个是日志框架打印详细的日志用户信息表图书信息表

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询