控制层Action接受从模型层DAO传来的数据,显现在视图层上。

package Action;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement; import DAO.StuDAO;
import Model.Student;
import Util.DBUtil; public class StuAction { public static void main(String args[]) throws Exception {
Connection conn = DBUtil.getConnection();
Statement stmt = conn.createStatement();
// ResultSet rs = stmt.executeQuery("select * from stuInfoTable");
//
//// while(rs.next()) {
//// System.out.println(rs.getInt(1)+" "+ rs.getString(2)+" "+rs.getString(3));
//// }
//不是直接 Student stu = null,这样试空指针
Student stu = new Student();
stu.setStuID(5);
stu.setName("王五");
stu.setSex("女");
StuDAO sd = new StuDAO();
//sd.addStu(stu); // stu.setName("马六");
// stu.setSex("男");
// sd.updateStu(stu); sd.delStu(stu.getStuID()); } //直接调用StuDAO的方法来更新 增加 删除
public void add(Student stu) throws Exception {
StuDAO sd = new StuDAO();
sd.addStu(stu);
}
//通过控制层来 链接视图层
}
package 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 Model.Student;
import Util.DBUtil; public class StuDAO {
Connection conn = DBUtil.getConnection();
//一个一个传参数很麻烦 直接传一个对象
//如果stuID设置了自动递增 就不需要插入了
public void addStu(Student stu) throws Exception {
String sql ="" + "insert into stuInfoTable" + "(" +
" stuID,name,sex"+")" + "values(" + "?,?,?)";
//这样的语句可以预加载在服务器里 execute后才会执行
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, stu.getStuID());
ps.setString(2, stu.getName());
ps.setString(3, stu.getSex());
ps.execute();
}
//和增加的逻辑一直 所以直接复制上述代码 然后修改sql语句
//可以直接传过来stuID,但是这样需要根据ID去找Student
public void updateStu(Student stu) throws Exception {
//不加where语句的话 所有的都会更新 //注意下面的语句 一定要有空格
String sql ="" + "update stuInfoTable " + "set " +
"name=?,sex=? " + "where "+ "stuID=?";
//这样的语句可以预加载在服务器里 execute后才会执行
PreparedStatement ps = conn.prepareStatement(sql);
//打印出来sql语句 发现 中间少了 空格 然后修改上面的sql语句
System.out.println(sql);
//注意下面的 序号 要和update的序号一致
ps.setString(1, stu.getName());
ps.setString(2, stu.getSex());
ps.setInt(3, stu.getStuID());
ps.execute();
}
public void delStu(int stuID) throws Exception { String sql ="" + "delete stuInfoTable " +"where "+ "stuID=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, stuID);
ps.execute();
}
//查询学生集合
public List<Student> queryStu() throws Exception {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from stuInfoTable"); List<Student> stuList = new ArrayList<Student>();
Student stu = null;
while(rs.next()) {
stu = new Student();
stu.setStuID(rs.getInt(1));
stu.setName(rs.getString(2));
stu.setSex(rs.getString(3));
stuList.add(stu);
}
return stuList;
}
//查询一个学生
//应该需要和上面重载的 但是为了做实验 先写完所有方法 再去实现
public Student queryOneStu() {
return null;
} }
package Model;

public class Student {
int stuID;
String name;
String sex;
public int getStuID() {
return stuID;
}
public void setStuID(int stuID) {
this.stuID = stuID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
} }
package Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import DAO.StuDAO;
import Model.Student; public class DBUtil { private static Connection conn; static {
String url = "jdbc:sqlserver://localhost:1433;databasename=stuDB"; try {
// 1.注册驱动\
// Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 2.获得数据链接
conn = DriverManager.getConnection(url, "sa", "123456"); } catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static Connection getConnection() {
return conn;
}
}

一个简单的MVC模式练习的更多相关文章

  1. [.NET] 一步步打造一个简单的 MVC 网站 - BooksStore(一)

    一步步打造一个简单的 MVC 网站 - BooksStore(一) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore 简介 主 ...

  2. [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(四)

    一步步打造一个简单的 MVC 电商网站 - BooksStore(四) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore &l ...

  3. [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(一)

    一步步打造一个简单的 MVC 电商网站 - BooksStore(一) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore &l ...

  4. [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(一) (转)

    http://www.cnblogs.com/liqingwen/p/6640861.html 一步步打造一个简单的 MVC 电商网站 - BooksStore(一) 本系列的 GitHub地址:ht ...

  5. 自己动手写一个简单的MVC框架(第一版)

    一.MVC概念回顾 路由(Route).控制器(Controller).行为(Action).模型(Model).视图(View) 用一句简单地话来描述以上关键点: 路由(Route)就相当于一个公司 ...

  6. [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(二)

    一步步打造一个简单的 MVC 电商网站 - BooksStore(二) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore 前: ...

  7. [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(三)

    一步步打造一个简单的 MVC 电商网站 - BooksStore(三) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore &l ...

  8. 下面的那一个不属于MVC模式中的对象?

    下面的那一个不属于MVC模式中的对象? A. Model B. View C. Collection D. Controller 解答:C MVC是三个单词的缩写,分别为: 模型(Model),视图( ...

  9. 自己动手写一个简单的MVC框架(第二版)

    一.ASP.NET MVC核心机制回顾 在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件. 在这个System.W ...

随机推荐

  1. Shell脚本中引用、调用另一个脚本文件的2种方法

    Shell脚本中引用.调用另一个脚本文件的2种方法 http://www.jb51.net/article/67903.htm

  2. Windows 10又现新Bug,24核心竟卡成蜗牛

    Windows 10又现新Bug,24核心竟卡成蜗牛 https://news.cnblogs.com/n/573996/

  3. python设计模式之单例模式(二)

    上次我们简单了解了一下什么是单例模式,今天我们继续探究.上次的内容点这 python设计模式之单例模式(一) 上次们讨论的是GoF的单例设计模式,该模式是指:一个类有且只有一个对象.通常我们需要的是让 ...

  4. Mac OSX下Appium驱动iPhone真机

    1.安装Xcode.Command Line Tools和Appium. 2.安装brew:/usr/bin/ruby -e "$(curl -fsSL https://raw.github ...

  5. artDialog的一些例子与一些属性的介绍。

    1.支持自定义按钮 var dialog = art.dialog({ title: '警告', content: '点击管理按钮将让删除按钮可用', width: '20em', button: [ ...

  6. CSS 绝对居中方案

    .Absolute-Center { margin: auto; position: absolute; top:;;;; }

  7. Java8之Stream/Map

    本篇用代码示例结合JDk源码讲了Java8引入的工具接口Stream以及新Map接口提供的常用默认方法.    参考:http://winterbe.com/posts/2014/03/16/java ...

  8. mybatis 报错: Invalid bound statement (not found)

    错误: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): test.dao.Produc ...

  9. OpenStack 认证服务 KeyStone 服务注册(六)

    一)检查keystone是否安装配置成功 1.1删除环境变量的配置 unset OS_AUTH_URL redhat 1.2 请求令牌认证 admin用户,请求认证令牌 openstack --os- ...

  10. 如何在eclipse 中安装 spring IDE

    1.先 确定 当前的eclipse 的版本:(步骤如下) 2.下载spring ide(请确定好ecplice 的版本号) http://spring.io/tools/sts/all 最后:  安装 ...