java读取配置文件操作数据库

一、效果

要查询不同的数据库表,只需要修改配置文件里的相应参数即可。

项目结构:
在这里插入图片描述
配置文件
在这里插入图片描述
结果:
在这里插入图片描述
配置文件:
在这里插入图片描述
结果:
在这里插入图片描述

二、代码
JdbcUtil.java

package com.ww;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;

public class JdbcUtil {
	private static Connection connection;
	private static String username;
	private static String password;
	private static String driver;
	private static String ip;
	private static int port;
	private static String databasename;
	private static PreparedStatement ps;
	private static ArrayList<String> arrayList;
	static{
		try {
			arrayList = ReadConfig.getConfig("D:\\Java\\eclipse201912\\w1\\src\\com\\config\\config.ini");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String[] str=new String[arrayList.size()];
		for(int i=0;i<arrayList.size();i++){
			str[i]=arrayList.get(i);
			if(str[i].contains("driver")) driver=getSplit(str[i]);
			else if(str[i].contains("ip")) ip=getSplit(str[i]);
			else if(str[i].contains("port")) port=Integer.valueOf(getSplit(str[i]));
			else if(str[i].contains("databasename")) databasename=getSplit(str[i]);
			else if(str[i].contains("username")) username=getSplit(str[i]);
			else if(str[i].contains("password")) password=getSplit(str[i]);
		}
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	private static String getSplit(String str){
		return str.split("=")[1];
	}
	public static Connection getConnection(){
		try {
			connection=DriverManager.getConnection(
					"jdbc:mysql://"+ip+":"+port+"/"+databasename+"?"
							+ "useSSL=false&"
							+ "serverTimezone=GMT&"
							+ "useUnicode=true&characterEncoding=utf-8"
					, username, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return connection;
	}
	public static void close(Connection conn) {
		// TODO Auto-generated method stub
		try {
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

ReadConfig.java

package com.ww;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class ReadConfig {
	private static ArrayList<String> arrayList=new ArrayList<String>();
	public static ArrayList<String> getConfig(String fileName) throws IOException{
		File file=new File(fileName);
		FileReader fr=new FileReader(file);
		BufferedReader br=new BufferedReader(fr);
		String str;
		while((str=br.readLine())!=null){
			arrayList.add(str);
		}
		return arrayList;
	}
}

TestConnect.java

package com.ww;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Vector;

import com.mysql.jdbc.Statement;

public class TestConnect {
	public static void main(String[] args) throws IOException {
		String tablename=null;
		ArrayList<String> arrayList=ReadConfig.getConfig("D:\\Java\\eclipse201912\\w1\\src\\com\\config\\config.ini");
		for(int i=0;i<arrayList.size();i++) {
			if(arrayList.get(i).contains("tablename"))
				tablename=arrayList.get(i).split("=")[1];
		}
		String sql="select * from "+tablename;
		Connection conn=JdbcUtil.getConnection();
		ResultSetMetaData resultMetaData;
		try {
			if(conn==null) {
				System.out.println("Can't connet!");
			}
			Statement st=(Statement) conn.createStatement();
			ResultSet rs=st.executeQuery(sql);
			resultMetaData=rs.getMetaData();
			int cols=resultMetaData.getColumnCount();
			Vector currentRow=new Vector();
			while(rs.next()) {
				for(int i=1;i<=cols;i++) {
					switch(resultMetaData.getColumnType(i)) {
					case Types.VARCHAR:
						currentRow.addElement(rs.getString(resultMetaData.getColumnName(i)));
						break;
					case Types.INTEGER:
						currentRow.addElement(rs.getInt(resultMetaData.getColumnName(i)));
						break;
					case Types.TIMESTAMP:
						currentRow.addElement(rs.getDate(resultMetaData.getColumnName(i)));
						break;
					case Types.DOUBLE:
						currentRow.addElement(rs.getDouble(resultMetaData.getColumnName(i)));
						break;
					case Types.FLOAT:
						currentRow.addElement(rs.getFloat(resultMetaData.getColumnName(i)));
						break;
					case Types.CLOB:
						currentRow.addElement(rs.getBlob(resultMetaData.getColumnName(i)));
						break;
					default:
						currentRow.add("error");
					}
				}
				System.out.println(currentRow);
				currentRow.clear();
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally {
			JdbcUtil.close(conn);
		}
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值