java+swing+mysql項目管理系統附帶系統運行指導視頻

今天我們演示一個java swing組件開發的簡單項目管理系統。

源碼獲取地址【當牛作碼-最專業的源代碼分享網站】:http://www.xiaoniucr.com/project/view/14.html

項目介紹:

本系統主要使用eclipse+jdk1.7開發,使用swing圖形化組件,在配合mysql數據庫,實現數據的增刪改查。

核心代碼:

1.數據庫鏈接代碼

package com.gzskco.util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DbUtil {

	private String dbUrl="jdbc:mysql://localhost:3306/db_company";
	private String dbUserName="root";
	private String dbPassword="root";
	private String jdbcName="com.mysql.jdbc.Driver";
	
	/**
	 * 獲取數據庫連接
	 * @return
	 * @throws Exception
	 */
	public Connection getCon() throws Exception{
		Class.forName(jdbcName);
		Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
		return con;
	}
	
	/**
	 * 關閉數據庫連接
	 * @param con
	 * @throws Exception
	 */
	public void closeCon(Connection con) throws Exception{
		if(con!=null){
			con.close();
		}
	}
	
	public static void main(String[] args) {
		DbUtil dbUtil=new DbUtil();
		try {
			dbUtil.getCon();
			System.out.println("數據庫連接成功");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("數據庫連接失敗");
		}
	}
}

2.UI層部分代碼

/*
 * BiaoAddInterFrm.java
 *
 * Created on __DATE__, __TIME__
 */

package com.gzskco.view;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.Connection;
import java.sql.ResultSet;

import javax.swing.JOptionPane;

import com.gzskco.dao.BiaoDao;
import com.gzskco.dao.BiaoTypeDao;
import com.gzskco.dao.SkEngineeringDao;
import com.gzskco.model.Biao;
import com.gzskco.model.BiaoType;
import com.gzskco.model.SkEngineering;
import com.gzskco.util.DbUtil;
import com.gzskco.util.StringUtil;

/**
 *
 * @author  __USER__
 */
@SuppressWarnings("serial")
public class BiaoAddInterFrm extends javax.swing.JInternalFrame {

	DbUtil dbUtil = new DbUtil();
	BiaoTypeDao biaoTypeDao = new BiaoTypeDao();
	SkEngineeringDao skEngineeringDao = new SkEngineeringDao();
	BiaoDao biaoDao = new BiaoDao();

	/** Creates new form BiaoAddInterFrm */
	public BiaoAddInterFrm() {
		initComponents();

		//設置居中偏上
		int windowWidth = this.getWidth(); //獲得窗口寬  
		int windowHeight = this.getHeight(); //獲得窗口高  
		Toolkit kit = Toolkit.getDefaultToolkit(); //定義工具包  
		Dimension screenSize = kit.getScreenSize(); //獲取屏幕的尺寸  
		int screenWidth = screenSize.width; //獲取屏幕的寬  
		int screenHeight = screenSize.height; //獲取屏幕的高  
		this.setLocation(screenWidth / 2 - windowWidth / 2, screenHeight / 3
				- windowHeight / 2);//

		this.fillBiaoType();
		this.fillEngineering();
		if (this.jcb_BiaoType.getItemCount() > 0) {
			this.jcb_BiaoType.setSelectedIndex(1);
		}
		if (this.jcb_Engineering.getItemCount() > 0) {
			this.jcb_Engineering.setSelectedIndex(0);
		}
	}

	private void fillBiaoType() {
		Connection con = null;
		BiaoType biaoType = null;
		try {
			con = dbUtil.getCon();
			ResultSet rs = biaoTypeDao.biaoTypeList(con, new BiaoType());
			while (rs.next()) {
				biaoType = new BiaoType();
				biaoType.setId(rs.getInt("id"));
				biaoType.setBiaoTypeName(rs.getString("biaoTypeName"));
				this.jcb_BiaoType.addItem(biaoType);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	private void fillEngineering() {
		Connection con = null;
		SkEngineering skEngineering = null;
		try {
			con = dbUtil.getCon();
			ResultSet rs = skEngineeringDao.skEngineeringList(con,
					new SkEngineering());
			while (rs.next()) {
				skEngineering = new SkEngineering();
				skEngineering.setId(rs.getInt("id"));
				skEngineering.setEngineeringName(rs
						.getString("engineeringName"));
				this.jcb_Engineering.addItem(skEngineering);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	//GEN-BEGIN:initComponents
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

jLabel2 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jcb_BiaoType = new javax.swing.JComboBox();
jLabel5 = new javax.swing.JLabel();
planTxt = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
finishTxt = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
acceptanceTxt = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel14 = new javax.swing.JLabel();
jcb_Engineering = new javax.swing.JComboBox();

setClosable(true);
setIconifiable(true);
setTitle("\u6dfb\u52a0\u8868\u53ca\u8bbe\u5907");

jLabel2.setText("\u9879\u76ee\u540d\u79f0");

jLabel4.setText("\u89c4\u683c\u578b\u53f7");

jLabel5.setText("\u8ba1\u5212\u6570\u91cf");

jLabel6.setText("\u5b89\u88c5\u6570\u91cf");

jLabel8.setText("\u9a8c\u6536\u6570\u91cf");

jButton1.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\項目\\logo\\add.png")); // NOI18N
jButton1.setText("\u6dfb\u52a0");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setIcon(new javax.swing.ImageIcon("C:\\Users\\Administrator\\Desktop\\項目\\logo\\reset.png")); // NOI18N
jButton2.setText("\u91cd\u7f6e");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jLabel14.setText("\u6ce8\uff1a\u8ba1\u5212\u6570\u91cf\u4e0d\u80fd\u4e3a\u7a7a");


javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel14)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(44, 44, 44)
.addComponent(jButton2))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(planTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(finishTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(acceptanceTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jcb_Engineering, javax.swing.GroupLayout.PREFERRED_SIZE, 230, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jcb_BiaoType, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(26, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jcb_Engineering, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jcb_BiaoType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(planTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5)
.addComponent(finishTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(jLabel8)
.addComponent(acceptanceTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(56, 56, 56)
.addComponent(jLabel14)
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(26, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

	//GEN-END:initComponents

	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
		String plan = this.planTxt.getText();
		String finish = this.finishTxt.getText();
		String acceptance = this.acceptanceTxt.getText();
		int engId = 0;

		if (StringUtil.isEmpty(plan)) {
			JOptionPane.showMessageDialog(null, "計劃數量不能爲空!");
			return;
		}

		if (StringUtil.isEmpty(finish)) {
			finish = "0";
		}
		if (StringUtil.isEmpty(acceptance)) {
			acceptance = "0";
		}
		int lack = Integer.parseInt(plan) - Integer.parseInt(finish);

		BiaoType biaoType = (BiaoType) this.jcb_BiaoType.getSelectedItem();
		int biaoId = biaoType.getId();
		//必須先添加項目才能實現這個表
		if (this.jcb_Engineering.getItemCount() > 0) {
			SkEngineering skEngineering = (SkEngineering) this.jcb_Engineering
					.getSelectedItem();
			engId = skEngineering.getId();
		} else {
			JOptionPane.showMessageDialog(null, "計劃添加,請先添加項目");
			return;
		}
		Biao biao = new Biao(engId, biaoId, Integer.parseInt(plan), Integer
				.parseInt(finish), lack, Integer.parseInt(acceptance));

		Connection con = null;
		try {
			con = dbUtil.getCon();
			int addNum = biaoDao.biaoAdd(con, biao);
			if (addNum == 1) {
				JOptionPane.showMessageDialog(null, "計劃添加成功!");
				this.resetValue();
			} else {
				JOptionPane.showMessageDialog(null, "計劃添加失敗!");
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "計劃添加失敗!");
			e.printStackTrace();
		} finally {
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	private void resetValue() {
		if (this.jcb_BiaoType.getItemCount() > 0) {
			this.jcb_BiaoType.setSelectedIndex(1);
		}
		this.planTxt.setText("");
		this.finishTxt.setText("");
		this.acceptanceTxt.setText("");
	}

	private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
		if (this.jcb_Engineering.getItemCount() > 0) {
			this.jcb_Engineering.setSelectedIndex(0);
		}
		this.resetValue();
	}

	//GEN-BEGIN:variables
	// Variables declaration - do not modify
	private javax.swing.JTextField acceptanceTxt;
	private javax.swing.JTextField finishTxt;
	private javax.swing.JButton jButton1;
	private javax.swing.JButton jButton2;
	private javax.swing.JLabel jLabel14;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JLabel jLabel4;
	private javax.swing.JLabel jLabel5;
	private javax.swing.JLabel jLabel6;
	private javax.swing.JLabel jLabel8;
	private javax.swing.JComboBox jcb_BiaoType;
	private javax.swing.JComboBox jcb_Engineering;
	private javax.swing.JTextField planTxt;
	// End of variables declaration//GEN-END:variables

}

3.持久化層實例代碼

package com.gzskco.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.gzskco.model.Biao;
import com.gzskco.model.SkEngineering;
import com.gzskco.util.StringUtil;

public class BiaoDao {

	public int biaoAdd(Connection con,Biao biao)throws Exception {
		String sql="insert into t_total values(null,?,?,?,?,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setInt(1, biao.getEngId());
		pstmt.setInt(2, biao.getBiaoId());
		pstmt.setInt(3, biao.getPlan());
		pstmt.setInt(4, biao.getFinish());
		pstmt.setInt(5, biao.getLack());
		pstmt.setInt(6, biao.getAcceptance());
		return pstmt.executeUpdate();		
	}
	
	public ResultSet biaoList(Connection con,Biao biao)throws Exception {
		StringBuffer sb=new StringBuffer("select * from t_total t,t_biaoType bt ,t_engineering et where t.biaoId=bt.id and t.engId=et.id");
		if(StringUtil.isNotEmpty(biao.getEngineeringName())){
			sb.append(" and et.engineeringName like '%"+biao.getEngineeringName()+"%'");
		}
		if (biao.getEngId()!=-1) {
			sb.append(" and t.engId="+biao.getEngId());
		}
		if (biao.getBiaoId()!=-1) {
			sb.append(" and t.biaoId="+biao.getBiaoId());
		}
		PreparedStatement pstmt = con.prepareStatement(sb.toString());
		return pstmt.executeQuery();
	}
	
	public int BiaoDelete(Connection con,String id) throws Exception{
		String sql="delete from t_total where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, id);
		return pstmt.executeUpdate();
	}
	
	public int BiaoModify(Connection con,Biao biao) throws Exception {
		String sql="update t_total set engId=?,biaoId=?,plan=?,finish=?,lack=?,acceptance=? where id=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setInt(1, biao.getEngId());
		pstmt.setInt(2, biao.getBiaoId());
		pstmt.setInt(3, biao.getPlan());
		pstmt.setInt(4, biao.getFinish());
		pstmt.setInt(5, biao.getLack());
		pstmt.setInt(6, biao.getAcceptance());
		pstmt.setInt(7, biao.getId());
		return pstmt.executeUpdate();
	}
	
	public boolean getBiaoByEngId(Connection con,String engId) throws Exception{
		String sql="select * from t_total where engId=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, engId);
		ResultSet rs=pstmt.executeQuery();
		return rs.next();
	}
}

4.實體類部分代碼

package com.gzskco.model;

public class Biao {

	private int id;
	private int engId=-1;
	private	int biaoId=-1;
	private int plan;
	private int finish;
	private int lack;
	private int acceptance;
	private String EngineeringName;
	
	
	public Biao() {
		super();
	}
	public Biao(int engId, int biaoId, int plan, int finish,int lack, int acceptance) 
	{		
		super();
		this.engId = engId;
		this.biaoId = biaoId;
		this.plan = plan;
		this.finish = finish;
		this.lack = lack;
		this.acceptance = acceptance;
	}
	
//查詢使用
	public Biao(int biaoId, String engineeringName) {
		super();
		this.biaoId = biaoId;
		this.EngineeringName = engineeringName;
	}
	
	
	public Biao(int id, int engId, int biaoId, int plan, int finish, int lack,
		int acceptance) {
		super();
		this.id = id;
		this.engId = engId;
		this.biaoId = biaoId;
		this.plan = plan;
		this.finish = finish;
		this.lack = lack;
		this.acceptance = acceptance;
	}
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	public int getEngId() {
		return engId;
	}
	public void setEngId(int engId) {
		this.engId = engId;
	}
	public int getBiaoId() {
		return biaoId;
	}
	public void setBiaoId(int biaoId) {
		this.biaoId = biaoId;
	}
	public int getPlan() {
		return plan;
	}
	public void setPlan(int plan) {
		this.plan = plan;
	}
	public int getFinish() {
		return finish;
	}
	public void setFinish(int finish) {
		this.finish = finish;
	}
	public int getLack() {
		return lack;
	}
	public void setLack(int lack) {
		this.lack = lack;
	}
	public int getAcceptance() {
		return acceptance;
	}
	public void setAcceptance(int acceptance) {
		this.acceptance = acceptance;
	}
	public String getEngineeringName() {
		return EngineeringName;
	}
	public void setEngineeringName(String engineeringName) {
		EngineeringName = engineeringName;
	}

	
	
}

運行截圖:

 

 

 源碼獲取地址【當牛作碼-最專業的源代碼分享網站】:http://www.xiaoniucr.com/project/view/14.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章