MVC2 项目实践

一、概念

所谓MVC,即Model-View-Controller。

(1)Model层:Model指模型部分,一般在应用中Model层包括业务处理层和数据访问层。数据访问层主要是对数据库的一些操作的封装。业务处理层应用JavaBean构建,  JavaBean主要是用作将从View层获取的数据和数据库的数据进行桥接。除却JavaBean以外,若想构建分布式应用系统,可以应用EJB组件进行业务逻辑层的构建。

(2)Controller层:Controller指控制部分,一般是对View层提交的请求为其设置对应的Servlet进行特定功能的处理,这里的进行特定功能的处理一般是编写在Model中的业务处理层中的。Controller一般只是在Web应用中充当一个中介者的作用。

(3)View层:View指视图部分,这一部分的内容是展示给用户实际进行交互的,通常使用JSP和HTML进行构建(个人比较喜欢以HTML嵌入JSP的方式来构建网页)。

综上来说,一个小型完整的基于MVC设计模式的Web应用程序的处理流程应该如下:

MVC2 项目实践

      由上面的图中我们可以看出,用户在客户端(Web应用的客户端即为浏览器)中发出请求的时候,请求首先由View层的JSP/HTML将HTTP请求传给控制器中对应的Servlet,然后由Servlet负责调用Model层中的业务逻辑处理部分进行要求的处理,处理期间如果设计数据库的操作,则与数据库进行操作,最后全部操作结束之后,由业务逻辑层将结果发给控制层,控制层以HTTP响应的形式将结果发送回客户端。

简单的基于MVC2的增删改查

基本的操作就是连接数据库的进行简单的增删改查,然后数据的回显。此处遇到的主要的问题一个是使用ueditor富文本编辑的时候,需要配置。

其次最需要注意的就是数据库的操作语句以及数据库的连接,新闻表的代码,由于之前已经做过登录,不在附上该操作代码。在操作数据库时,如果频繁的需要连接数据库,那么可以将连接的代码单独写到一个类中去。

二、运行结果

MVC2 项目实践

MVC2 项目实践

 MVC2 项目实践

MVC2 项目实践

三、代码

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import bean.News;

public class Newsdao {
    private static final long serialVersionUID = 1L;
//    private String driverName="com.mysql.jdbc.Driver";
//    private String url="jdbc:mysql://localhost:3306/newsdata?useSSL=false&serverTimezone=UTC";
//    private String name="root";
//    private String pwd="123456";
    static Connection con=null;
    public static  Connection getCon() {
        String driverName="com.mysql.cj.jdbc.Driver";
        String url="jdbc:mysql://localhost:3306/newsdata?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
        String name="root";
        String pwd="123456";
                try {
                    Class.forName(driverName);
                    try {
                        con = DriverManager.getConnection(url, name, pwd);
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }

                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
        return con;
    }
    //添加新闻
        public boolean addNews(News news) {
            con=Newsdao.getCon();
            boolean flag=false;
            String sql="insert news(title,type,datetime,content) values(‘"+news.getTitle()+"‘,‘"
            +news.getType()+"‘,‘"
                    +news.getDateTime()+"‘,‘"
                    +news.getContent()+"‘)";
            //System.out.println("添加的sql语句"+sql);
            try {
                PreparedStatement ps=con.prepareStatement(sql);
                int i=ps.executeUpdate();
                //System.out.println("i的值"+i);
                ps.close();
                con.close();
                if(i>0) {
                    flag =true;
                }
            } catch (SQLException e) {
                System.out.println("添加出错啦");
                e.printStackTrace();
            }

            return flag;
        }
        public List<News> selectByID(int id){
            con=Newsdao.getCon();
            List<News> list=new ArrayList<>();
            String sql="select * from news where id="+id+"";
            System.out.println(sql);
            Statement state;
            ResultSet rs;
            try {
                state = con.createStatement();
                rs=state.executeQuery(sql);
                while(rs.next()) {
                    News news=new News();
                    news.setTitle(rs.getString("title"));
                    news.setContent(rs.getString("content"));
                    news.setDateTime(rs.getString("dateTime"));
                    news.setType(rs.getString("type"));
;                    news.setId(id);
                    list.add(news);
                    //System.out.println(news.getTitle());
                }
                rs.close();
                state.close();
                con.close();
            } catch (SQLException e) {
                System.out.println("查询出错啦");
                e.printStackTrace();
            }
            return list;
        }


        //删除新闻
        public List<News> selectAll(){
            con=Newsdao.getCon();
            List<News> list=new ArrayList<News>();
            String sql="select * from news";
            Statement state;
            ResultSet rs;
            try {
                state = con.createStatement();
                rs=state.executeQuery(sql);
                while(rs.next()) {
                    News news=new News();
                    news.setId(rs.getInt("id"));
                    news.setTitle(rs.getString("title"));
                    news.setContent(rs.getString("content"));
                    news.setDateTime(rs.getString("dateTime"));
                    news.setType(rs.getString("type"));
                    list.add(news);
                    //System.out.println(news.getType());
                }
                rs.close();
                state.close();
                con.close();
            } catch (SQLException e) {
                System.out.println("查询出错啦");
                e.printStackTrace();
            }
            return list;
        }

        //修改新闻

        public boolean update(News news) {
            con=Newsdao.getCon();
            boolean flag=false;
            String sql="update news set title=‘"+news.getTitle()+"‘,type=‘"+news.getType()
                    +"‘,dateTime=‘"+news.getDateTime()
                    +"‘,content=‘"+news.getContent()+"‘ where id="+news.getId()+"";
            System.out.println(sql);
            Statement state=null;
            try {
                state = con.createStatement();
                int i=state.executeUpdate(sql);
                System.out.println(i);
                if(i>0) {
                    flag=true;
                }
            } catch (SQLException e) {
                System.out.println("更新错误啦");
                e.printStackTrace();
            }

            return false;
        }

        //删除
        public boolean delete(int  id) {
            con=Newsdao.getCon();
            boolean flag=false;
            String sql="delete from news where id=‘"+id+"‘";
           // System.out.println(sql);
            PreparedStatement ps;
            try {
                ps = con.prepareStatement(sql);
                int i=ps.executeUpdate();
                if(i>0){
                    flag=true;
                }
            } catch (SQLException e) {
                System.out.println("删除出错啦");
                e.printStackTrace();
            }

            return flag;
        }

}

相关推荐