IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。 -> 正文阅读

[Java知识库]分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。

数据的增删改查是如何完成的呢?过程你知道吗?流程你会画吗?MVC你真的学会了吗?其中运用的原理你真的知道吗?让我们更深层次的去了解。

第一部分:回顾java基础.面向对象与面向过程。

?上面图中详细描绘了面向过程的思想。

一条路线:以自己为主线,亲力亲为的完成一项任务。

上面的主线是老师亲力亲为的去一个个的催学生健康打卡。


面向对象的思想:将一项任务进行分解,让多个对象去完成。

上面的图是

老师将健康打卡的任务交给执行负责人。

执行负责人将健康打卡任务交给班长。

班长将健康打卡任务交给寝室长。

寝室长健康打卡将任务交给寝室成员 。

这就是对面向对象最好的理解。

上面我们理解了面向对象的基本理论。那请看下面的图。你是真的理解了吗?如果下面的图你了解的话,流程明白的话。说明你真的明白了。



注意:上面的图是利用了面向对象的思想哦。

实操部分

?观察流程你要思考?建几个包几个类几个jsp导入那些框架,用那种方案连接数据库。

实操目标要将上面的图中数据显示在浏览器中。

第一步:你要有一个页面去显示数据。所以定义一个jsp文件用于显示mysql中的数据。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息对话列表</title>
<style type="text/css">
*{
/* background: linear-gradient(to right,red,pink,blue); */
background:white

font-size:30px;
font-weight: bold;
}

input{
				
					 color: white; 
					 font-weight: bold;
					  padding-bottom:10px; 
					  padding-top: 5px;  
					  padding-left:10px;
					  padding-right:10px;
					  border-width: 0px;

}

.in1{
	background-color: lightcyan;
	color: black;

}
.in2{
	background-color: darkcyan;
	color: black;
}

.in3{
background-color:red ;
color: black;

}

in4{
background-color:black;
color: white;

}
caption {
font-size: 40px;
font-weight:bold ;
border: 2px solid pink;
background: white;
text-shadow: 3px 1px paleturquoise;
}

th{

font-size: 40px;
font-weight:bold ;
border: 2px solid pink;
background: white;
text-shadow: 3px 1px red;

}

tr{

font-size: 20px;
font-weight: bold;
border-radius: 6px;
background: lightcyan;


}

td{

font-size: 20px;
font-weight: bold;
border-radius: 6px;
background: pink;


}
</style>
</head>
<body>


	<!-- 使用表格展示从数据库中获取的所有学生信息 -->
	<div align="center">
		<table border="3" style="width: 900px;text-align: center;border-collapse: collapse;">
			<caption>学生书籍信息列表</caption>
			<tr>
				<th>书籍编号</th>
				<th>书籍名称</th>
				<th>书籍价格</th>
				<th>书籍数量</th>
				<th>书籍作者</th>
				<th>操作</th>
				
			</tr>
			<c:forEach items="${studentbook}" var="book" varStatus="v">
				<tr>
					<td>${book.id}</td>
					<td>${book.bookname}</td>
					<td>${book.bookprick}</td>
					<td>${book.boooknumber}</td>        
					<td>${book.bookautor}</td>
					
					<td style="width: 400px;">
					<a href="bookaddstudent2.jsp"><input type="button" value="增加"  class="in1"></a>&nbsp;
					<a href="bookUpdateStudent.jsp?index=${v.count-1 }"><input type="button" value="修改" class="in2"></a>&nbsp;
					<a href="bookDeleteStudent?id=${stu.id }"><input type="button" value="删除" class="in3"></a>&nbsp;
					</td>
					
					
					
				</tr>
			</c:forEach>
		</table>
	</div>
	
<h3 style="color:white; background: black;">
MVC全名是Model View Controller,<br>
是
@@1模型(model)<br>
@@2-视图(view)<br>
@@3-控制器(controller)的缩写,<br>
一种软件设计典范,<br>
用一种业务逻辑、数据、界面显示分离的方法组织代码,<br>
将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,<br>
不需要重新编写业务逻辑。<br>
MVC被独特的发展起来用于映射传统<br>
的输入、处理和输出功能在一个逻辑<br>
的图形化用户界面的结构中。<br>
</h3>
</body>
</html>

?第二步定义一个页面解决乱码问题这里运用到了,Servlect的过滤器。/*全部拦截。

package com.student.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * 用于拦截所有浏览器请求
 */
@WebFilter("/*")
public class MyFilter implements Filter {

    /**
     * Default constructor. 
     */
    public MyFilter() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Filter#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		//设置请求和响应的字符编码格式为UTF-8
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");
		request.setCharacterEncoding("UTF-8");
		chain.doFilter(request, response);
	}

	/**
	 * @see Filter#init(FilterConfig)
	 */
	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}

第三步.定义一个控制层的Servlect,用于发送信息,和接收信息。

首先你要明确你的数据库中发给servlect控制层时,用什么方式存放起来。方案一:实体类。方案二:四大域,利用list集合存放MAP集合的方式存放起来。

请看代码

package com.student.controller;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.student.service.IStudentService;
import com.student.service.StudentServiceImp;

/**
 * Servlet implementation class HomeServlet
 */
@WebServlet("/HomeServlet")
public class HomeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HomeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//将浏览器的任务接收,发给业务逻辑层处理
		IStudentService service=new StudentServiceImp();
		List<Map<String, Object>> oList=service.getStudents();
		HttpSession session =request.getSession();
		
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

?控制层将任务发送给了逻辑层接口,而逻辑层的接口要发送给数据访问层的接口,数据访问层的接口将查询命令发送给数据访问层的实体类。在这之前要实现连接数据库。然后将数据层层返回个控制层的Servlect.


代码编译

package comstudentbookservlice;

import java.util.List;
import java.util.Map;

public interface IStudentBookservlice {
	
	List<Map<String, Object>> getStudentBooks();

}

package comstudentbookservlice;

import java.util.List;
import java.util.Map;

import comstudentbookdao.IStudentBookdao;
import comstudentbookdao.StudentBookdaoImp;

public class StudentBookserviceImp implements IStudentBookservlice {

	@Override
	public List<Map<String, Object>> getStudentBooks() {
		
		return ;
	}

}

package comstudentbookdao;

import java.util.List;
import java.util.Map;

public interface IStudentBookdao {
	
	List<Map<String, Object>> getStudentBooks();
	

}

package comstudentbookdao;

import java.util.List;
import java.util.Map;

import com.student.utils.DBUtil;

public class StudentBookdaoImp implements IStudentBookdao {

	@Override
	public List<Map<String, Object>> getStudentBooks() {
		
		return ;
		
	}
}

?控制层将任务发送给了逻辑层接口,而逻辑层的接口要发送给数据访问层的接口,数据访问层的接口将查询命令发送给数据访问层的实体类。在这之前要实现连接数据库。然后将数据层层返回个控制层的Servlect.理思路。

请看下面的代码。


?

?

?

?

?


?

?上面的流程以完毕。

运行结果图

?增删改查自行思考。

这是我上次课所学icon-default.png?t=LA92https://blog.csdn.net/qq_56248592/article/details/121840541

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 15:48:10  更:2021-12-14 15:49:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:05:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码