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();

      }

    } 

  }

 

【JDBC-MVC模式】开发实例的更多相关文章

  1. 【Web开发】Mean web开发 01-Express实现MVC模式开发

    简介 Mean是JavaScript的全栈开发框架.更多介绍 用Express实现MVC模式开发是Mean Web全栈开发中的一部分. Express 是一个基于 Node.js 平台的极简.灵活的 ...

  2. JavaFX桌面应用-MVC模式开发,“真香”

    使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...

  3. Extjs MVC模式开发,循序渐进(一)

    本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...

  4. 【转】利用MVC模式开发Java应用程序[组图]

    Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...

  5. Angular——MVC模式开发实战

    创建项目 创建工作目录 使用bower下载需要插件 git init.add.commit之后得到分支master,再创建developer分支,然后再此分支上进行具体功能开发 MVC架构 之前小项目 ...

  6. .net使用mvc模式开发web应用 模型与视图间的数据处理

    http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文 ...

  7. 使用MVC模式开发一简单的销售额查询系统

    与上一篇比较,只改变了index.jsp文件中form的提交路径 <form action="ShowServlet" method="post"> ...

  8. 基于MVC模式开发的后台框架

    1.ThinkCMF 2.NFine快速开发平台 3.力软快速开发框架 如有好的开发框架希望可以一起交流

  9. mvc模式开发

  10. MVC模式在游戏开发的应用

    原地址: http://www.cocoachina.com/gamedev/2012/1129/5212.html MVC是三个单词的缩写,分别为:模型(Model).视图(View)和控制Cont ...

随机推荐

  1. js中的预解释

    在js中,带var 和function关键字的需要预解释: 那什么是预解释?就是在js代码执行之前,先申明好带有var 关键字和带有function关键字的变量,在内存里先安排好.但是带有var关键字 ...

  2. 常用JSTL标签

    1.判断是否为空 <c:choose> <c:when test="${not empty reportInfo.user_register_orgs.register_o ...

  3. 第十七篇 .NET高级技术之XML

    Xml 简介(可扩展标记语言) XML优点:容易读懂:格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写. Xml就是用一种格式化的方式来存储数据,我们可以通过用记事本打开. .n ...

  4. 通过 xshell 连接 ubuntu on windows(WSL)

    装上 ubuntu on windows 后,默认要先打开 cmd, 再运行 bash 进入 ubuntu 的 shell. 但是这个shell很难看,配色不好就算了,还存在各种复制粘贴麻烦. 默认没 ...

  5. pyinstaller 打包.exe文件记录遇到的问题

    用pyinstaller打包py2.7的程序有时会出现不匹配的错误,在python的idle下运行没有问题,打包之后却会报一些错误,所以打包的话还是尽量用py3.5版本,而且用 -F 将程序打包成一个 ...

  6. PHP多图片上传类推荐

    多文件上传是PHP中的一个基础应用,反正PHPer都会遇到的问题,现在就介绍一个功能完善.强大的多文件上传类给大家吧,能用上这个类的地方会很多. <?php class Upload{ var ...

  7. js去掉数组的空字符串

    后台返回数据的时候,有些数据为空时,一般都不进行显示,需要去除空字符串. 基本思路:获取数组张度,遍历数组,当数组某个值等于‘’或null或数据类型为undefined时,根据splice方法去除数据 ...

  8. 虚方法(virtual)

    虚方法(virtual) Virtual 关键字用于修饰方法.属性.索引器或事件声明,并且允许在派生类中重写这些对象. 看一段代码: using System ; class A { public v ...

  9. ES6学习笔记(5)----数值的扩展

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 数值的扩展 1.Number对象的扩展(1)javascript的全局函数isNaN,isFin ...

  10. Android SlidingTabLayout的使用--替代ActionBar的Tab导航

    最近在使用ActionBar的时候,如果使用的是最新版V7包或者最新的SDK平台,就会发现 ActionBar的导航功能已经不建议使用了.主要的原因是ActionBar自带Tab导航自定义性差(只能通 ...