MVC三层架构:

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

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

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

案例如下:

1、获得数据库连接

 package com.db;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class JDBCUtil { private static final String URL="jdbc:mysql://127.0.0.1:3306/student";
private static final String USER="root";
private static final String PASSWORD="root";
private static Connection conn = null; static{
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} public static Connection getConn(){
return conn;
} }

2、创建模型

 package com.model;

 public class Student {

     private int id;
private String name;
private char sex;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }

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

 package com.dao;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import com.zhidi.db.JDBCUtil;
import com.zhidi.model.Student; public class StuUtile { private static final Connection conn = JDBCUtil.getConn(); //添加
public void addStu(Student stu) throws SQLException{
String sql = "insert into stu"+
"(id,name,sex,age) values (?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, stu.getId());
ps.setString(2, stu.getName());
ps.setString(3,String.valueOf(stu.getSex()));
ps.setInt(4, stu.getAge()); ps.execute(); } //删除
public void delStu(int id) throws SQLException{
String sql = "delete from stu where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,id); ps.execute();
} //修改
public void updateStu(Student stu) throws SQLException{
String sql = "update stu set name=?,sex=?,age=? where "+
"id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, stu.getName());
ps.setString(2,String.valueOf(stu.getSex()));
ps.setInt(3, stu.getAge());
ps.setInt(4, stu.getId()); ps.execute();
} //查询所有学生
public List<Student> query() {
List<Student> list = new ArrayList<Student>();
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from stu"); Student stu = null;
while(rs.next()){
stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
String sex = rs.getString("sex");
char[] ch = sex.toCharArray();
for (char c : ch) {
stu.setSex(c);
}
stu.setAge(rs.getInt("age"));
list.add(stu);
} } catch (SQLException e) {
e.printStackTrace();
} return list;
} //查询单个学生
public Student getStu(int id) throws SQLException{
String sql = "select * from stu where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id); ResultSet rs = ps.executeQuery();
Student stu = null;
while(rs.next()){
stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
String sex = rs.getString("sex");
char[] ch = sex.toCharArray();
for (char c : ch) {
stu.setSex(c);
}
stu.setAge(rs.getInt("age"));
}
return stu;
} }

4、控制层逻辑代码

 package com.control;

 import java.sql.SQLException;
import java.util.List; import com.zhidi.dao.StuUtile;
import com.zhidi.model.Student; public class StuControl { public static void main(String[] args) throws SQLException {
StuUtile su = new StuUtile();
Student stu = new Student();
stu.setId(10);
stu.setName("张芳");
stu.setSex('女');
stu.setAge(20);
// su.addStu(stu); // su.updateStu(stu); // su.delStu(10);
Student s = su.getStu(1);
System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge()); // List<Student> list = su.query();
// for (Student s : list) {
// System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge());
// } } }

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

  1. iOS架构入门 - MVC模式实例演示

    MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此模式通过对复杂度的简化,使程序结构更加直观 控制器(Controller)-- ...

  2. 【译】采用MVC模式创建一个简单的javascript App

    原文标题:Build A Simple Javascript App The MVC Way 作者:joshcrawmer4 翻译人:huansky 初次翻译,翻译的不好,还请见谅 JavaScrip ...

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

    好,部分博客分享我的总结JSP-Servlet-JavaBean思想认识和三层编程模型的基本流程,ZH- CNMVC该示例实现演示的编程模式-登录身份验证过程,在这里,我仍在使用静态验证usernam ...

  4. MVC模式编程演示样例-登录验证(静态)

    好,上篇博客分享了本人总结的JSP-Servlet-JavaBean三层架构编程模式的实现思想和基本流程,接下来给大家分享一个MVC编程模式的实现演示样例-登录验证的过程,这里我仍然用的是静态的验证u ...

  5. 采用MVC模式创建一个简单的javascript App

    初次翻译,翻译的不好,还请见谅 JavaScript中最好的一部分之一,也可能是最糟糕的. 在HTML文档的头部添加一个开始和结束脚本标记,并在其中引入一些意大利面条式的代码,毫无疑问这是一种过分简单 ...

  6. HBASE的Java与Javaweb(采用MVC模式)实现增删改查附带源码

    项目文件截图 Java运行截图 package domain; import java.io.IOException; import java.util.ArrayList; import java. ...

  7. MVC模式:python案例

    quotes = ('A man is not complete until he is married. Then he is finished.', 'As I said before, I ne ...

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

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

  9. 谈谈JavaScript MVC模式

    第一个是:没有使用mvc模式的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

随机推荐

  1. php 2038年问题

    在mysql中存放日期时可以存放整数 (int),  而int可以存放的数据最大为4294967295(无符号), 而php最大为2147483647, 要显示一个大于2038年日期,该如何处理 ? ...

  2. ssh 公钥登陆的问题

    我在A,B两台机器上面使用无密码登陆的方式 在A主机上面生成公钥 复制到了B主机的authorized_keys文件里面 发现还是要输入密码 问题1 权限问题  .ssh 目录必须是 700 auth ...

  3. 敏捷组织中PMO应遵循的准则

    敏捷改变了人们的工作方式,不仅仅是开发部门,而且还包括其它的部门,例如HR.财务以及PMO等.在大多数组织中,PMO是一个控制体.它指导项目团队的规范.模板以及流程.目前,大多数的IT组织都敏捷化了. ...

  4. Servlet-Cookie源码分析 源码环境:Tomcat8

    最近在学习servlet的一些实现细节,阅读了Cookie的源码. Cookie本质上是服务器发送给客户端(主要是浏览器)的一个会话临时数据. 其源码注释文档的说明: Creates a cookie ...

  5. [转]Pythoin中的Lambda表达式

    引用自:http://www.cnblogs.com/evening/archive/2012/03/29/2423554.html 在学习python的过程中,lambda的语法时常会使人感到困惑, ...

  6. 分享一种容易理解的js去重排序方法

    <script> var arr=[1,8,6,4,88,22,99,4,6,86,5,58,89,5]; //先使用sort()函数去重 var a=arr.sort(function ...

  7. 事件DOMContentLoaded和load的区别

    1.当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了. 2.当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,f ...

  8. html5拖拽事件 xhr2 实现文件上传 含进度条

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. linux文件目录结构

    1./ 文件系统的入口,最高一级目录 2./bin 存放基础系统所需的命令 3./boot 包含Linux内核及系统引导程序所需要的文件 4./dev 设备文件存储目录(声卡.磁盘.分区..) 5./ ...

  10. linux系统下使用xampp 丢失mysql root密码【xampp的初始密码为空】

    如果在ubuntu 下面 使用xampp这个集成开发环境,却忘记mysql密码. 注:刚安装好的xampp的Mysql初始密码是空... 找回密码的步骤如下: 1.停止mysql服务器 sudo /o ...