前言

欢迎大家来到我的博客,请各位看客们点赞、收藏、关注三连!

欢迎大家关注我的知识库,Java之从零开始 · 语雀

你的关注就是我前进的动力!

CSDN专注于问题解决的博客记录,语雀专注于知识的收集与汇总,包括分享前沿技术。


学完JAVA Swing,不加点餐???

Liunx 全操作过程 【JDK1.8配置、MySQL、Docker、mariaDB、nginx、tomcat、redis、各种问题解决总结】

JDK1.8新特性

UML统一建模语言

此次图形界面的增删改查,基本上非常简单,想要快速看原项目,请直接打开连接:链接:https://pan.baidu.com/s/1lFsOTH9D9Z-3W9yRDAVF7w 
提取码:435o

关于各位新手不知道怎么启动,这个视频里有如何运行的过程。

链接:https://pan.baidu.com/s/1ud3qyL1bOqOSCFGoTbRDEg 
提取码:i90x

首先,看看界面样子吧。

因为我用的eclipse开发的swing,所以我在eclipse下载了一个插件,如果你们导项目进去下载了插件,是可以进行图形化设计。而插件就自行百度就行,简便方式打开Help ->  Eclipse Marketplace  ->  直接搜索Windows,然后找到Windowsbuilder,下载下来,就可以使用了,如果没有搜索到,直接点击查询,将Windowsbuilder下载下来安装就行。还不行就按照网上的方式安装就行,下面几张截图,

废话不多说,直接贴代码

jframe主界面代码

package com.lisonglin.frame;import java.awt.BorderLayout;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;import com.lisonglin.model.Student;
import com.lisonglin.service.StudentService;
import com.lisonglin.util.DateUtil;import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.util.List;
import java.awt.event.ActionEvent;public class MainFrame extends JFrame {private JPanel contentPane;private JTable table;private String[] columnCount= {"序号","姓名","成绩","生日","城市"};private List<Student> list;public static Student stu;public static MainFrame frame;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {frame = new MainFrame();//窗口居中frame.setLocationRelativeTo(null);frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public MainFrame() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 764, 469);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(29, 58, 692, 332);contentPane.add(scrollPane);table = new JTable();scrollPane.setViewportView(table);JButton button = new JButton("查询");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {quaryAll();}});button.setBounds(58, 22, 93, 23);contentPane.add(button);JButton button_1 = new JButton("添加");button_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {new FromFjame().setVisible(true);}});button_1.setBounds(205, 22, 93, 23);contentPane.add(button_1);//全屏
//      setExtendedState(JFrame.MAXIMIZED_BOTH);JButton button_2 = new JButton("修改");button_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {update();quaryAll();}});button_2.setBounds(357, 22, 93, 23);contentPane.add(button_2);JButton button_3 = new JButton("删除");button_3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {remove();quaryAll();}});button_3.setBounds(539, 22, 93, 23);contentPane.add(button_3);}//查询public void quaryAll() {StudentService ss=new StudentService();list = ss.queryAll();if(list==null) {JOptionPane.showMessageDialog(null, "服务器繁忙");return;}Object[][] data = DateUtil.listToArray(list);table.setModel(new DefaultTableModel(data, columnCount));}//删除private void remove() {int i = table.getSelectedRow();Student s = list.get(i);int code = new StudentService().delete(s.getId());if(code==0) {JOptionPane.showMessageDialog(null, "删除成功");return;}else {JOptionPane.showMessageDialog(null,DateUtil.errors.get(code) );}quaryAll();}//修改private void update() {int i = table.getSelectedRow();stu = list.get(i);new FromFjame().setVisible(true);}
}

jframe修改/增加界面

package com.lisonglin.frame;import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.LocalDate;import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;import com.lisonglin.model.Student;
import com.lisonglin.service.StudentService;
import com.lisonglin.util.DateUtil;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;public class FromFjame extends JFrame {/*** */private static final long serialVersionUID = 1L;private JPanel contentPane;private JTextField textField;private JTextField textField_1;private JTextField textField_3;private JComboBox comboBox;private JComboBox comboBox_1;private JComboBox comboBox_2;public FromFjame() {setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(100, 100, 314, 436);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);JLabel label = new JLabel("添加学生");label.setFont(new Font("宋体", Font.PLAIN, 17));label.setBounds(118, 20, 78, 39);contentPane.add(label);JLabel label_1 = new JLabel("姓名");label_1.setBounds(23, 71, 40, 15);contentPane.add(label_1);textField = new JTextField();textField.setBounds(87, 68, 155, 21);contentPane.add(textField);textField.setColumns(10);JLabel label_2 = new JLabel("成绩");label_2.setBounds(23, 128, 40, 15);contentPane.add(label_2);textField_1 = new JTextField();textField_1.setBounds(87, 125, 155, 21);contentPane.add(textField_1);textField_1.setColumns(10);JLabel lblNewLabel = new JLabel("生日");lblNewLabel.setBounds(23, 191, 32, 15);contentPane.add(lblNewLabel);JLabel label_3 = new JLabel("城市");label_3.setBounds(23, 251, 32, 15);contentPane.add(label_3);textField_3 = new JTextField();textField_3.setBounds(87, 248, 155, 21);contentPane.add(textField_3);textField_3.setColumns(10);comboBox = new JComboBox();comboBox.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {addDay();}});comboBox.setBounds(87, 188, 54, 21);contentPane.add(comboBox);comboBox_1 = new JComboBox();comboBox_1.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {addDay();}});comboBox_1.setBounds(151, 188, 47, 21);contentPane.add(comboBox_1);comboBox_2 = new JComboBox();comboBox_2.setBounds(202, 188, 40, 21);contentPane.add(comboBox_2);//选择框添加内容addBirth();JButton button = new JButton("添加");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(MainFrame.stu==null) {add();}else {update();}}});button.setBounds(37, 325, 93, 23);contentPane.add(button);JButton button_1 = new JButton("返回");button_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//每次返回清空信息MainFrame.stu=null;//退出dispose();}});button_1.setBounds(169, 325, 93, 23);contentPane.add(button_1);//当点击的行数的信息不为空时,进行下面操作if(MainFrame.stu!=null) {textField.setText(MainFrame.stu.getName());textField_1.setText(MainFrame.stu.getScore()+"");textField_3.setText(MainFrame.stu.getCity());LocalDate birth =MainFrame.stu.getBirth();comboBox.setSelectedItem(birth.getYear());comboBox_1.setSelectedItem(birth.getMonthValue());comboBox_2.setSelectedItem(birth.getDayOfMonth());button.setText("修改");}}//选择框填充内容private void addBirth() {int year=LocalDate.now().getYear();for(int i=1970;i<=year;i++) {comboBox.addItem(i);}for(int i=1;i<=12;i++) {comboBox_1.addItem(i);}}private void addDay() {int year=1970;int month=1;int day=0;Object oYear = comboBox.getSelectedItem();Object oMonth =comboBox_1.getSelectedItem();if(oYear==null||oMonth==null) {return;}else {year=(int) oYear;month=(int) oMonth;}boolean flag=(year%4==0&&year%100!=0)||year%400==0;switch(month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:day=31;break;case 2:day=flag?28:29;break;default:day=30;break;}comboBox_2.removeAllItems();for(int i=1;i<=day;i++) {comboBox_2.addItem(i);}}//增加private void add() {String name=textField.getText();String strSouce=textField_1.getText();String city=textField_3.getText();int year=(int)comboBox.getSelectedItem();int month=(int) comboBox_1.getSelectedItem();int day=(int) comboBox_2.getSelectedItem();Student s=new Student(name,Double.parseDouble(strSouce),LocalDate.of(year, month, day),city);int insert = new StudentService().insert(s);       if(insert==0) {JOptionPane.showMessageDialog(null, "添加成功");textField.setText("");textField_1.setText("");textField_3.setText("");return;}else {JOptionPane.showMessageDialog(null, DateUtil.errors.get(insert));}}//修改private void update() {String name=textField.getText();String strSouce=textField_1.getText();String city=textField_3.getText();int year=(int)comboBox.getSelectedItem();int month=(int) comboBox_1.getSelectedItem();int day=(int) comboBox_2.getSelectedItem();MainFrame.stu.setName(name);MainFrame.stu.setScore(Double.parseDouble(strSouce));MainFrame.stu.setBirth(LocalDate.of(year, month, day));MainFrame.stu.setCity(city);int i = new StudentService().update(MainFrame.stu);if(i==0) {JOptionPane.showMessageDialog(null, "修改成功");MainFrame.stu=null;textField.setText("");textField_1.setText("");textField_3.setText("");MainFrame.frame.quaryAll();dispose();return;}else {JOptionPane.showMessageDialog(null, DateUtil.errors.get(i));}}
}

连接数据库工具类

package com.lisonglin.util;import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;import com.mchange.v2.c3p0.ComboPooledDataSource;public class JdbcUtil {public static final ComboPooledDataSource ds=new ComboPooledDataSource();static {//加载连接数据库的信息try {InputStream is =new FileInputStream("jdbcinfo.config");Properties porp =new Properties();porp.load(is);is.close();//获取连接数据库信息String user =porp.getProperty("user");String pwd =porp.getProperty("pwd");String url=porp.getProperty("url");String driver =porp.getProperty("driver");//设置链接库的信息ds.setUser(user);ds.setDriverClass(driver);ds.setJdbcUrl(url);ds.setPassword(pwd);} catch (Exception e) {e.printStackTrace();}}public static Connection getConnection() {try {return ds.getConnection();} catch (SQLException e) {e.printStackTrace();}return null;}public static void release(Connection conn) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}

配置信息

user=root
pwd=123
url=jdbc:mysql://localhost:3306/test?userSSL=false
driver=com.mysql.jdbc.Driver

数据访问包--增删改查实现代码

package com.lisonglin.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.lisonglin.model.Student;
import com.lisonglin.util.DateUtil;
import com.lisonglin.util.JdbcUtil;public class StudentDao {public void add(Student s) throws SQLException {//获取连接Connection conn = JdbcUtil.getConnection();//准备sqlString sql="insert into stus values(null,?,?,?,?)";//获取PreparedStatementPreparedStatement ps=conn.prepareStatement(sql);//填充占位符ps.setString(1, s.getName());ps.setDouble(2, s.getScore());ps.setObject(3, s.getBirth());ps.setString(4, s.getCity());//执行sqlps.executeUpdate();//关闭连接JdbcUtil.release(conn);}public void detele(int id) throws SQLException {//获取连接Connection conn = JdbcUtil.getConnection();//准备sqlString sql="delete from stus where id=?";//获取PreparedStatementPreparedStatement ps=conn.prepareStatement(sql);//填充占位符ps.setInt(1, id);//执行sqlps.executeUpdate();//关闭连接JdbcUtil.release(conn);}public void update(Student s) throws SQLException {Connection conn = JdbcUtil.getConnection();String sql="update stus set name=?,score=?,birth=?,city=? where id=?";PreparedStatement ps=conn.prepareStatement(sql);ps.setString(1, s.getName());ps.setDouble(2, s.getScore());ps.setObject(3, s.getBirth());ps.setString(4, s.getCity());ps.setInt(5, s.getId());ps.executeUpdate();JdbcUtil.release(conn);}public List<Student> queryAll() throws SQLException{List<Student> stus=new ArrayList<>();//获取连接Connection conn = JdbcUtil.getConnection();//准备sqlString sql="select * from stus";//获取PreparedStatementPreparedStatement ps=conn.prepareStatement(sql);//执行sqlResultSet rs = ps.executeQuery();while(rs.next()) {Student s=new Student();s.setId(rs.getInt(1));s.setName(rs.getString(2));s.setScore(rs.getDouble(3));s.setBirth(DateUtil.dateToLocalDate(rs.getDate(4)));s.setCity(rs.getString(5));stus.add(s);}//关闭连接JdbcUtil.release(conn);return stus;}
}

数据库就不贴了,打包里面有。

=========分割线===========

大家对于此项目有诸多环境问题,基本上私信我的都是那个jar包没有,数据库没有导入。

欢迎大家支持我!有稳定收入的各位可以支持一下,谢谢,支付宝二维码!

JAVA swing实现简单增删改查相关推荐

  1. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  2. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  3. springboot+mybatis+thymleft 做一套简单增删改查

    首先我们先创建项目 注意:创建SpringBoot项目时一定要联网不然会报错 项目创建好后我们首先对 application.yml 进行编译 #指定端口号 server:port: 8888 #配置 ...

  4. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  5. Java连接Mysql数据库增删改查实现

    Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...

  6. 【无标题】vue 简单增删改查表格

    <template><div><h2>table简单增删改查</h2><input type="text" v-model=& ...

  7. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  8. JDBC:JAVA连接Mysql实现增删改查

    总有特别赶的时候,小高叫你如何速通JAVA连接数据库Mysql实现增删改查.CV战士 一.前置准备工作 1. 安装IDEA,配置JAVA环境 2. 安装Mysql,配置Mysql环境变量 3. 安装S ...

  9. Java 实现Gbase数据库增删改查功能

    Java 实现Gbase数据库增删改查功能 具体代码如下 主要: 要记得在官网下载驱动包gbase-connector-java-8.3-bin.jar package com.advance.JDB ...

最新文章

  1. IIS配置跨服务器迁移
  2. android442电视怎么投屏,哔哩哔哩怎么投屏电视? b站投屏的方法
  3. 一个引发程序员们干架的问题
  4. java一个界面用另一个界面的值_如何将参数/值从一个弹出窗口传递到Angular2中的另一个弹出窗口...
  5. dwz ajax session超时跳转登录页(struts2自定义阻碍器)
  6. 2015 上半年 JavaScript 使用统计数据
  7. linux下的源代码分析工具understand 2014100328681022
  8. Java补缺补漏—基本数据类型与引用数据类型
  9. 淘宝分类大全及其分组 (MySql, xls)文件,上下关系,拼写,层级,层级树,提示,2022年2月28日数据
  10. 海力士固态测试软件,【海力士 256G MSATA固态硬盘使用总结】性能|接口|数据|品牌_摘要频道_什么值得买...
  11. wordpress目录文件结构
  12. 亲测~Win10开启系统自带Wifi热点步骤
  13. LaTeX 常用符号命令大全
  14. 防火墙基础:ISA Server 防火墙客户端和Forefront TMG 客户端介绍
  15. uniapp封装request请求简洁明了(使用Promise封装)
  16. Delphi输出日志的方法
  17. 6000字长文,带你用Python完成 “Excel合并(拆分)” 的各种操作!
  18. 我的时间都去哪里了?
  19. 什么是番茄工作法?如何使用番茄工作法?
  20. 成都 顺兴茶馆 看变脸

热门文章

  1. fastadmin需要php,fastadmin修改后台入口提示 模块不存在:admin.php
  2. 自动化办公神器!用Python批量识别发票并录入到Excel表格!可以讨财务女神开心了!
  3. gst-rtsp-server搭建与测试
  4. stm32--JLINK调试
  5. 计算机睡眠无法锁屏是怎么设置密码,教你电脑待机锁屏怎么设置
  6. 【RMF】ros机器人中间件框架学习系列二:运行demos
  7. The Source and Develop of RootKit
  8. ssm电影院管理系统的设计与实现毕业设计源码241505
  9. 一款可以排查重复照片,清理多余照片的照片管理软件,使用PowerPhotos的图像浏览器快速查看照片
  10. M4V格式怎么在线转换MP4格式