Java实战之用Swing实现通讯录管理系统
1.系统功能
登录系统 查询信息 新增信息 修改信息 删除信息2.环境配置
JDK版本:1.8Mysql:8.0.13
3.数据库
/* 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.工程截图
二、系统展示1.登录页
2.主页
3.查询信息
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();}}/** * 连接数据库 * * @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('用户名:');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, '用户名或密码不正确!!!');}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 blocke.printStackTrace();} finally {}}}
到此这篇关于Java实战之用Swing实现通讯录管理系统的文章就介绍到这了,更多相关JavaSwing实现通讯录管理内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. 在Asp.net core项目中使用WebSocket2. 将properties文件的配置设置为整个Web应用的全局变量实现方法3. JavaScript实现组件化和模块化方法详解4. ASP.NET MVC使用异步Action的方法5. python3.8.1+selenium实现登录滑块验证功能6. 利用FastReport传递图片参数在报表上展示签名信息的实现方法7. Python制作一个随机抽奖小工具的实现8. 使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例9. SpringMVC+Jquery实现Ajax功能10. matplotlib如何设置坐标轴刻度的个数及标签的方法总结