采用MVC模式JDBC演示案例

MVC三层架构:

Model 模型层,数据处理和业务逻辑

View 视图层,为客户展示内容

Control 控制层,协调控制,更新模型

案例如下:

1、获得数据库连接

 1 package com.db;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6
 7 public class JDBCUtil {
 8
 9     private static final String URL="jdbc:mysql://127.0.0.1:3306/student";
10     private static final String USER="root";
11     private static final String PASSWORD="root";
12     private static Connection conn = null;
13
14     static{
15         try {
16             Class.forName("com.mysql.jdbc.Driver");
17             conn = DriverManager.getConnection(URL, USER, PASSWORD);
18         } catch (ClassNotFoundException e) {
19             e.printStackTrace();
20         } catch (SQLException e) {
21             e.printStackTrace();
22         }
23     }
24
25     public static Connection getConn(){
26         return conn;
27     }
28
29 }

2、创建模型

 1 package com.model;
 2
 3 public class Student {
 4
 5     private int id;
 6     private String name;
 7     private char sex;
 8     private int age;
 9     public int getId() {
10         return id;
11     }
12     public void setId(int id) {
13         this.id = id;
14     }
15     public String getName() {
16         return name;
17     }
18     public void setName(String name) {
19         this.name = name;
20     }
21     public char getSex() {
22         return sex;
23     }
24     public void setSex(char sex) {
25         this.sex = sex;
26     }
27     public int getAge() {
28         return age;
29     }
30     public void setAge(int age) {
31         this.age = age;
32     }
33
34
35
36 }

3、创建数据库访问对象--DAO

  1 package com.dao;
  2
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.sql.Statement;
  8 import java.util.ArrayList;
  9 import java.util.List;
 10
 11 import com.zhidi.db.JDBCUtil;
 12 import com.zhidi.model.Student;
 13
 14 public class StuUtile {
 15
 16     private static final Connection conn = JDBCUtil.getConn();
 17
 18     //添加
 19     public void addStu(Student stu) throws SQLException{
 20         String sql = "insert into stu"+
 21                     "(id,name,sex,age) values (?,?,?,?)";
 22         PreparedStatement ps = conn.prepareStatement(sql);
 23         ps.setInt(1, stu.getId());
 24         ps.setString(2, stu.getName());
 25         ps.setString(3,String.valueOf(stu.getSex()));
 26         ps.setInt(4, stu.getAge());
 27
 28         ps.execute();
 29
 30     }
 31
 32     //删除
 33     public void delStu(int id) throws SQLException{
 34         String sql = "delete from stu where id=?";
 35     PreparedStatement ps = conn.prepareStatement(sql);
 36     ps.setInt(1,id);
 37
 38     ps.execute();
 39     }
 40
 41     //修改
 42     public void updateStu(Student stu) throws SQLException{
 43         String sql = "update stu set name=?,sex=?,age=? where "+
 44                 "id=?";
 45     PreparedStatement ps = conn.prepareStatement(sql);
 46     ps.setString(1, stu.getName());
 47     ps.setString(2,String.valueOf(stu.getSex()));
 48     ps.setInt(3, stu.getAge());
 49     ps.setInt(4, stu.getId());
 50
 51     ps.execute();
 52     }
 53
 54     //查询所有学生
 55     public List<Student> query() {
 56         List<Student> list = new ArrayList<Student>();
 57         try {
 58             Statement stmt = conn.createStatement();
 59             ResultSet rs = stmt.executeQuery("select * from stu");
 60
 61             Student stu = null;
 62             while(rs.next()){
 63                 stu = new Student();
 64                 stu.setId(rs.getInt("id"));
 65                 stu.setName(rs.getString("name"));
 66                 String sex = rs.getString("sex");
 67                 char[] ch = sex.toCharArray();
 68                 for (char c : ch) {
 69                     stu.setSex(c);
 70                 }
 71                 stu.setAge(rs.getInt("age"));
 72                 list.add(stu);
 73             }
 74
 75         } catch (SQLException e) {
 76             e.printStackTrace();
 77         }
 78
 79         return list;
 80     }
 81
 82     //查询单个学生
 83     public Student getStu(int id) throws SQLException{
 84         String sql = "select * from stu where id=?";
 85     PreparedStatement ps = conn.prepareStatement(sql);
 86     ps.setInt(1, id);
 87
 88     ResultSet rs = ps.executeQuery();
 89     Student stu = null;
 90     while(rs.next()){
 91         stu = new Student();
 92         stu.setId(rs.getInt("id"));
 93         stu.setName(rs.getString("name"));
 94         String sex = rs.getString("sex");
 95         char[] ch = sex.toCharArray();
 96         for (char c : ch) {
 97             stu.setSex(c);
 98         }
 99         stu.setAge(rs.getInt("age"));
100     }
101         return stu;
102     }
103
104 }

4、控制层逻辑代码

 1 package com.control;
 2
 3 import java.sql.SQLException;
 4 import java.util.List;
 5
 6 import com.zhidi.dao.StuUtile;
 7 import com.zhidi.model.Student;
 8
 9 public class StuControl {
10
11     public static void main(String[] args) throws SQLException {
12         StuUtile su = new StuUtile();
13         Student stu = new Student();
14         stu.setId(10);
15         stu.setName("张芳");
16         stu.setSex(‘女‘);
17         stu.setAge(20);
18 //        su.addStu(stu);
19
20 //        su.updateStu(stu);
21
22 //        su.delStu(10);
23         Student s = su.getStu(1);
24         System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge());
25
26 //        List<Student> list = su.query();
27 //        for (Student s : list) {
28 //            System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge());
29 //        }
30
31     }
32
33 }
时间: 2024-10-06 07:24:18

采用MVC模式JDBC演示案例的相关文章

MVC模式编程演示样本-登录认证(静态)

好,部分博客分享我的总结JSP-Servlet-JavaBean思想认识和三层编程模型的基本流程,ZH- CNMVC该示例实现演示的编程模式-登录身份验证过程,在这里,我仍在使用静态验证username和password.客有,这里仅仅是把一个实现过程告诉大家.不多说,见代码: 首先建一个JSP登录页面 其次,我们建一个Servlet类获取client提交的信息 然后.我们须要在web.xml配置Servlet选项,好像如今的Eclipse都是自己主动生成了Servlet的配置代码.只是大家还是

MVC模式:python案例

quotes = ('A man is not complete until he is married. Then he is finished.', 'As I said before, I never repeat myself.', 'Behind a successful man is an exhausted woman.', 'Black holes really suck...', 'Facts are stubborn things.') class QuoteModel: d

ExtJS4.2实例:表格Grid嵌套(内部Grid)-MVC模式

前文ExtJS4.2 Grid嵌套实例中讲解了如何在表格Grid中嵌套Grid,即外部Grid中每行分别展现为不同的内部Grid,比如常见的费用报销业务,费用类别有往返车费和住宿费,其中往返车费需要填写往返类型.交通工具.费用日期.出发地.目的地和金额,住宿费只需填写入住日期.离开日期.单价和金额,在一个表格中包含多种费用类别,每个费用类别下又有多条明细,所需实现的业务场景图片如: 在线演示  /  示例代码 由于前文未采用MVC模式来组织代码,代码可读性不强,本文将在前文基础上按照MVC模式来

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该

Android GUI架构之MVC模式

1. Android UI框架 和其他Java UI框架一样,Android UI框架也是单线程和事件驱动的,采用MVC模式进行组织. 2. MVC模式 M:Model,是应用的核心,也就是应用真正想做的事情. V:View,主要负责渲染界面.整个应用程序界面中的所有视图对象,都是通过一颗对象树来组织的.这颗对象树的根节点就是应用窗口.UI框架通常都是通过先序遍历的方式遍历视图对象树,来逐个视图对象进行渲染. C:Controller,负责响应外部动作,直接与用户进行交互. 3. 其他 (1)所

谈谈JavaScript MVC模式

第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equ

Android MVC模式

Android MVC模式 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51172105 前些天看到一篇关于Android MVC模式的技术贴,觉得非常好,所以跟大家分享一下,顺便也说说自己对Android MVC设计模式的见解~~ 算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很

MVC模式的原理

说说MVC模式的原理,Android SDK 中有哪些组件使用到了MVC模式,其基本原理是什么?[国内某著名软件外包公司 2010 年面试题] 答案:MVC 的基本原理就是通过Controller 连接View 和Model.也就是说,当View 中显示的数据变化时(如ListView要删除某个列表项),会通知Controller,而不是直接通知Model.这时Controller接到View的通知后,会在Model 中采取相应的动作(如删除数据库中的某条记录).如果模型的数据发生变化(如插入.

java 三层架构与mvc模式的解释

三层架构是一种架构模式.分为: 持久层:完成内存数据和磁盘数据的转换,采用Dao模式,建立实体和数据库映射. 表--类 列--(数据库)属性 (ORM对象和关系的映射),主要目的是完成对象数据和关系数据转换 业务层:主要完成业务处理操作,采用事务脚本模式,将一个业务中所有的操作封装成一个方法,保证该方法中,所有的数据库操作,同时成功或者同时失败. 表现层:完成数据的展示和流程的控制,采用 MVC模式. 三层架构与MVC的关系: 表现层 ———–>mvc框架 业务层 ———–>service层