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. SOD让你的旧代码焕发青春

    最近接手了一个旧的系统,各种陈旧的问题比较多,其中最棘手的就是操作数据库的部分,具体如下: 1.核心库是一个最后修改时间为2008年的库,先不说有多陈旧,现在这个库只是一个DLL文件,没有源码,也已经 ...

  2. 通过一个实例重新认识引用类型,值类型,数组,堆栈,ref

    昨天在写代码时候遇到了一个问题,百思不得其解,感觉颠覆了自己对C#基础知识的认知,因为具体的情境涉及公司代码不便放出,我在这里举个例子,先上整个测试所有的代码,然后一一讲解我的思考过程: using ...

  3. 【bzoj4008】 HNOI2015—亚瑟王

    http://www.lydsy.com/JudgeOnline/problem.php?id=4008 (题目链接) 题意 给出n个技能,每个技能按顺序有p[i]的可能性释放,可以造成d[i]的伤害 ...

  4. Map工具系列-07-TFS变更集提取工具

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  5. 【基础】MVC路由规则

    一.RouteData解析过程 在ASP.NET MVC中,服务器收到来自客户端的请求后,会经过一些列的处理拿到请求的数据,比如在Pipeline 管线事件中,通过订阅适当的事件,将HttpConte ...

  6. 5 HTML&JS等前端知识系列之jquery基础

    preface jquery其实就是对javascript的再次封装,方便我们开发者调用,下载地址是:http://jquery.com/download/ ,下面就说说常用使用方法 选择器 基本选择 ...

  7. jquery tree

      <div class="fl left"  id="nav" style="width:18%" >             ...

  8. maven log4g 用法

    <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> & ...

  9. thinkphp修改和删除数据

    1.在控制器MainController里面写一个方法,调用Nation表中的数据. public function zhuyemian() { $n = D("Nation"); ...

  10. MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交

    1.在Html表单里面使用了@Html.AntiForgeryToken()就可以阻止CSRF攻击. 2.相应的我们要在Controller中也要加入[ValidateAntiForgeryToken ...