jdbc通过属性文件连接mysql数据库案例

时间:2022-07-07 13:10:43

直接使用jdbc连接数据库的代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class TestJDBC {
	public static void main(String[] args) {
		Connection c = null;
		Statement s = null;
		try {
			// Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化的相关工作
			Class.forName("com.mysql.jdbc.Driver");

			/*
			 * 建立与数据库的Connection连接 这里需要提供: 数据库所处于的ip:127.0.0.1 (本机) 数据库的端口号: 3306
			 * (mysql专用端口号) 数据库名称 student 编码方式 UTF-8 账号 root 密码 admin
			 */
			c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/student?characterEncoding=UTF-8", "root",
					"admin");
			// 这是用于执行sql语句的
			s = c.createStatement();

			// 准备sql语句
			// 注意: 字符串要用单引号'
			String sql = "";
			sql = "delete from Student where name = '小王'";
			int iResult = s.executeUpdate(sql);
			if (iResult >= 0) {
				System.out.println("sql语句执行成功 " + iResult);
			}

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 因为finally一定是会执行的,所以在finally中关闭资源
			try {
				if (s != null)
					s.close();
				// 后关闭Connection
				if (c != null)
					c.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

上面代码中是直接连接的mysql数据库,但是要修改连接信息时就会比较麻烦,所以可以将连接信息放到一个单独的属性文件中,创建工具类直接读取属性文件信息即可。

下面是JDBC项目的目录结构:主要是TestJdbcFile.java(主方法)、DBUtils.java(读取属性文件以及获取连接和关闭连接到工具类)

mysql.properties(连接数据库的信息文件)

jdbc通过属性文件连接mysql数据库案例


看看mysql.properties属性文件中的内容:

Driver:要连接的数据库是mysql

url:数据库的地址

userName:数据库登陆名

password:数据库登陆密码

Driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student
userName=root
password=admin

DBUtils.java工具类中的内容:该工具类的主要作用有三个(1)读取属性文件(2)返回一个数据库连接(3)关闭数据库连接

package utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class DBUtils {
	// 数据库驱动
	private static String strDriver = "";
	// 数据库地址
	private static String strUrl = "";
	// 数据库用户名
	private static String strUserName = "";
	// 数据库密码
	private static String strPassword = "";

	// 使用静态块来加载数据库连接的必要信息
	static {
		// 属性文件
		Properties p = new Properties();
		try {
			// 通过相对路径加载文件
			p.load(new FileInputStream(new File("JDBCfile/mysql.properties")));
			// 用getProperty方法通过关键字获取信息
			strDriver = p.getProperty("Driver");
			strUrl = p.getProperty("url");
			strUserName = p.getProperty("userName");
			strPassword = p.getProperty("password");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	// 获取数据库连接的方法
	public Connection getConn() {
		Connection conn = null;
		try {
			// 加载驱动
			Class.forName(strDriver);
			// 获取数据库连接
			conn = DriverManager.getConnection(strUrl, strUserName, strPassword);

		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	
	//关闭数据库资源方法
    public void closeAll(ResultSet rs,Statement stat,Connection conn){
    /*分别按顺序关闭数据库的结果集资源,Statement 对象资源以及Connection 连接数据库对象*/
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(stat!=null){
            try {
                stat.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }

}

最后就是TestJdbcFile.java主方法中的内容了

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import utils.DBUtils;

public class TestJdbcFile {

	public static void main(String[] args) {
		
		DBUtils dbUtils = new DBUtils();
		//获取一个数据库连接
		Connection conn = dbUtils.getConn();
		Statement statement = null;
		ResultSet rSet= null;
		try {
			//创建可以执行sql语句的对象
			statement = conn.createStatement();
			//准备sql语句
			String sql = "select * from Student";
			//执行sql语句,获取结果集
			rSet = statement.executeQuery(sql);
			//执行成功有结果集的时候
			while(rSet.next()){
				String strUseName = rSet.getString("name");
				String strNumber = rSet.getString("number");
				System.out.println("姓名是:"+strUseName+" 学号是"+strNumber);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//关闭资源
			dbUtils.closeAll(rSet, statement, conn);
		}
	}
}

需要注意的是使用jdbc受先需要加载包, mysql的jar包下载地址:

http://dev.mysql.com/downloads/connector/ 

这里我用的是java,所以下载connector/J

jdbc通过属性文件连接mysql数据库案例

jdbc通过属性文件连接mysql数据库案例

搞定!