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. 关于ios7 以上版本 view被导航栏遮挡的问题 解决方案

    self.edgesForExtendedLayout = UIRectEdgeNone; 如果导航栏是默认带磨砂透明效果的,使用了edgesForExtendedLayout可能会出现导航栏变不透明 ...

  2. Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备

    建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...

  3. WIN7 64位操作系统 无法找到Access驱动

    为了更充分的利用硬件资源,我想很多人都开使用64位操作系统了,同时你可以也发现了在64位操作系统上ODBC的驱动找不到了,所以ODBC的东西都没法用了. 因为2007以前版本的Office只有32位版 ...

  4. Codeforces Round #395 (Div. 2) A

    Description Comrade Dujikov is busy choosing artists for Timofey's birthday and is recieving calls f ...

  5. DFS水题 URAL 1152 False Mirrors

    题目传送门 /* 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝吧 回溯写挫 ...

  6. Mybatis-Configuration-详解

    Configuration MyBatis的初始化会执行SqlSessionFactoryBuilder的中build()方法,build方法又会调用XMLConfigBuilder()的内部pars ...

  7. pip 安装管理失败解决

    问题: pip install ansible 错误: src/hash_template.c:361: warning: implicit declaration of function ‘Py_F ...

  8. 生产环境中nginx既做web服务又做反向代理

    一.写对于初入博客园的感想 众所周知,nginx是一个高性能的HTTP和反向代理服务器,在以前工作中要么实现http要么做反向代理或者负载均衡.尚未在同一台nginx或者集群上同时既实现HTTP又实现 ...

  9. BZOJ1132: [POI2008]Tro(叉积 排序)

    题意 世上最良心题目描述qwq 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 Sol 直接模拟是$n^3$的. 考虑先枚举一个$i$,那么我们要算的就是$\sum_ ...

  10. JDBC基础-setFetchSize方法

    在Statement和ResultSet接口中都有setFetchSize方法 void setFetchSize(int rows) throws SQLException 查看API文档 Stat ...