用单例模式和子线程实现查询数据库中的表单数据。

1、创建一个名为DatabaseQuery的类,实现Runnable接口并实现单例模式。

2、在单例模式的构造函数中建立数据库连接,并创建Statement对象。

3、通过getInstance()方法获取DatabaseQuery类的实例。

4、在run()方法中执行数据库查询,并输出查询结果。

5、在main()方法中获取DatabaseQuery实例,创建一个线程并启动。

代码如下:单例模式的查询子线程。

 

package com.singletonmodel;

import java.sql.*;

public class DatabaseQuery implements Runnable {
	private static DatabaseQuery instance;
	private Connection connection;
	private Statement statement;

	private DatabaseQuery() {
		try {
			connection = DriverManager.getConnection("jdbc:mysql://localhost/test_data?user=root&password=admin");
			statement = connection.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static DatabaseQuery getInstance() {
		if (instance == null) {
			instance = new DatabaseQuery();
		}
		return instance;
	}

	@Override
	public void run() {
		try {
			String query = "SELECT * FROM words_info";
			ResultSet resultSet = statement.executeQuery(query);

			while (resultSet.next()) {
				int id = resultSet.getInt("Id");
				String engName = resultSet.getString("eng_name");
				String chiVal = resultSet.getString("chi_val");
				String lastUsedTime = resultSet.getString("last_used_time");
				int usedTimes = resultSet.getInt("used_times");
				String createdTime = resultSet.getString("created_time");
				int priority = resultSet.getInt("priority");

				System.out.println("Id: " + id);
				System.out.println("eng_name: " + engName);
				System.out.println("chi_val: " + chiVal);
				System.out.println("last_used_time: " + lastUsedTime);
				System.out.println("used_times: " + usedTimes);
				System.out.println("created_time: " + createdTime);
				System.out.println("priority: " + priority);
				System.out.println("-----------------------------");
			}

			resultSet.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

 在主线程中启动查询子线程:

package com.singletonmodel;

public class Main {
	
	 public static void main(String[] args) {
	        DatabaseQuery databaseQuery = DatabaseQuery.getInstance();
	        Thread thread = new Thread(databaseQuery);
	        thread.start();
	    }
}

输出结果:

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值