JDBC - 开发实例 - MVC模式

JDBC - 开发实例 - MVC模式

 1. 在web.xml中配置连接数据库的信息

  web.xml:

  <context-param>

    <param-name>server</param-name>  //主机名

    <param-value>localhost</param-value>  

  </context-param>

  <context-param>

    <param-name>db</param-name>  //数据库

    <param-value>test</param-value>  

  </context-param>

  <context-param>

    <param-name>user</param-name>  //用户名

    <param-value>root</param-value>  

  </context-param>

  <context-param>

    <param-name>password</param-name>  //密码

    <param-value>1234</param-value>  

  </context-param>

2. 数据层-创建实体类Student.java

  Student.java:

  package gh.test.entity;

  

  public class Student{

    private int id;

    private String name;

    private int gender;

    private int age;

    private String address;

    private String tel;

    public void setId(int id){    //学号

      this.id = id;

    }

    public int getId(){

      return id;

    }

    public void setName(String name){    //姓名

      this.name = name;

    }

    public String getName(){

      return name;

    }

    public void setGender(int gender){    //性别

      this.gender = gender;

    }

    public int getGender(){

      retuen gender;

    }

    public void setAge(int age){    //年龄

      this.age = age;

    }

    public int getAge(){

      return age;

    }

    public void setAddress(String address){    //地址

      this.address = address;

    }

    public String getAddress(){

      return address;

    }

    public void setTel(String tel){

      return tel;

    }

  }

3. 数据访问层-创建数据库操作类 DB.java & 学生DAO类 StudentDao.java

  DB.java:

  package gh.test.dao;

  import java.sql.DriverManager;

  import java.sql.Connection;

  import java.sql.PreparedStatement;

  import java.sql.ResultSet;

  import java.sql.SQLException;

  

  public class DB{

    Connection conn = null;

    PreparedStatement ps = null;

    ResultSet rs = null;

    public Connection getConn

    (String server,String db,String user,String password)throws
ClassNotFoundException,InstantiationException,IllegalAccessException,SQLException{  //获取对象

      String driver = "com.mysql.jdbc.Driver";    

      String url = "jdbc:mysql://"+server+":3306/"+db+"?user="+user+"&password="+password+"&characterEncoding=utf-8";

      Class.forName(driver);    //加载驱动

      Connection conn = DriverManager.getConnection(url);    //创建Connection对象

      return conn;

    }

    public ResultSet executeQuery(String sql,String[] params){    //执行查询操作

      try{

          ps = conn.prepareStatement(sql);

          if(params != null){

            for(int i=0;i<params.length;i++){

              ps.setString(i+1,params[i]);

            }

          }

           rs = ps.executeQuery();

      }

      catch(SQLException ex){

        ex.printStackTrace();

      }

      return rs;

    }

    public int executeUpdate(String sql,String[] params){    //执行更新操作

      int n = 0;

      try{

        ps = conn.prepareStatement(sql);

        if(params != null){

          for(int i=0;i<params.length;i++){

            ps.setString(i+1,params[i]);

          }

          n = ps.executeUpdate();

        }

      }catch(SQLException ex){

        ex.printStackTrace();

      }

      return n;

    }

    public void closeAll(){

      if(rs != null){

        try{

          rs.close();

        }catch(SQLException ex){

          ex.printStackTrace();

        }

      }

      if(ps != null){

        try{

          ps.close();

        }catch(SQLException ex){

          ex.printStackTrace();

        }

      }

      if(conn != null){

        try{

          conn.close();

        }catch(SQLException ex){

          ex.printStackTrace();

        }

      }

    }

  }

  StudentDao.java:

   package gh.test.dao;

  import gh.test.entity.Student;

  

  public class StudentDao extends DB{

    public int addStudent(Student student){

      String name = student.getName();

      String gender = student.getGender()+"";

      String  age = student.getAge()+"";

      String address = student.getAddress();

      String tel = student.getTel();

      String[] params = new String[]{name,gender,age,address,tel};

      String sql = "insert into studentInfo values(?,?,?,?,?)";

      int result = super.executeUpdate(sql,params);

      return result;

    } 

  }

4. 视图显示层&逻辑处理-addStudent.html & AddStudentServlet.java

  addStudent.html:

  <html>

    <head>

      <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

      <title>添加学生信息</title>

    </head>

    <body>

      <form name="form1" action="AddStudentServlet" method="post">

        <table>

          <tr>

            <th colspan="2">学生信息</th>

          </tr>

          <tr>

            <td>姓名:</td>

            <td><input type="text" name="name"/></td>

          </tr>

          <tr>

            <td>性别:</td>

            <td>

              <input type="radio" name="gender" value="0" check="checked"/>男&nbsp;&nbsp;

              <input type="radio" name="gender" value="1"/>女

            </td>

          </tr>

          <tr>

            <td>年龄:</td>

            <td>

              <select name="age">

                <option value="18" select="selected">18</option>

                <option value="19">19</option>

                <option value="20">20</option>

                <option value="21">21</option>

                <option value="22">22</option>

              </select>

            </td>

          </tr>

          <tr>

            <td>地址:</td>

            <td><input type="text" name="address"/></td>

          </tr>

          <tr>

            <td>电话:</td>

            <td><input type="text" name="tel"/></td>

          </tr>

          <tr>

            <td colspan="2" align="center">

              <input type="submit" name="tj" value="提交" onclick="check();"/>&nbsp;&nbsp;

              <input type="reset" name="cz" value="重置"/>

            </td>

          </tr>

        </table>

      </form>

      <script language="javascript">

        function check(){

          if(document.form1.name.value == ""){

            alert("请输入姓名!");

            document.form1.name.focus();      

            return false;

          }

          if(document.form1.age.value == ""){

            alert("请输入年龄!");

            document.form1.age.focus();      

            return false;

          }

          if(document.form1.address.value == ""){

            alert("请输入地址!");

            document.form1.address.focus();      

            return false;

          }

          if(document.form1.tel.value == ""){

            alert("请输入电话号码!");

            document.form1.tel.focus();      

            return false;

          }

          return true;

        }

      </script>

    </body>

  </html>

  AddStudentServlet.java:

   package gh.test.servlet;

  import java.io.IOException;

  import java.io.PrintWriter;

  import java.sql.SQLException;

  import javax.servlet.ServletContent;

  import javax.servlet.ServletException;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import gh.test.entity.Student;

  import gh.test.dao.StudentDao;

  public class AddStudentServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;

    public AddStudentServlet(){

      super();

    }

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

      doPost(request,response);

    }

    public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

      request.setCharacterEncoding("utf-8");

      response.setContentType("text/html;charset=utf-8");

      PrintWriter out = response.getWriter();

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

      int gender = Integer.parseInt(request.getParameter("gender"));

      int age = Integer.parseInt(request.getParameter("age"));

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

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

      Student student = new Student();

      student.setName(name);

      student.setGender(gender);

      student.setAge(age);

      student.setAddress(address);

      student.setTel(tel);

      ServletContext ctx = this.getServletContext();

      String server = ctx.getInitParameter("server");

      String db = ctx.getInitParameter("db");

      String user = ctx.getInitParameter("user");

        String password = ctx.getInitParameter("password");

      StudentDao studentDao = new StudentDao();

      try{

        studentDao.getConn(server,db,user,password);

        if(studentDao.addStudent(student) == 1){

          out.print("添加新同学信息成功!<br>");

        }

        else{

          out.print("添加失败!<br>");

        }

        out.print("<a href=‘addStudent.html‘>返回</a>");

      }catch(ClassNotFoundException ex){

        ex.printStackTrace();

      }catch(Exception ex){

        ex.printStackTrace();

      }

    } 

  }

时间: 2024-10-10 05:33:40

JDBC - 开发实例 - MVC模式的相关文章

(架构)UI开发的MVC模式

原文:http://engineering.socialpoint.es/MVC-pattern-unity3d-ui.html 动机 和游戏开发的其他模块类似,UI一般需要通过多次迭代开发,直到用户体验近似OK.另外至关重要的是, 我们想尽快加速迭代的过程.使用MVC模式来进行设计,已经被业界证明了是可以解耦屏幕上的显示,如何控制用户的输入对显示的改变,以及如何根据应用的状态进行改变.MVC模式提供了以下好处: 可以修改UI的外观,而不用修改一行代码: 在不同的组件里面可以共享同一套逻辑代码,

Unity3d中UI开发的MVC模式

原文:http://engineering.socialpoint.es/MVC-pattern-unity3d-ui.html 动机 和游戏开发的其他模块类似,UI一般需要通过多次迭代开发,直到用户体验近似OK.另外至关重要的是, 我们想尽快加速迭代的过程.使用MVC模式来进行设计,已经被业界证明了是可以解耦屏幕上的显示,如何控制用户的输入对显示的改变,以及如何根据应用的状态进行改变.MVC模式提供了以下好处: (1) 可以修改UI的外观,而不用修改一行代码 (2) 在不同的组件里面可以共享同

移动开发中MVC模式和分层

MVC在界面开发中被奉为设计的典范,在移动开发中也是 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写. 它将业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 我刚接触ios,想通过ios的一些实例设计来理解MVC在ios中的应用. 1. IOS的view 对于工具化的图形界面设计,这个就应该是各种视图控件的设计,页面和控件

简单理解前端web开发的MVC模式

随着前端Ajax兴起.前端开发工作进一步划分:js开发和ui页面制作.另外从整个前端项目的清晰明朗以可扩展性角度来看,MVC的应用也越来越必要,特别是对大的项目. 例如 需要给一个页面上的button注册一个onclick事件. 1.我们可以有如下最简洁的写法:(view和model control完全混合) <HTML> <HEAD> <TITLE> example </TITLE> </HEAD> <BODY> <input

ios开发中MVC模式的理解

MVC是80年代出现的一种软件设计模式,是模型(model),视图(view)和控制(Controller)的缩写. 其中Model的主要功能包括业务逻辑的处理以及数据的访问,这是应用程序的主体部分. View的主要功能是用来跟用户进行交互,实现数据的收集和展示,视图是用户看到和直接操作的的界面,它只接受用户的操作. Controller的主要功能用来在视图和模型之间建立联系并控制数据的走向,控制器本身不输出任何内容和对数据做任何处理. 用个简单的例子来说明三者的关系 一个简单的计算器,它除了我

iOS里面MVC模式详解

MVC是IOS里面也是很多程序设计里面的一种设计模式,M是model,V是view,C是controller.MVC模式在ios开发里面可谓是用得淋漓尽致. 以下是对斯坦福大学ios开发里面MVC模式的一段话的翻译 主要的宗旨是把所有的对象分为3个阵营,model阵营,view阵营,或者是controller阵营 model(APP的目的) 举个例子,你要做一个打飞机的游戏,那么这个就是太空中这辆飞船的位置,什么机型,每个飞船有多少机枪,护甲有多少等等.这就是model所做的事,而飞机在屏幕上的

[转载]WIKI MVC模式

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最早由Trygve Reenskaug在1978年提出[1] ,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此

使用mvc模式开发网站

看了韩顺平的j2ee的视频后,吧里面教的做了出来,感觉好极了,新手上路!!! 这个肯定不是原创,但是也不是转载,那我就姑且把它作为翻译吧,给其他看视频学习但是没有代码的同学一点福利吧 首先是login.jsp的登陆界面代码. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <% String path = request.getConte

MVC实例应用模式

要了解mvc的具体的实例应用模式,首先要了解一下mvc模式,这样才能知道他要如何应用到具体的实例中. l  mvc模式 mvc的全名是Model -View- Controller,是模型-视图-控制器的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式.