一个简单的MVC模式练习
控制层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模式练习的更多相关文章
- [.NET] 一步步打造一个简单的 MVC 网站 - BooksStore(一)
一步步打造一个简单的 MVC 网站 - BooksStore(一) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore 简介 主 ...
- [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(四)
一步步打造一个简单的 MVC 电商网站 - BooksStore(四) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore &l ...
- [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(一)
一步步打造一个简单的 MVC 电商网站 - BooksStore(一) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore &l ...
- [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(一) (转)
http://www.cnblogs.com/liqingwen/p/6640861.html 一步步打造一个简单的 MVC 电商网站 - BooksStore(一) 本系列的 GitHub地址:ht ...
- 自己动手写一个简单的MVC框架(第一版)
一.MVC概念回顾 路由(Route).控制器(Controller).行为(Action).模型(Model).视图(View) 用一句简单地话来描述以上关键点: 路由(Route)就相当于一个公司 ...
- [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(二)
一步步打造一个简单的 MVC 电商网站 - BooksStore(二) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore 前: ...
- [.NET] 一步步打造一个简单的 MVC 电商网站 - BooksStore(三)
一步步打造一个简单的 MVC 电商网站 - BooksStore(三) 本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore &l ...
- 下面的那一个不属于MVC模式中的对象?
下面的那一个不属于MVC模式中的对象? A. Model B. View C. Collection D. Controller 解答:C MVC是三个单词的缩写,分别为: 模型(Model),视图( ...
- 自己动手写一个简单的MVC框架(第二版)
一.ASP.NET MVC核心机制回顾 在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件. 在这个System.W ...
随机推荐
- monkey测试===monkeyrunner测试教程(2)
我先引入一段代码: #test.py from com.android.monkeyrunner import MonkeyRunner as mr device=mr.waitForConnecti ...
- selenium 点击浏览器按钮
利用以下的方法,selenium 也可以模拟点击各种浏览器按钮:browser.back()点击“返回”按钮.browser.forward()点击“前进”按钮.browser.refresh()点击 ...
- 创建.dat文件(转载)
比较有用的东比较有用的东西 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的 ...
- vue的data用到this问题
问题:在vue中用vue-awesome-swiper,在data中初始化,用到swiper一个方法onTap,然后再调vue的一个函数,用到this,可是... data() { return { ...
- 取消myeclipse自动进入workspace
进入到C:\Program Files\MyEclipse 6.5\eclipse\configuration\.settings目录, 修改SHOW_WORKSPACE_SELECTION_DIAL ...
- 多路复用I/O模型select() 模型 代码实现
多路复用I/O: socket编程之select(),poll(),epoll() 代码: client.c #include <stdio.h> #include <sys/ty ...
- display:flex代替float
昨天做一个css的东西,在开始用js的时候才发现被float占位了 因为float浮动起来了,我清除了浮动,但是还是占位 然后我同事就告诉我其实可以不用float来左右浮动 在父元素上用display ...
- poj 1088(记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 88560 Accepted: 33212 Description ...
- Mysql用户管理(远程连接、授权)
1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...
- js表单提交回调函数
在研究表单的时候发现一个有意思的东西——在表单提交的时候如何保证数据全部提交完毕才会清空? 我们常用的<input type="reset" value="重置&q ...