mvc思路编写修改的代码思路

Posted 数模堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mvc思路编写修改的代码思路相关的知识,希望对你有一定的参考价值。


文章重点

1、出场语

2、复习题

3、mvc思路理清修改、增加、删除、查询思路,并参考代码


出场语

学习学习再学习

请注意,以上7个字不是由三个动词构成的句子

在这个句子中,第一个是动词,第二个是名词,第三个是动词,所以我借鉴高人的这句话是说:要先学会学习这件事儿,然后再接着去学习,这样才真的有意思,真的不是“学啊学啊”的意思,也不是只看书本的意思,更不是所谓的“重要的事情说三遍”......

古语有云“三人行,必有我师焉”,更高的境界还有“万物为师”,反正我是差得远,但愿你我都在路上前进着。出场语结束,只为共勉

mvc思路编写修改的代码思路
复习题

MVC模式中,M指的是(),V指的是(),C指的是()

· A、模型

· B、视图

· C、控制器

· D、逻辑

MVC模式的优点有()

· A、各司其职,互不干涉

· B、利于分工

· C、利于重用和扩展

· D、降低了开发工作量

整个MVC的流程就是:用户发送一个请求,首先由()接收,然后根据请求去调用()处理并返回数据,接着调用相应的()把数据响应给用户

· A、表现层

· B、控制层

· C、模型层

· D、视图层




到此,我们对mvc加深的认识,但是它究竟在项目里面怎么来体现它的优势呢?下面就进入我们今天的重点:mvc思路编写修改的代码


我们就分三步走:

第一步:m

第二步:c

第三步:v

正如下图,数据是从上往下流动,并且最终修改数据库的


mvc思路编写修改的代码思路


mvc思路编写修改的代码思路

1、m(正如图上所示,包含dbconection/dbhelper和修改方法)

public class DBHelper {


private static String URL = "jdbc:mysql://localhost:3306/bbs_db";

private static String NAME = "root";

private static String PWD = "root";

private static String DRIVER = "com.mysql.jdbc.Driver";


static {

try {

Class.forName(DRIVER);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}


// 获取数据库连接对象并且返回的方法

public static Connection getConn() {

try {

Connection conn = DriverManager.getConnection(URL, NAME, PWD);

return conn;

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}


// 释放关闭资源的方法

public static void close(Connection conn, PreparedStatement pstmt, ResultSet rst) {

try {

if (rst != null) {

rst.close();

}

if (pstmt != null) {

pstmt.close();

}

if (conn != null) {

conn.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}


public static void main(String[] args) {

Connection conn = DBHelper.getConn();

System.out.println(conn);

}



利用面向对象这种思想(调用dbconnection/dbhelper对象来获取连接)

public class TopicDao2 {

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rst = null;

//修改

public boolean updateTopic(TopicInfo topicInfo){

boolean isSuccess = false;

//1、获取连接

conn = DBHelper.getConn();

//2、写增加对应的sql语句

/**

*  topicId

topicTitle

topicContent

topicUserId

topicClicks

topicTime

*/

String sql = "update tb_topic set topicTitle=?,topicContent=?,topicUserId=?,topicClicks=?,topicTime=? where topicId=?";

//3、执行sql语句并获取结果

//执行sql语句

//java.sql.SQLException: No value specified for parameter 1

//sql语句不完整的时候,就会报上面这个错误

try {

pstmt = conn.prepareStatement(sql);

pstmt.setObject(1, topicInfo.getTopicTitle());//用标题替换第一个?号

pstmt.setObject(2, topicInfo.getTopicContent());//用标题替换第一个?号

pstmt.setObject(3, topicInfo.getTopicId());//用标题替换第一个?号

pstmt.setObject(4, topicInfo.getTopicClicks());//用标题替换第一个?号

pstmt.setObject(5, topicInfo.getTopicTime());//用标题替换第一个?号

pstmt.setObject(6, topicInfo.getTopicId());//用标题替换第一个?号

int res = pstmt.executeUpdate();

if(res>0){

//修改了一行,受影响的行数就为1,res为1 >0

isSuccess = true;

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

DBHelper.close(conn, pstmt, rst);

}

//4、返回结果

return isSuccess;

}






mvc思路编写修改的代码思路

2、c(UpdateServlet2)

package com.bbs.servlet;


import java.io.IOException;

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 com.bbs.dao.TopicDao2;

import com.bbs.pojo.TopicInfo;


/**

 * Servlet implementation class UpdateServlet2

 * @WebServlet("/UpdateServlet2")是注解的方式,等同于web.xml里面

 * 

 * servlet

 * 

 * servlet-class

 * servlet-mapping

 */

@WebServlet("/UpdateServlet2")

public class UpdateServlet2 extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//处理修改请求 

//处于界面-dao里面承上启下的作用,呈上:获取界面传过来的

/**

*  topicId

topicTitle

topicContent

topicUserId

topicClicks

topicTime

*/

String topicId = request.getParameter("topicId");

String topicTitle = request.getParameter("topicTitle");

String topicContent = request.getParameter("topicContent");

String topicUserId = request.getParameter("topicUserId");

String topicClicks = request.getParameter("topicClicks");

String topicTime = request.getParameter("topicTime");

TopicInfo topicInfo = new TopicInfo();

topicInfo.setTopicClicks(Integer.parseInt(topicClicks));

topicInfo.setTopicId(Integer.parseInt(topicId));

topicInfo.setTopicTitle(topicTitle);

topicInfo.setTopicContent(topicContent);

topicInfo.setTopicUserId(Integer.parseInt(topicUserId));

topicInfo.setTopicTime(topicTime);

//新的帖子的内容

//启下:调用dao里面的修改的方法来实现最终的修改的效果

TopicDao2 dao = new TopicDao2();

boolean isSuccess = dao.updateTopic(topicInfo);

if(isSuccess){

//

request.getRequestDispatcher("/topics").forward(request, response);

}

}

}



mvc思路编写修改的代码思路
最后就是界面

<form action="UpdateServlet2">


topicId:<input name="topicId"/><br/>

topicTitle:<input  name="topicTitle"/><br/>

topicContent:<input name="topicContent" /><br/>

topicUserId:<input name="topicUserId" /><br/>

topicClicks:<input name="topicClicks" /><br/>

topicTime:<input name="topicTime" /><br/>

<input type="submit" value="tijiao"/>


</form>


mvc思路编写修改的代码思路
最后再来总结一下






上图的从上到下的数据流动过程,正如下面代码从右到左的执行过程(update2.jsp界面到UpdateServlet2.java最后到TopicDao2),另外TopicDao2引用了dbhelper,就完了,希望各位同学参考这种方法理清思路。修改如此,增加,删除,查询亦如此。




以上是关于mvc思路编写修改的代码思路的主要内容,如果未能解决你的问题,请参考以下文章

代码审计思路以及php配置

PHP代码审计实战思路浅析

webpack 构建优化思路

代码审计的思路及流程

简单实现工作流管理思路(MVC)

Servlet 架构思路(MVC)