Java實(shí)戰(zhàn)之用Swing實(shí)現(xiàn)通訊錄管理系統(tǒng)
一、系統(tǒng)介紹
1.系統(tǒng)功能
- 登錄系統(tǒng)
- 查詢(xún)信息
- 新增信息
- 修改信息
- 刪除信息
2.環(huán)境配置
JDK版本:1.8
Mysql:8.0.13
3.數(shù)據(jù)庫(kù)
/* Navicat Premium Data Transfer Source Server : MySQL Source Server Type : MySQL Source Server Version : 80013 Source Host : localhost:3306 Source Schema : swing_address Target Server Type : MySQL Target Server Version : 80013 File Encoding : 65001 Date: 10/06/2021 23:56:16 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for my_address_book -- ---------------------------- DROP TABLE IF EXISTS `my_address_book`; CREATE TABLE `my_address_book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `mail` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `birthday` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `note` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Compact; -- ---------------------------- -- Records of my_address_book -- ---------------------------- INSERT INTO `my_address_book` VALUES (2, '楊XX', '男', '18911616917', '1@163.com', '20200107', 'XX'); INSERT INTO `my_address_book` VALUES (3, '222', '女', '22', '22', '22', '22'); INSERT INTO `my_address_book` VALUES (4, '1', '女', '1', '1', '1', '1'); -- ---------------------------- -- Table structure for my_address_login -- ---------------------------- DROP TABLE IF EXISTS `my_address_login`; CREATE TABLE `my_address_login` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Compact; -- ---------------------------- -- Records of my_address_login -- ---------------------------- INSERT INTO `my_address_login` VALUES (1, '1', '1'); SET FOREIGN_KEY_CHECKS = 1;
4.工程截圖

二、系統(tǒng)展示
1.登錄頁(yè)

2.主頁(yè)

3.查詢(xún)信息

4.新增信息

5.修改信息

三、部分代碼
DBConn.java
package com.txl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConn {
private static String driverName = "com.mysql.cj.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/swing_address?serverTimezone=UTC";
private static String userName = "root";
private static String password = "admin";
private Connection conn;
private Statement stmt;
public DBConn() {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 連接數(shù)據(jù)庫(kù)
*
* @return
* @throws SQLException
*/
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, userName, password);
}
/**
* 釋放資源
*/
public void dispose() {
try {
if (conn != null) {
conn.close();
}
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Login.java
package com.txl;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
public class Login {
public static void main(String args[]) {
Login l=new Login();
l.showUI();
}
public void showUI() {
javax.swing.JFrame login=new javax.swing.JFrame();
login.setTitle("登錄通訊錄");
login.setSize(340,230);
login.setDefaultCloseOperation(3);
login.setLocationRelativeTo(null);
login.setResizable(false);
java.awt.FlowLayout fl=new java.awt.FlowLayout(FlowLayout.CENTER,5,5);
login.setLayout(fl);
JLabel labname=new JLabel();
labname.setText("用戶(hù)名:");
labname.setPreferredSize(new java.awt.Dimension(60, 60));
login.add(labname);
JTextField textname=new JTextField();
textname.setPreferredSize(new java.awt.Dimension(250, 30));
login.add(textname);
JLabel labpassword=new JLabel();
labpassword.setText("密 碼:");
labpassword.setPreferredSize(new java.awt.Dimension(60, 60));
login.add(labpassword);
JPasswordField jp=new JPasswordField();
jp.setPreferredSize(new java.awt.Dimension(250, 30));
login.add(jp);
javax.swing.JButton button=new javax.swing.JButton();
button.setText("登錄");
button.setPreferredSize(new java.awt.Dimension(100, 40));
login.add(button);
login.setVisible(true);
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
DBConn dbconn = new DBConn();
Statement stmt = null;
ResultSet rs = null;
try {
stmt = dbconn.getConnection().createStatement();
rs = stmt.executeQuery("select * from my_address_login where username='"+textname.getText()+"' and password='"+jp.getText()+"'");
if (rs.next()) {
new MyAddressBook();
login.dispose();
}else{
JOptionPane.showMessageDialog(null, "用戶(hù)名或密碼不正確!!!");
}
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (rs != null) {
rs.close();
}
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
});
}
}
Test.java
package com.txl;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
public class Test {
public static void main(String[] args) {
DBConn dbconn = new DBConn();;;;;
try {
for(int i =0 ;i<1000000;i++){
String sql = "insert into student(name, age)values('XXX"+i+"',30)";
PreparedStatement pstmt = dbconn.getConnection().prepareStatement(sql);
System.out.println(sql);
pstmt.execute(sql);
pstmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
}
}
到此這篇關(guān)于Java實(shí)戰(zhàn)之用Swing實(shí)現(xiàn)通訊錄管理系統(tǒng)的文章就介紹到這了,更多相關(guān)JavaSwing實(shí)現(xiàn)通訊錄管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java實(shí)現(xiàn)通訊錄管理系統(tǒng)項(xiàng)目
- Java實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng)
- java實(shí)現(xiàn)通訊錄管理系統(tǒng)
- java實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)通訊錄
- java使用集合實(shí)現(xiàn)通訊錄功能
- Java實(shí)現(xiàn)XML文件學(xué)生通訊錄
- 簡(jiǎn)單實(shí)現(xiàn)Java通訊錄系統(tǒng)
- java web個(gè)人通訊錄系統(tǒng)設(shè)計(jì)
- java微信企業(yè)號(hào)開(kāi)發(fā)之通訊錄
- Java實(shí)現(xiàn)簡(jiǎn)易界面通訊錄
相關(guān)文章
在idea中g(shù)it實(shí)現(xiàn)里查看歷史代碼方式
這篇文章主要介紹了在idea中g(shù)it里查看歷史代碼的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
Java使用Tess4J實(shí)現(xiàn)圖像識(shí)別方式
這篇文章主要介紹了Java使用Tess4J實(shí)現(xiàn)圖像識(shí)別方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Javaweb實(shí)戰(zhàn)之實(shí)現(xiàn)蛋糕訂購(gòu)系統(tǒng)
隨著網(wǎng)絡(luò)的普及與發(fā)展,網(wǎng)上購(gòu)物逐漸成為一種主流消費(fèi)的方式。這篇文章主要介紹了通過(guò)JavaWeb制作一個(gè)線上蛋糕訂購(gòu)系統(tǒng),文中示例代碼講解詳細(xì),需要的朋友可以參考一下2021-12-12
異常解決SpringBoot項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息問(wèn)題
這篇文章主要介紹了異常解決SpringBoot項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Java 使用json-lib處理JSON詳解及實(shí)例代碼
這篇文章主要介紹了Java 使用json-lib處理JSON詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
Spring Boot 實(shí)現(xiàn)圖片上傳并回顯功能
本篇文章給大家分享Spring Boot 實(shí)現(xiàn)圖片上傳并回顯功能,文中通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-07-07

