• 采用MVC模式JDBC演示案例


    MVC三层架构:

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

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

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

    案例如下:

    1、获得数据库连接

     1 package com.db;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.SQLException;
     6 
     7 public class JDBCUtil {
     8     
     9     private static final String URL="jdbc:mysql://127.0.0.1:3306/student";
    10     private static final String USER="root";
    11     private static final String PASSWORD="root";
    12     private static Connection conn = null;
    13     
    14     static{
    15         try {
    16             Class.forName("com.mysql.jdbc.Driver");
    17             conn = DriverManager.getConnection(URL, USER, PASSWORD);
    18         } catch (ClassNotFoundException e) {
    19             e.printStackTrace();
    20         } catch (SQLException e) {
    21             e.printStackTrace();
    22         }
    23     }
    24     
    25     public static Connection getConn(){
    26         return conn;
    27     }
    28 
    29 }

    2、创建模型

     1 package com.model;
     2 
     3 public class Student {
     4 
     5     private int id;
     6     private String name;
     7     private char sex;
     8     private int age;
     9     public int getId() {
    10         return id;
    11     }
    12     public void setId(int id) {
    13         this.id = id;
    14     }
    15     public String getName() {
    16         return name;
    17     }
    18     public void setName(String name) {
    19         this.name = name;
    20     }
    21     public char getSex() {
    22         return sex;
    23     }
    24     public void setSex(char sex) {
    25         this.sex = sex;
    26     }
    27     public int getAge() {
    28         return age;
    29     }
    30     public void setAge(int age) {
    31         this.age = age;
    32     }
    33     
    34     
    35     
    36 }

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

      1 package com.dao;
      2 
      3 import java.sql.Connection;
      4 import java.sql.PreparedStatement;
      5 import java.sql.ResultSet;
      6 import java.sql.SQLException;
      7 import java.sql.Statement;
      8 import java.util.ArrayList;
      9 import java.util.List;
     10 
     11 import com.zhidi.db.JDBCUtil;
     12 import com.zhidi.model.Student;
     13 
     14 public class StuUtile {
     15     
     16     private static final Connection conn = JDBCUtil.getConn();
     17     
     18     //添加
     19     public void addStu(Student stu) throws SQLException{
     20         String sql = "insert into stu"+
     21                     "(id,name,sex,age) values (?,?,?,?)";
     22         PreparedStatement ps = conn.prepareStatement(sql);
     23         ps.setInt(1, stu.getId());
     24         ps.setString(2, stu.getName());
     25         ps.setString(3,String.valueOf(stu.getSex()));
     26         ps.setInt(4, stu.getAge());
     27         
     28         ps.execute();
     29         
     30     }
     31     
     32     //删除
     33     public void delStu(int id) throws SQLException{
     34         String sql = "delete from stu where id=?";
     35     PreparedStatement ps = conn.prepareStatement(sql);
     36     ps.setInt(1,id);
     37     
     38     ps.execute();
     39     }
     40     
     41     //修改
     42     public void updateStu(Student stu) throws SQLException{
     43         String sql = "update stu set name=?,sex=?,age=? where "+
     44                 "id=?";
     45     PreparedStatement ps = conn.prepareStatement(sql);
     46     ps.setString(1, stu.getName());
     47     ps.setString(2,String.valueOf(stu.getSex()));
     48     ps.setInt(3, stu.getAge());
     49     ps.setInt(4, stu.getId());
     50     
     51     ps.execute();
     52     }
     53     
     54     //查询所有学生
     55     public List<Student> query() {
     56         List<Student> list = new ArrayList<Student>();
     57         try {
     58             Statement stmt = conn.createStatement();
     59             ResultSet rs = stmt.executeQuery("select * from stu");
     60             
     61             Student stu = null;
     62             while(rs.next()){
     63                 stu = new Student();
     64                 stu.setId(rs.getInt("id"));
     65                 stu.setName(rs.getString("name"));
     66                 String sex = rs.getString("sex");
     67                 char[] ch = sex.toCharArray();
     68                 for (char c : ch) {
     69                     stu.setSex(c);
     70                 }
     71                 stu.setAge(rs.getInt("age"));
     72                 list.add(stu);
     73             }
     74             
     75         } catch (SQLException e) {
     76             e.printStackTrace();
     77         }
     78         
     79         return list;
     80     }
     81     
     82     //查询单个学生
     83     public Student getStu(int id) throws SQLException{
     84         String sql = "select * from stu where id=?";
     85     PreparedStatement ps = conn.prepareStatement(sql);
     86     ps.setInt(1, id);
     87     
     88     ResultSet rs = ps.executeQuery();
     89     Student stu = null;
     90     while(rs.next()){
     91         stu = new Student();
     92         stu.setId(rs.getInt("id"));
     93         stu.setName(rs.getString("name"));
     94         String sex = rs.getString("sex");
     95         char[] ch = sex.toCharArray();
     96         for (char c : ch) {
     97             stu.setSex(c);
     98         }
     99         stu.setAge(rs.getInt("age"));
    100     }
    101         return stu;
    102     }
    103 
    104 }

    4、控制层逻辑代码

     1 package com.control;
     2 
     3 import java.sql.SQLException;
     4 import java.util.List;
     5 
     6 import com.zhidi.dao.StuUtile;
     7 import com.zhidi.model.Student;
     8 
     9 public class StuControl {
    10 
    11     public static void main(String[] args) throws SQLException {
    12         StuUtile su = new StuUtile();
    13         Student stu = new Student();
    14         stu.setId(10);
    15         stu.setName("张芳");
    16         stu.setSex('女');
    17         stu.setAge(20);
    18 //        su.addStu(stu);
    19         
    20 //        su.updateStu(stu);
    21         
    22 //        su.delStu(10);
    23         Student s = su.getStu(1);
    24         System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge());
    25         
    26 //        List<Student> list = su.query();
    27 //        for (Student s : list) {
    28 //            System.out.println(s.getId()+" "+s.getName()+" "+s.getSex()+" "+s.getAge());
    29 //        }
    30 
    31     }
    32 
    33 }
  • 相关阅读:
    php去除字符串(空格,换行,反斜杠)
    周末撸了个Excel框架,现已开源,yyds!!
    Python基础之pytest参数化
    解决 remote: HTTP Basic: Access denied Authentication failed for 'https://'报错
    删除上传 github 中的 .idea 文件夹
    Nacos配置管理最佳实践
    痞子衡嵌入式:在IAR开发环境下将整个源文件代码重定向到任意RAM中的方法
    痞子衡嵌入式:我入选了2021年度与非网(eefocus)星选创作者Top10
    《痞子衡嵌入式半月刊》 第 47 期
    重新iviewUI Modal 组件 ok事件默认直接关闭modal 的行为[Code Snippet]
  • 原文地址:https://www.cnblogs.com/jpwz/p/6065016.html
Copyright © 2020-2023  润新知