我的第一个MVC项目

2020-12-13 02:01

阅读:485

标签:style   blog   class   code   java   ext   

soscw.com,搜素材
这是本人第一个完全按照MVC开发模式完成的项目,非常简陋,仅仅完成的查询,保存,删除基本功能,而且存在编码问题没有解决,以后会慢慢增加功能。慢慢改进
soscw.com,搜素材psoscw.com,搜素材ackage com.sdjt.dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.junit.Test;

import com.sdjt.utils.C3Utils;

/**
 * 实现操作增删改查
 * 
 * @author lx
 * 
 */

public class PersonDaoJdb {
    /*
     * 实现查询
     */

    public List query(String id, String name, Integer age, String sex) {
        List list = new ArrayList();
        try {

            String sql = "select p_id id,p_name name,p_age age,"
                    + "(case sex when ‘1‘ then ‘男‘ else ‘女‘ end) sex"
                    + " from person where 1=1";

            List param = new ArrayList();
            if (id != null && !id.trim().equals("")) {
                sql += " and p_id like ?";
                param.add("%" + id.trim() + "%");
            }
            if (name != null && !name.trim().equals("")) {
                sql += " and p_name like ?";
                param.add("%" + name.trim() + "%");
            }
            if (age != null) {
                sql += " and p_age=?";
                param.add(age);
            }
            if (sex != null && !sex.trim().equals("")) {
                sql += " and sex=?";
                param.add(sex.trim());
            }
            QueryRunner run = new QueryRunner(C3Utils.getDs());
        
            list = run.query(sql, new ArrayListHandler(), param.toArray());
            System.err.println("sql is:"+sql);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return list;
    }

    /**
     * 实现保存
     */

    public void save(String id, String name,String age, String sex) {

        try {

            String sql = "insert into person values(?,?,?,?)";
            QueryRunner run = new QueryRunner(C3Utils.getDs());
            run.update(sql, id,name,age,sex);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public void delete(String id, String name,String age, String sex) {

        try {
            String sql = "delete from person where ";
            if (id != null && !id.trim().equals("")) {
                sql += "p_id= ?";
                QueryRunner run = new QueryRunner(C3Utils.getDs());
                run.update(sql,id);
                System.err.println("删除成功");

            } else {
                System.err.println("删除出错");

            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

package com.sdjt.frame;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

import com.sdjt.person.Action.PersonAction;
import com.sdjt.utils.MyModelFrame;

public class Frame extends JFrame {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    Label lable1 = new Label("编号");
    Label lable2 = new Label("姓名");
    Label lable3 = new Label("年龄");
    Label lable4 = new Label("性别");
    JButton save = new JButton("保存");
    JButton delete = new JButton("删除");
    JTextField idtext = new JTextField(5);
    JTextField nametext = new JTextField(5);
    JTextField agetext = new JTextField(5);
    JTable table;
    DefaultTableModel dt;
    // 下拉框
    JComboBox sextext = new JComboBox(new String[] { "", "男",
            "女" });


    public Frame() {
        // 控制层 接受用户信息
        PersonAction pa = new PersonAction(this);
        // 获取当前jframe上的对象
        Container con = getContentPane();
        con.setLayout(new BorderLayout());
        JPanel jp = new JPanel(new FlowLayout(FlowLayout.LEFT));
        jp.add(lable1);
        jp.add(idtext);
        jp.add(lable2);
        jp.add(nametext);
        jp.add(lable3);
        jp.add(agetext);
        jp.add(lable4);
        jp.add(sextext);
        JButton query = new JButton("查询");
        query.setActionCommand("query");
        jp.add(query);
        query.addActionListener(pa);
        save.setActionCommand("save");
        jp.add(save);
        save.addActionListener(pa);
        
        delete.setActionCommand("delete");
        jp.add(delete);
        delete.addActionListener(pa);

        // 实例化表格数据+表头
        dt = new MyModelFrame(null, new String[] { "编号", "name", "age", "sex" });
        con.add(jp, BorderLayout.NORTH);
        table = new JTable(dt);
        // //设置单行选择
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        // 将t放在中间用JScrollPanel设置table可以带上下滚动条
        con.add(new JScrollPane(table), BorderLayout.CENTER);

        // 监听窗口关闭按钮
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(300, 300, 700, 300);
        setVisible(true);
    }

    public JTable getTable() {
        return table;
    }

    public JTextField getIdtext() {
        return idtext;
    }

    public JTextField getNametext() {
        return nametext;
    }

    public JTextField getAgetext() {
        return agetext;
    }

    public JComboBox getSextext() {
        return sextext;
    }

    public static void main(String[] args) {
        new Frame();
    }

    public DefaultTableModel getDt() {
        return dt;
    }

}
package com.sdjt.person.Action;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.JOptionPane;
import com.sdjt.frame.Frame;
import com.sdjt.person.serverce.PersonServer;

public class PersonAction implements ActionListener {

    // 声明serverce
    private PersonServer service = new PersonServer();
    private Frame fr;

    public PersonAction(Frame fr) {
        this.fr = fr;
    }

    @Override
    public void actionPerformed(ActionEvent e) {

        if (e.getActionCommand().equals("query")) {

            System.err.println("query..");
            // 删除原有的
            int rows = fr.getDt().getRowCount();
            for (int i = 0; i ) {
                fr.getDt().removeRow(0);

            }

            // 查询
            String id = fr.getIdtext().getText();
            String name = fr.getNametext().getText();
            String age = fr.getAgetext().getText();
            String sex = fr.getSextext().getSelectedItem().toString();

            if (sex.equals("男")) {
                sex = "1";

            } else if (sex.equals("女")) {
                sex = "0";

            }

            Integer _age = age.equals("") ? null : Integer.valueOf(age);
            System.err.println(id + "," + name + "," + age + "," + sex);

            // 调用serverce

            // List list = service.query(id, name, _age, sex);
            List list = service.query(id, name, _age, sex);
            for (Object[] oo : list) {
                fr.getDt().addRow(oo);
                System.err.println("添加成功");

            }

        } else if (e.getActionCommand().equals("save")) {

            // 获取数据
            String id = fr.getIdtext().getText();
            String name = fr.getNametext().getText();
            String age = fr.getAgetext().getText();
            String sex = fr.getSextext().getSelectedItem().toString();
            if (id == null || id.trim().equals("")) {
                JOptionPane.showMessageDialog(fr, "必须输入编号");
                return;
            }
            if (sex == null || sex.trim().equals("")) {
                JOptionPane.showMessageDialog(fr, "必须输入性别");
                return;
            }
            // 调用保存

            service.save(id, name, age, sex);
            // 保存成功后
            fr.getDt().addRow(new String[] { id, name, age, sex });
            System.err.println("baocn");

        } else if (e.getActionCommand().equals("delete")) {
            // String id = fr.getIdtext().getText();
            String name = fr.getNametext().getText();
            String age = fr.getAgetext().getText();
            String sex = fr.getSextext().getSelectedItem().toString();
            int row = fr.getTable().getSelectedRow();
            if (row == -1) {
                JOptionPane.showMessageDialog(fr, "plz choose one row...");
                return;

            }
            String id1 = (String) fr.getDt().getValueAt(row, 0);
            int a = JOptionPane.showConfirmDialog(fr, "你确定要删除" + id1 + "吗?",
                    "删除", JOptionPane.YES_NO_OPTION);
            service.delete(id1, name, age, sex);
            fr.getDt().addRow(new String[] { id1, "已经被删除" });
            // System.err.println("--" + a);
            // Integer _age = age.equals("") ? null : Integer.valueOf(age);
            // List list = service.query(id1, name, _age, sex);
            // for (Object[] oo : list) {
            // fr.getDt().addRow(oo);
            // System.err.println("添加成功");
            //
            // }

        }

    }
}
package com.sdjt.person.serverce;

import java.util.List;

import com.sdjt.dao.PersonDaoJdb;


public class PersonServer {

    // 声明dao 注入dao
    private PersonDaoJdb dao = new PersonDaoJdb();

    public List query(String id, String name, Integer age, String sex) {
        return dao.query(id, name, age, sex);

    }

    public void save(String id, String name, String age, String sex) {

        sex = sex.equals("男") ? "1" : "0";
        dao.save(id, name, age, sex);

    }

    public void delete(String id, String name,String age, String sex) {

        dao.delete(id, name, age, sex);

    }

}
package com.sdjt.utils;

import java.sql.Connection;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3Utils {
    private static DataSource ds;
    static{
        ds=new ComboPooledDataSource();
        
    }

    public static DataSource getDs() {
        return ds;
    }

    public static Connection getCon() {
        Connection con = null;
        try {

            con = ds.getConnection();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return con;

    }
//    public static void main(String[] args) {
//        System.err.println(C3Utils.getCon());
//    }

}
package com.sdjt.utils;

import javax.swing.table.DefaultTableModel;

/**
 * 表格模版
 * 
 * @author lx
 * 
 */
public class MyModelFrame extends DefaultTableModel {

    public MyModelFrame(Object[][] data, Object[] header) {

        super(data, header);
    }
    //返回false不能修改数据
    @Override
    public boolean isCellEditable(int row, int column) {
        if(row==2){
            return true;
            
        }
        return false;
    }
    

}
default-config>
        
        
        5042223000com.mysql.jdbc.Driverjdbc:mysql:///abc
        root1234default-config>

    
    
    
    5042223000com.mysql.jdbc.Driverjdbc:mysql:///abc
        root1234
soscw.com,搜素材

我的第一个MVC项目,搜素材,soscw.com

我的第一个MVC项目

标签:style   blog   class   code   java   ext   

原文地址:http://www.cnblogs.com/xiaweifeng/p/3714524.html


评论


亲,登录后才可以留言!