国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增

這篇具有很好參考價(jià)值的文章主要介紹了Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.DB.java
2.BaseDao.java
3.兩個(gè)窗體
Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增
Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增

1. DB.java

完整代碼

package dao;

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

public class DB {
	static{
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConn() throws SQLException{
		return DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/shangpin?characterEncoding=utf-8",
				"root", "1234");
	}
	
	public static void closeAll(Connection conn){
		if(conn !=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) throws SQLException {
		System.out.println(getConn());
	}
	
}

2. BaseDao.java

完整代碼

package dao;

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

public class BaseDao {
	static Connection conn;
	static PreparedStatement pst;
	static ResultSet rs;

	// 查詢
	public static ResultSet cx(String sql) {

		try {
			conn = DB.getConn();
			pst = conn.prepareStatement(sql);
			rs = pst.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rs;
	}

	// 增刪改
	public static boolean zsg(String sql) {

		try {
			conn = DB.getConn();
			pst = conn.prepareStatement(sql);
			return pst.executeUpdate() > 0;
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DB.closeAll(conn);
		}
		return false;
	}
}

3. 兩個(gè)窗體中的部分代碼:

① 程序一開始執(zhí)行時(shí),需要加載顯示數(shù)據(jù):
主窗體中-修改構(gòu)造器中的代碼

/** 修改構(gòu)造器,增加添加調(diào)用語(yǔ)句 */
	public ZhuYe() {
		initComponents();
		
		//在構(gòu)造器中增加調(diào)用初始表格的方法
		initTable("select * from tb_goods");
	}

② 定義初始化表格的方法:
主窗體中-完整代碼

//初始化表格的方法
	private void initTable(String sql) {
		//1.準(zhǔn)備好所有的數(shù)據(jù),放入 data 中
		Vector data = new Vector(); 
		
		ResultSet rs = BaseDao.cx(sql); //查詢數(shù)據(jù)庫(kù)
		try {
			while (rs.next()) {
				Vector line = new Vector(); // line 代表存放一行數(shù)據(jù)的集合
				int id = rs.getInt("goodId");
				String name = rs.getString("goodName");
				int num = rs.getInt(3);
				double pric = rs.getDouble(4);
				line.add(id);
				line.add(name);
				line.add(num);
				line.add(pric);

				data.add(line); //將當(dāng)前行存入大的data中
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		//2.準(zhǔn)備好標(biāo)題文字,放入 bt 中
		Vector bt = new Vector(); //bt 用于存放標(biāo)題
			bt.add("商品編號(hào)");
			bt.add("商品名字");
			bt.add("商品數(shù)量");
			bt.add("商品價(jià)格");

		//3.最終任務(wù)就是用上面準(zhǔn)備好的 數(shù)據(jù) 和 標(biāo)題 填充 表格
		jTable1.setModel(new DefaultTableModel(data, bt));
	}

③ 點(diǎn)擊查詢按鈕時(shí)的操作—模糊查詢:
Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增
完整代碼-在主窗體中編寫

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
		// 點(diǎn)擊查詢按鈕要完成的工作:
		//1.獲取文本框的內(nèi)容
		String text = wbk.getText();
		
		//2.拼接出一個(gè)模糊查詢的sql語(yǔ)句
		//select * from tb_goods where goodName like '%鼠標(biāo)%'
		String sql = "select * from tb_goods where goodName like '%" + text + "%'";

		//3.調(diào)用初始化表格的方法
		initTable(sql);
	}

④ 實(shí)現(xiàn)刪除按鈕的功能:
Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增
完整代碼-在主窗體中編寫

/* 點(diǎn)擊刪除按鈕時(shí):
	 * 1.判斷是否選中了某一行,如果沒(méi)選中,則給出提示:"您未選擇任何數(shù)據(jù)"
	 * 2.如果選中了某一行,則給出確認(rèn)提示以防止誤刪除,"您確定要?jiǎng)h除嗎?",點(diǎn)擊確定返回0,點(diǎn)擊取消返回1。
	 * 3.執(zhí)行刪除:找到對(duì)應(yīng)的行號(hào)---獲取id---根據(jù)id組裝sql語(yǔ)句---執(zhí)行刪除
	 * */
	private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

		int rowCount = jTable1.getSelectedRowCount(); //獲取選中的行數(shù),如果為0,則說(shuō)明沒(méi)有選中任何行
		if (rowCount == 0) {
			JOptionPane.showMessageDialog(null, "您未選擇任何數(shù)據(jù)");
		} else {
			int isOk = JOptionPane.showConfirmDialog(null, "您確定要?jiǎng)h除嗎?", "刪除確認(rèn)",
					JOptionPane.YES_NO_OPTION);
			//			System.out.println(isOk);
			if (isOk == 0) { //如果值是 0 ,說(shuō)明點(diǎn)擊了確定要?jiǎng)h除
				int selectedRow = jTable1.getSelectedRow();  //獲取選中行的索引
				int id = (Integer) jTable1.getModel()
						.getValueAt(selectedRow, 0); //找到要?jiǎng)h除的行的第一列,其實(shí)就是要?jiǎng)h除的商品的編號(hào)
				String sql = "delete from tb_goods where goodid=" + id; //拿到商品編號(hào)后,組裝出刪除的sql語(yǔ)句
				boolean zsg = BaseDao.zsg(sql); //執(zhí)行刪除操作,并返回是否成功
				if (zsg) {
					JOptionPane.showMessageDialog(null, "刪除成功!");
					
					//刪除后,調(diào)用表格初始化的方法,重新加載數(shù)據(jù),使表格加載顯示最新數(shù)據(jù):
					initTable("select * from tb_goods");  
				} else {
					JOptionPane.showMessageDialog(null, "刪除失??!");
				}
			}
		}
	}

⑤ 新增商品(在新增商品窗體中的 新增按鈕上編寫)
新增商品中
注意:新增完成后,返回主界面,自動(dòng)刷新主界面數(shù)據(jù),需要修改前面的代碼
Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增
完整代碼-在新增商品窗體中編寫

	// 新增商品的處理過(guò)程:
	private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

		// 1. 獲取所有文本框的數(shù)據(jù)
		String idtext = tx1.getText().trim();   //tx1是第一個(gè)文本框的名字(改名了)
		String name = tx2.getText().trim();
		String numtext = tx3.getText().trim();
		String pricetext = tx4.getText().trim();
		
		//2.如果有沒(méi)填寫的文本框,則給出提示
		if ("".equals(idtext) || "".equals(name) || "".equals(numtext)
				|| "".equals(pricetext)) {
			JOptionPane.showMessageDialog(null, "請(qǐng)錄入完整信息!");
		} 
		//3.如果所有的文本框都填寫了,則進(jìn)行插入操作:
		else {
		//準(zhǔn)備并拼裝新增sql語(yǔ)句,首先將文本框獲取到的字符串 轉(zhuǎn)換為數(shù)據(jù)庫(kù)表中相對(duì)應(yīng)的數(shù)據(jù)類型
			int id = Integer.parseInt(idtext);
			int num = Integer.parseInt(numtext);
			double pri = Double.parseDouble(pricetext);
			
			//拼裝sql新增語(yǔ)句:
			String sql = String.format("insert into tb_goods values(%d,'%s',%d,%f)", id, name,num, pri);
			
			if (BaseDao.zsg(sql)) {  	//真正的執(zhí)行,并根據(jù)返回結(jié)果給出提示
				
				JOptionPane.showMessageDialog(null, "新增商品成功!");
				// this.setVisible(false); //隱藏當(dāng)前窗體
				this.dispose(); // 銷毀擋墻窗體

				// 下面這一行是,自動(dòng)刷新主頁(yè)面,重新加載數(shù)據(jù)(根據(jù)考試要求進(jìn)行編寫,還需要修改其他地方,詳見后面的**備注**)
				// 注意:在主窗體中的 initTable 方法定義,需要由 private 改為 public,否則無(wú)法訪問(wèn)?。?/span>
				// mp.initTable("SELECT * FROM tb_goods");  //mp:為主頁(yè)窗體對(duì)象,在前面進(jìn)行了定義。**詳細(xì)在下面描述**
			}
			else{
				JOptionPane.showMessageDialog(null, "新增商品失敗!");
			}
		}
	}

以下內(nèi)容自行選擇查看閱讀,跟添加商品后,刷新加載主頁(yè)數(shù)據(jù)有關(guān)。(可先掌握以上內(nèi)容,上面內(nèi)容熟練后,再練習(xí)下面內(nèi)容)
備注:要實(shí)現(xiàn)新增完成后,自動(dòng)刷新主窗體的功能,需要修改的地方:

新增商品窗體中:
在新增窗體的頂部編寫代碼。聲明定義一個(gè)主窗體的變量,用于接受主窗體對(duì)象;創(chuàng)建一個(gè)帶參的構(gòu)造器,用于在主窗體創(chuàng)建新增窗體對(duì)象,并傳參
核心代碼-在新增窗體中編寫:

public class Add extends javax.swing.JFrame {

	//聲明一個(gè)主窗體類型的屬性
	MainPage mp;

	/** Creates new form Add */
	public Add() {
		initComponents();
	}

	//寫一個(gè)帶參數(shù)的構(gòu)造器,給上面聲明的主窗類型的變量體賦值
	public Add(MainPage mp) {
		initComponents();
		this.mp = mp; //給上面聲明的主窗類型的變量體賦值
	}

主窗體中:
在主窗體中編寫代碼。當(dāng)點(diǎn)擊新增商品按鈕,打開新增商品窗體時(shí),將本窗體窗體給新增商品窗體
完整代碼-在主窗體中編寫文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-497081.html

	private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
		//將本窗體(主窗體)this 作為參數(shù),傳遞給 添加商品的窗體,以便添加完商品后操作主窗體更新數(shù)據(jù)
		Add add = new Add(this);  
		add.setVisible(true);
	}

到了這里,關(guān)于Java桌面程序:加載數(shù)據(jù)-模糊查詢-刪除-新增的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包