博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的MVC模式练习
阅读量:6311 次
发布时间:2019-06-22

本文共 4765 字,大约阅读时间需要 15 分钟。

  控制层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
queryStu() throws Exception { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from stuInfoTable"); List
stuList = new ArrayList
(); 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;    }}

 

转载地址:http://lghxa.baihongyu.com/

你可能感兴趣的文章
虚拟软件vmare内安装linux系统下的ORACLE数据的RAC环境
查看>>
百度大搜面经(一面+二面)
查看>>
一个技术大牛的2016年度总结
查看>>
(译)React hooks:它不是一种魔法,只是一个数组——使用图表揭秘提案规则
查看>>
pytorch安装
查看>>
Mysql中MVCC 锁与事务隔离级别之间关系
查看>>
三月周记
查看>>
keycode,charcode,which区别
查看>>
Go圣经-临时插入ORM的小trick
查看>>
5步让你入门MongoDB!
查看>>
2019年六大新兴信息安全方向
查看>>
面部识别技术对社会危害大
查看>>
saltstack获取token时报错401
查看>>
Nginx配置upstream实现负载均衡
查看>>
使用Rancher 2.0管理Kubernetes工作负载
查看>>
KubeCon Keynote演讲:Kubernetes如何赋能可再生能源产业提升10倍效率
查看>>
Node.js面试题之2017
查看>>
Spring之Bean学习
查看>>
nginx完成session共享
查看>>
Unknown system variable 'storage_engine'
查看>>