第六章:通过mvc模型设计一个简单的留言系统

1.日常项目小结:

每一次完成一个项目都是一点点的进步。而每一次写总结都可以使思绪更加清晰,项目是对前一段学习的考验,而总结则可以对之前学习产生更深刻的理解。从班主任那边学到的做完一个项目或者完成一个阶段性的任务一定要写总结文档,一定要写总结文档,一定要写总结文档!!!!!!!
下次需要改进的地方:做事情的过程中多次遇到的问题或者普遍性问题一定要记录下来及其解决的方案。

2.MVC模型简介

全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

3.项目大体结构

这里写图片描述

(1) com.ch6:数据库连接方法

Conn.java代码;
package com.ch6;
import java.sql.*;

public class Conn {
   
    Connection conn= null;
    Statement stmt = null;
    ResultSet rs = null;
    //加载驱动程序
    public Conn(){
        try{
            Class.forName("com.mysql.jdbc.Driver");
        }catch(java.lang.ClassNotFoundException e){
            System.err.println(e.getMessage());
        }
    }
    //查询操作
    public ResultSet executeQuery(String sql) {
        try{
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/liuyan?useUnicode=true&characterEncoding=UTF-8","root","123");
            stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
        }catch(SQLException ex){
            System.err.println(ex.getMessage());
        }
        return rs;
    }
    //更新操作
    public int executeUpdate(String sql){
        int result=0;
        try{
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/liuyan?useUnicode=true&characterEncoding=UTF-8","root","123");
            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            result=stmt.executeUpdate(sql);
        }catch(SQLException ex){
            result=0;
        }
        return result;
    }
    //关闭数据库连接
    public void close(){
        try{
            if(rs!=null)
                rs.close();
        }catch(Exception e){
            e.printStackTrace(System.err);
        }
        try{
            if(stmt != null)
                stmt.close();
        }catch(Exception e){
            e.printStackTrace(System.err);
        }
        try{
            if(conn!=null)
                conn.close();
        }catch(Exception e){
            e.printStackTrace(System.err);
        }

    }
}

(2) com.ch6.dal:对网页中的对象进行基本操作方法

liuyan.java代码(主要对留言的属性进行增删查等功能):

package com.ch6.dal;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.ch6.model.LiuyanInfo;
import com.ch6.Conn;

public class Liuyan {

    Conn conn = new Conn();
    public List<LiuyanInfo> getList() throws SQLException{
        List<LiuyanInfo> list=new ArrayList<LiuyanInfo>();
        String sql="select * from info order by id asc";
        ResultSet rs=conn.executeQuery(sql);
            while(rs.next()){
                LiuyanInfo info=new LiuyanInfo();
                info.setId(rs.getInt("id"));
                info.setName(rs.getString("name"));
                info.setTime(rs.getString("time"));
                info.setTitle(rs.getString("title"));
                info.setText(rs.getString("text"));
                list.add(info);
            }
        conn.close();
        return list;
    }
    public int insert(LiuyanInfo info){
        String sql="insert into info( name,time,title,text ) values ";
        sql=sql+"('"+info.getName()+"','"+info.getTime()+"','"+info.getTitle()+"','"+info.getText()+"')";
        int result=0;
        System.out.println(sql);
        result=conn.executeUpdate(sql);
        conn.close();
        return result;  
    }
    public int update(LiuyanInfo info){
        String sql="update info set"+"name='"+info.getName()+"',time='"+info.getTime()+"',title='"+info.getTitle()+"',text='"+info.getText()+"' where id='"+info.getId()+"'";
        int result=0;
        System.out.println(sql);
        result=conn.executeUpdate(sql);
        conn.close();
        return result;
    }
    public LiuyanInfo getLiuyan(String id) throws SQLException{
        LiuyanInfo info=new LiuyanInfo();
        String sql ="select * from info s where id= '"+id+"'";
        ResultSet rs=conn.executeQuery(sql);
        if(rs.next()){
            info.setId(rs.getInt("id"));
            info.setName(rs.getString("name"))
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值