MVC模型
MVC模型是模型(model)、视图(view)、控制器(controller)三层架构的设计模式,用于把前端页面的展现与后端业务分离。
模型:主要包含业务数据和业务逻辑。在模型层,还会涉及到用户发布的服务,在服务中会根据不同的业务需求,更新业务模型中的数据。
视图:呈现给用户的部分,是用户和程序交互的接口,用户会根据具体的业务需求,在View视图层输入自己特定的业务数据,并通过界面的事件交互,将对应的输入参数提交给后台控制器进行处理。
控制器:用来处理用户输入数据,已经更新业务模型的部分。控制器中接收了用户与界面交互时传递过来的数据,并根据数据业务逻辑来执行服务的调用和更新业务模型的数据和状态。
分层模式
分层模式:分层体系架构模式模式也称为多层体系架构模式。它可以用来构造可以分解为子任务组的程序,每个子任务都处于一个特定的抽象级别。每个层都为下一个提供更高层次服务。在分层架构中的组件被划分成几个层,每个层代表应用的一个功能.分层架构本身没有规定要分成多少层,大部分的应用会分成表现层,业务层,持久层和数据库层.小的应用有时候会将业务层和持久层合在一起,更大规模的应用可能会划分更多的层,比如调用外部服务的层.
mysql部分
#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;
#创建表
create table t_user
(
uid int primary key auto_increment,
username varchar(20),
password varchar(20),
phone varchar(11),
address varchar(50)
);
insert into t_user(username,password,phone,address)values("张三",'666','18965423548','南阳');
insert into t_user(username,password,phone,address)values("李四",'333','18754263548','许昌');
insert into t_user(username,password,phone,address)values("小美",'123','18565234759','信阳');
select * from t_user where username=? and password=?
select * from t_user;
create table t_goods
(
gid int primary key auto_increment,
gname varchar(20),
price double,
mark varchar(100)
);
insert into t_goods(gname,price,mark)values('泡面',4.5,'够香够辣就是这个味');
insert into t_goods(gname,price,mark)values('火腿',8.5,'肉质细腻Q弹');
insert into t_goods(gname,price,mark)values('雪碧',3.5,'清爽冰凉随心爽');
java部分
先写一个主页的代码
创建.jsp写修改的代码
用实体类代码:
package bean;
public class
Goods {
private Integer gid;
private String gname;
private String price;
private String mark;
public Integer getGid() {
return gid;
}
public void setGid(Integer gid) {
this.gid = gid;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getmark() {
return mark;
}
public void setmark(String mark) {
this.mark = mark;
}
@Override
public String toString() {
return "Goods{" +
"gid=" + gid +
", gname='" + gname + '\'' +
", price=" + price +
", varchar='" + mark + '\'' +
'}';
}
}
然后写java代码
FindbyId代码
@WebServlet("/findById")
public class FindById extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int gid=Integer.parseInt(req.getParameter("gid"));
GoodsDao goodsDao=new GoodsDao();
Goods goods=goodsDao.findById(gid);
if (goods!=null){
//查询商品成功,存入req域中 然后请求转发到页面展示数据
req.setAttribute("goods",goods);
req.getRequestDispatcher("showGoods.jsp").forward(req,resp);
}else{
req.setAttribute("error_msg","修改出了异常");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
}
然后JDBCutil代码
public class JDBCUtil {
public static String driver="com.mysql.cj.jdbc.Driver";
public static String url="jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezpne=UTC";
public static String user="root";
public static String password="root";
private static Connection con=null;
private static PreparedStatement ps=null;
private static ResultSet rs=null;
public static Connection getcon(){
try{
//1.加载驱动
Class.forName(driver);
//2.获取数据库连接对象
con= DriverManager.getConnection(url,user,password);
}catch (Exception e){
e.printStackTrace();
}
return con;
}
public static void close(ResultSet rs,PreparedStatement ps,Connection con){
//8.关闭资源
try{
if (rs!=null){
rs.close();
}
if (ps!=null){
ps.close();
}
if (con!=null){
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void close(PreparedStatement ps,Connection con){
//8.关闭资源
try{
if (ps!=null){
ps.close();
}
if (con!=null){
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
ServletAllGoods代码
public class ServletAllGoods extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置请求和响应编码
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
GoodsDao goodsDao=new GoodsDao();
List<Goods> goodsList=goodsDao.selectAll();
System.out.println(goodsList);
//如何把商品信息传输到页面中进行展示 --此处借助HttpSession传输数据
HttpSession session=req.getSession();//获取HttpSession对象
//查询到商品信息集合存蓄到session对象中 起名字叫做goodList
session.setAttribute("goodList",goodsList);
resp.sendRedirect("zhuye.jsp");
}
UpdateGoods代码
@WebServlet("/update")
public class UpdateGoods extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
//获取表单提交的数据,封装到goods对象中
Goods goods=new Goods();
goods.setGid(Integer.parseInt(req.getParameter("gid")));
goods.setGname(req.getParameter("gname"));
goods.setPrice(req.getParameter("price"));
goods.setmark(req.getParameter("mark"));
System.out.println(goods);
GoodsDao goodsDao=new GoodsDao();
int row= goodsDao.update(goods);
if(row>0){
req.getRequestDispatcher("ServletAllGoods").forward(req,resp);
}else{
// req.getAttribute("error_msg","添加商品失败!");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
}