Java Swing实现简单的记事本(-- 内容存到数据库中 + JDBC--)

标题ava Swing实现简单的记事本

声明:(本代码直接复制肯定运行不了,因为里面一些数据库的东西不一样)

一:简单介绍

一个简单的记事本,要实现添加和查询的功能。(添加到数据库中,并且从数据库中查询)

本代码是把数据存到数据库中,需要有一点点数据库(增,查)的知识,还需要会一些JDBC(就是java连接数据库)的知识。不会的可以先去学习一下JDBC,内容不是很多。

- 添加 :添加文字,添加图片
- 查找 :用添加的日期,查找对应的内容,并且把图片也显示出来

二:代码

import java.sql.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class ConnectionTest02 extends JFrame{
	public static void main(String[] args){
			new ConnectionTest02().init();
	}
	
	JFrame f = new JFrame("记事本");
    JFrame f_1 = new JFrame("查询");

	JLabel label01 = new JLabel("日期: ");
	JLabel label02 = new JLabel("内容: ");
	JLabel label03 = new JLabel("图片路径: ");
    JLabel label04 = new JLabel("请输入要查询的time:");
	JLabel label05 = new JLabel();
	JLabel label06 = new JLabel("查询内容: ");

	JTextField textfield = new JTextField(25);
	JTextArea textArea = new JTextArea(10, 30);
	JTextArea textArea02 = new JTextArea(10, 30);
	JTextField textfield02 = new JTextField(20);
	JTextField textfield03 = new JTextField(20);

	JButton button01 = new JButton("确定保存");
	JButton button02 = new JButton("清空");
	JButton button03 = new JButton("查询");
	JButton button04 = new JButton("查询");
   
	public void init(){

		JPanel p = new JPanel();
		p.add(label01);
		p.add(textfield);

		JPanel p02 =new JPanel();
		p02.add(label02);
		p.add(button01);
		p02.add(textArea);

		JPanel p03 =new JPanel();
		p03.add(label03);
		p03.add(textfield02);

        JPanel p04 =new JPanel();
        p03.add(button02);
		p03.add(button03);

		// 这里使用的是Box垂直组件
		Box vertical = Box.createVerticalBox();
		vertical.add(p);
		vertical.add(p02);
        vertical.add(p03);
		vertical.add(p04);
        f.add(vertical);
		f.pack();
	    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 这是JFrame中window包中的方法,目的是使得页面显示在中间位置
		f.setLocationRelativeTo(null);		        
		// 按钮-保存-处理
		button01.addActionListener( new ActionListener() {			
			public void actionPerformed(ActionEvent e)
			{
                 testConnextion3();
				 clear();
			}
		});
        // 按钮-清空-处理
		button02.addActionListener( new ActionListener() {			
			public void actionPerformed(ActionEvent e)
			{
				clear();
			}
		});
        // 按钮-查询-处理
		// 进行查询的时候将会产生一个新的页面
		button03.addActionListener( new ActionListener() {			
			public void actionPerformed(ActionEvent e)
			{
               init2();
			}
		});
		// 设置宽高
	    f.setSize(500,500);
	    f.setVisible(true);
	}
    public void init2(){

        JPanel p05 =new JPanel();
        p05.add(label04);
        p05.add(textfield03);
		p05.add(button04);
		p05.add(label05);
        
		JPanel p06 = new JPanel();
		p06.add(label06);
		p06.add(textArea02);
        
		// // 这里使用的是Box垂直组件
		Box vertical02 = Box.createVerticalBox();
		vertical02.add(p05);
		vertical02.add(p06);
        f_1.add(vertical02);
		f_1.pack();
	    f_1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 这是JFrame中window包中的方法,目的是使得页面显示在中间位置
		f_1.setLocationRelativeTo(null);		        
		// 按钮查询处理
		button04.addActionListener( new ActionListener() {			
			public void actionPerformed(ActionEvent e)
			{
				look();
			}
		});

		// 设置宽高
	    f_1.setSize(500,500);
	    f_1.setVisible(true);
	}

	// 最终版--连接(将连接需要的信息保存在配置文件中)
	public void testConnextion3(){
		Connection conn = null;
		PreparedStatement ps = null;
		String str01 = textfield.getText();
		String str02 = textArea.getText();
		String str03 = textfield02.getText();
		try{
		// 使用资源绑定器绑定属性配置文件
		ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
		String driver = bundle.getString("driver");
		String url = bundle.getString("url");
		String user = bundle.getString("user");
		String password = bundle.getString("password");
		// 1、注册驱动
		Class.forName(driver);
		// 2、获取连接
		conn = DriverManager.getConnection(url,user,password);
		System.out.println("数据库连接对象 =" + conn);
		// 这里的图片路径我只是把图片和java文件放在了同一个文件夹下。所以保存的时候我只保存的是图片的文件名
        String sql = "insert into riji(id,text,bir,url)values(?,?,?,?)";
		ps = conn.prepareStatement(sql);  // 用于将参数化的SQL语句发送到数据库。
	    // 填充占位符
		ps.setString(1,str01);
		ps.setString(2,str02);
		ps.setString(3,"2021-6-8");
		ps.setString(4,str03);
        // 执行
		ps.executeUpdate();
		}catch(Exception e){
            e.printStackTrace();
		}finally{
		// 资源关闭
		try{
			if(ps != null)
               ps.close();
		}catch(SQLException e){
			e.printStackTrace();
		}
		try{
         if(conn!=null)
		     conn.close();
		}catch(SQLException e){
           e.printStackTrace();
		}
		}
	}

	// 按钮清空方法
	public void clear(){
		textfield.setText("");
		textArea.setText("");
		textfield02.setText("");
	}

    // 查找功能的实现
	public void look(){
		String str04 = textfield03.getText();
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try{
		// 使用资源绑定器绑定属性配置文件
		ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
		String driver = bundle.getString("driver");
		String url = bundle.getString("url");
		String user = bundle.getString("user");
		String password = bundle.getString("password");
		// 1、注册驱动
		Class.forName(driver);
		// 2、获取连接
		conn = DriverManager.getConnection(url,user,password);
		System.out.println("数据库连接对象 =" + conn);
        // 预编译sql语句
        String sql = "select id,text,bir,url from riji where id = ?";
		ps = conn.prepareStatement(sql);   // 用于将参数化的SQL语句发送到数据库。
        
		ps.setString(1,str04);
		rs = ps.executeQuery();
		if(rs.next()){
			String id =rs.getString(1);
			String text = rs.getString(2);
			String bir = rs.getString(3);
            String url01 = rs.getString(4);
			System.out.println(id +" , " + text+" , " + bir + "图片路径:"+url01);
            textArea02.append(text);     // 查询的时候把文字显示出来
            label05.setPreferredSize(new Dimension(100,100));  // 设置label的大小,就是可以固定图片输出的大小
			label05.setIcon(new ImageIcon(url01));    // 把对应的图片显示出来
		}
		ps.execute();
		}catch (Exception e){
			e.printStackTrace();
		}finally{
		// 资源关闭
		try{
			if(ps != null)
               ps.close();
		}catch(SQLException e){
			e.printStackTrace();
		}
		try{
         if(conn!=null)
		     conn.close();
		}catch(SQLException e){
           e.printStackTrace();
		}
		try{
         if(rs!=null)
		     rs.close();
		}catch(SQLException e){
           e.printStackTrace();
		}
		}
	}
}

因为我这里使用的是------资源绑定器绑定属性配置文件,所以还需要有一个后缀为.properties的文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/users-long
user=root
password=这里要填写你自己设置的数据库密码

三:效果展示

这里查找的时候,输入查找的日期。然后会出现当天的内容,和当时添加的图片
在这里插入图片描述
我的数据库表查看到的结果是这样的:

在这里插入图片描述

四:小结

这个代码也是之前写的了,里面有很多内容也是看视频,然后拼拼凑凑,慢慢凑出来的。里面主要的内容就是JDBC,连接数据库了吧。然后完成其中的一些添加功能(里面用到了数据库的添加),还有一个就是查找功能(同样是数据库)。当时还有一个搞了挺久的,就是那个把图片显示出来。

使用的是:

label05.setIcon(new ImageIcon(url01));  // 把对应的图片显示出来

感兴趣的可以自己去查查 。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值