java MVC 实现增删改查

public class AddServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
String description = req.getParameter("description");
String baseprice = req.getParameter("baseprice");
String writer = req.getParameter("writer");
String publish = req.getParameter("publish");
String pages = req.getParameter("pages");
String images = req.getParameter("images");
String stock = req.getParameter("stock");
Connection conn=null;
PreparedStatement pstm=null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/ecport";
conn = DriverManager.getConnection(url, "root", "");
String sql = "insert into product values(0,?,?,?,?,?,?,?,?)";
pstm = conn.prepareStatement(sql);
pstm.setObject(1, name);
pstm.setObject(2, description);
pstm.setObject(3, baseprice);
pstm.setObject(4, writer);
pstm.setObject(5, publish);
pstm.setObject(6, pages);
pstm.setObject(7, images);
pstm.setObject(8, stock);
//执行sql
int result = pstm.executeUpdate();
//3.把处理的结果响应给用户(响应对象)
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
if(result == 1){
out.println("<html><body><h3 style='color:red'>恭喜你,新增图书成功!!!</h3></body></html>");
}else{
out.println("<html>新增失败</html>");
}
out.close();
}catch(Exception e){
e.printStackTrace();
}finally{
try {
pstm.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
求大神帮忙把 上面的增加功能改成MVC框架实现

第1个回答  2015-12-14
AddServlet类实现了servlet控制器的功能,但你这里只有一个add功能并不能体现控制器需要其他功能了就使用request对象获取请求资源路径针对不同的路径找到不同的Servelt实现控制器功能即MVC中的C;
package servlet;

import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AddServlet extends HttpServlet{
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  req.setCharacterEncoding("utf-8");
  resp.setCharacterEncoding("utf-8");
  String name = req.getParameter("name");
  String description = req.getParameter("description");
  String baseprice = req.getParameter("baseprice");
  String writer = req.getParameter("writer");
  String publish = req.getParameter("publish");
  String pages = req.getParameter("pages");
  String images = req.getParameter("images");
  String stock = req.getParameter("stock");
  Product p=new Product();
  ProductDao Dao = new ProductDao();

  
   p.setName(name);
   p.setDescription(description);
   p.setBaseprice(baseprice);
   p.setWriter(writer);
   p.setPublish(publish);
   p.setPages(pages);
   p.setImages(images);
   p.setStock(stock);
   int result = 0;
try {
result = Dao.save(p);
} catch (Exception e) {
e.printStackTrace();
}
   resp.setContentType("text/html");
   if(result == 1){
   resp.sendRedirect("ok.jsp");
   }else{
   resp.sendRedirect("error.jsp");
   }
   
  }
}
ProductDao类实现了使用对象想数据库中添加记录的功能;
实现了MVC中的M模型
package servlet;

import java.sql.Connection;
import java.sql.PreparedStatement;

public class ProductDao {
public int save(Product p) throws Exception{
Connection conn = null;
PreparedStatement prep = null;
try {
conn = DBUtil.getConnection();
String sql = "insert into product values(0,?,?,?,?,?,?,?,?)";
prep = conn.prepareStatement(sql);
    prep.setObject(1, p.getName());
    prep.setObject(2, p.getDescription());
    prep.setObject(3, p.getBaseprice());
    prep.setObject(4, p.getWriter());
    prep.setObject(5, p.getPublish());
    prep.setObject(6, p.getPages());
    prep.setObject(7, p.getImages());
      prep.setObject(8, p.getStock());
int num=prep.executeUpdate();
return num;
} catch (Exception e1) {
e1.printStackTrace();
throw e1;
}finally{
DBUtil.close(conn);
}
}

}
Product类根据数据库的字段声明类的属性根据表名命名类名;
package servlet;

public class Product {
private Object name;
private Object description;
private Object baseprice;
private Object writer;
private Object publish;
private Object pages;
private Object images;
private Object stock;
public Object getName() {
return name;
}
public void setName(Object name) {
this.name = name;
}
public Object getDescription() {
return description;
}
public void setDescription(Object description) {
this.description = description;
}
public Object getBaseprice() {
return baseprice;
}
public void setBaseprice(Object baseprice) {
this.baseprice = baseprice;
}
public Object getWriter() {
return writer;
}
public void setWriter(Object writer) {
this.writer = writer;
}
public Object getPublish() {
return publish;
}
public void setPublish(Object publish) {
this.publish = publish;
}
public Object getPages() {
return pages;
}
public void setPages(Object pages) {
this.pages = pages;
}
public Object getImages() {
return images;
}
public void setImages(Object images) {
this.images = images;
}
public Object getStock() {
return stock;
}
public void setStock(Object stock) {
this.stock = stock;
}

}
DBUtil类封装的是对数据库的连接:
package servlet;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * JDBC工具类:
 *  提供了获得连接,关闭连接的相关的方法。
 *
 */
public class DBUtil {
private static String url="jdbc:mysql://localhost:3306/ecport";
public static Connection getConnection() throws Exception{
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.
getConnection(url,"root", "");
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return conn;
}
public static void close(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
 * @param args
 * @throws Exception 
 */
public static void main(String[] args) throws Exception {
Connection conn = 
getConnection();
System.out.println(conn);
}

}
最后是MVC中的视图,实现的shiMVC中的V视图,在AddServlet中根据不同的结果受用重定向跳转到指定的页面中,表明是否添加成功。

成功页面:

<%@page pageEncoding="utf-8" 

contentType="text/html;charset=utf-8" %>

<html>

  <body>

    <h3 style='color:red'>恭喜你,新增图书成功!!!</h3>

  </body>

</html>

失败页面:

<%@page pageEncoding="utf-8" 

contentType="text/html;charset=utf-8" %>

<html>新增失败</html>

怎么用MVC做出增删改查,急!!!
结论:MVC做增删改查逻辑的那些代码,就写在 M 内。其中。M = model,就是模型。一般的框架都会重点设计这个模型,用于抽象对数据库的操作,也就是SQL操作。laravel eloquent orm 以laravel为例,最简单的使用模型做数据库的增删改查。此处我们以User模型(对应数据库users表)为例。首先是增加条目:增...

java MVC 实现增删改查
}else{ resp.sendRedirect("error.jsp"); } }}ProductDao类实现了使用对象想数据库中添加记录的功能;实现了MVC中的M模型package servlet;import java.sql.Connection;import java.sql.PreparedStatement;public class ProductDao {public int save(Product p) throws Exception{Connection conn = ...

java用spring mvc + hibernate,实现数据库的增删改查
1)在applicationContext里面配置Hibernate的dataSource和SessionFactory 2)编写Dao的接口是实现类。如果用到Spring的Hibernate的操作模板(HibernateTemplate)可以继承HibernateDaoSupport,实现类注解成@Repository 3)编写Action,然后注解成@Controller,在Action里面需要用@Autowired注入Dao的实例 4)配置applicationC...

用JAVA编写的人事管理系统其中实现增删改查功能的代码
我给你写一个吧。。按照MVC去写 jsp + javabean + servlet的 dao + service + entity 从数据库验证登录。---》显示列表---》crud

MVC模式,但是除了entity,dao,service,controller类之外,个别增删改查...
外键是关联其他表的,传值就是用mybatis跟数据库交互。

java的mvc模式中bean.dao.service三层中都放什么东西啊?能具体说说吗...
bean 放实体类 (get set 以及hibernate生成的对应实体类的XML文件)dao 连接数据库的方法以及增删改查的方法 写成接口 service 主要 实现 dao层的接口 然后进行判断 转发到JSP 显示出来

求phpcms v9的数据库增删改查 是怎么实现的
phpcms v9是基于mvc模式开发的,所以我们按照其套路到模型层程序中去找就行。在\/phpcms\/model目录下存放着与数据表名称一致的模型成文件,随意打开一个,你会看到都继承了model这个类,那么找到它,路径:\/phpcms\/libs\/classes\/model.class.php。对于数据库的增删改查方法都在这里面了,列举如下:insert...

Java,业务逻辑接口biz写什么(是声明增删改查的方
业务逻辑层,主要是协调表现层(MVC)和数据层(DAO)的交互。你说的业务逻辑接口biz,主要是定义方法接口,也就是为表现层提供数据或处理业务逻辑的方法。接口的实现类主要是根据接口定义的方法,来实现接口,实现类中主要写对数据层数据的操作Java,业务逻辑接口biz写什么(是声明增删改查的方 ...

Java Web 开发时的 MVC 模型和软件的3层架构(表现层,业务逻辑层,数据访 ...
针对数据的增添、删除、修改、更新、查找等。MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。

使用Layui前端框架完成简单的增删改查
引入layui前端框架:从layui官网下载前端包,解压后复制粘贴至项目的wwwroot下。构建业务逻辑:新建Service层,创建学生服务类StudentService实现学生业务逻辑服务。依赖构造注入StudentContext上下文对象。完善功能:登录、查询、增加、删除、修改。完善登录、查询方法。条件查询成功如上图所示。完善删除、编辑方法。

相似回答
大家正在搜