JDBC连接数据库(mysql)

1、JDBC介绍
  • Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
2、JDBC驱动的使用
2.1 配置JDBC驱动
  1. 首先,自己使用什么数据库,需要先去官网下载jdbc驱动,我在这里使用的mysql,使用的语言是Java,编译器是eclipse。
  2. 对jdbc驱动进行环境配置
    在eclipse中新建一个项目,然后在项目的根目录新建转成存放驱动文件的文件夹,一般命名为lib,然后将自己所用的数据库驱动拷贝到该文件中,之后只需要添加Build Path即可使用.

在这里插入图片描述
添加完成之后项目中会有一个这样的文件
在这里插入图片描述

3、对数据库进行连接的步骤
JDBC编程6个步骤:
  • 1、注册驱动
  • 2、获取数据库连接
  • 3、获取数据库操作对象
  • 4、执行SQL语句
  • 5、处理查询结果集
  • 6、关闭资源
4 、连接数据库实际使用

其中注册数据库驱动的方法有多种,下边一一介绍

package com.company.jdbc;

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

/*
 * JDBC编程6个步骤:
 * 		1、注册驱动
 * 		2、获取数据库连接
 * 		3、获取数据库操作对象
 * 		4、执行SQL语句
 * 		5、处理查询结果集
 * 		6、关闭资源
 */
public class JDBCTest01 {

	public static void main(String[] args) {
		Driver driver = null;
		Connection conn = null;
		Statement statement = null;
		ResultSet resultSet = null;
		
		try {
			// 1、注册驱动
			// 1.1 获取驱动对象
			driver = new com.mysql.jdbc.Driver();
			// 1.2 注册驱动
			DriverManager.registerDriver(driver);
			System.out.println("[driver INFO] : " + driver);
			// 2、 获取数据库连接
			String url = "jdbc:mysql://localhost:3306/j_db";
			String user = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, user, password);
			System.out.println("[conn INFO] : " + conn);
			
			// 3、获取数据库操作对对象
			statement = conn.createStatement();
			System.out.println("[statement INFO] : " +statement);
			
			// 4、执行SQL语句  : 执行查询语句
			String sql = "select emp.ename,emp.job,emp.sal from emp";
			resultSet = statement.executeQuery(sql);
			System.out.println("[resultSet INFO] : " +resultSet);
			/*
			// 4、执行SQL语句  : 执行DML语句,增加,更新等操作,如果执行的是增删改操作,则没有第五不对查询集进行处理的步骤
			String sql_insert = "INSERT INTO emp VALUES(9527,'Java','CLERK',7902,'1985-12-17',8800,NULL,20)";
//			count = statement.executeUpdate(sql_insert);

			String sql_update = "UPDATE emp SET ename='Python-Django' WHERE empno=9527";
//			count = statement.executeUpdate(sql_update);
			
			String sql_delete = "DELETE FROM emp WHERE ename='Java' AND deptno=20";
			statement.executeUpdate(sql_delete);
			*/
			// 5、处理查询结果集
			while(resultSet.next()) {
				String ename = resultSet.getString("ename");
				String job = resultSet.getString("job");
				double sal = resultSet.getDouble("sal");
				
				System.out.println("ename = " + ename + "\t job = " + job + "\t sal = " + sal);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			// 关闭资源
			if (resultSet != null) {
				try {
					resultSet.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

5、数据库驱动注册的其他方法
5.1 通过类加载的方式注册驱动

自己定义一个注册驱动的类,将注册驱动的步骤放入该类的静态代码块中

package com.company.jdbc;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;

/*
 * JDBC编程6个步骤:
 * 		1、注册驱动
 * 		2、获取数据库连接
 * 		3、获取数据库操作对象
 * 		4、执行SQL语句
 * 		5、处理查询结果集
 * 		6、关闭资源
 */
public class JDBCTest03 {

	public static void main(String[] args) {
		Connection conn = null;
		Statement statement = null;
		ResultSet resultSet = null;
		int count = 0;
		try {
			// 1、注册驱动:通过类加载的方式创建数据库驱动
			Class.forName("com.company.jdbc.RegisterDriver");
			
			// 2、 获取数据库连接
			String url = "jdbc:mysql://localhost:3306/j_db";
			String user = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, user, password);
			System.out.println("[conn INFO] : " + conn);

			// 3、获取数据库操作对对象
			statement = conn.createStatement();
			System.out.println("[statement INFO] : " + statement);

			// 4、执行SQL语句 : 执行查询语句
			String sql = "select emp.ename,emp.job,emp.sal from emp";
			resultSet = statement.executeQuery(sql);
			System.out.println("[resultSet INFO] : " + resultSet);

			// 5、处理查询结果集
			while (resultSet.next()) {
				String ename = resultSet.getString("ename");
				String job = resultSet.getString("job");
				double sal = resultSet.getDouble("sal");

				System.out.println("ename = " + ename + "\t job = " + job + "\t sal = " + sal);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

/**
 * 注册数据库驱动
 * 
 * @author Administrator
 *
 */
class RegisterDriver {
	static {
		// 1.1 获取驱动对象
		try {
			Driver driver = new com.mysql.jdbc.Driver();
			// 1.2 注册驱动
			DriverManager.registerDriver(driver);
			System.out.println("[driver INFO] : " + driver);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

5.2使用配置文件注册驱动,将驱动信息放在配置文件中

新建一个配置文件,存放注册驱动信息,注册驱动时,只需要从该配置文件中读取配置信息集合;这种方法方便更换数据库是操作,只需要更改配置信息集合,不需要重新编译

新建properties配置文件,改配置文件中的信息是以键值对的形式存在的

server.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/j_db
user=root
password=123456

连接数据库时读取配置文件

package com.company.jdbc;

import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;
import java.util.Properties;

/*
 * JDBC编程6个步骤:
 * 		1、注册驱动
 * 		2、获取数据库连接
 * 		3、获取数据库操作对象
 * 		4、执行SQL语句
 * 		5、处理查询结果集
 * 		6、关闭资源
 */
public class JDBCTest04 {

	public static void main(String[] args) throws IOException {

		// 将参数放到配置文件中
		// -------------------从配置文件中读取数据库连接信息
		// 使用FileReader读取配置文件
		FileReader fileReader = new FileReader("conf/server.properties");
		// 创建属性对象
		Properties properties = new Properties();
		// 通过属性对象的load方法将配置文件的信息加载到内存中生成一个Map
		properties.load(fileReader);
		// 关闭流
		fileReader.close();

		// 通过属性对象获取配置文件总的值
		String driver = properties.getProperty("driver");
		String url = properties.getProperty("url");
		String user = properties.getProperty("user");
		String password = properties.getProperty("password");
		
		// ------------------使用获取到的参数连接数据库进行操作
		Connection conn = null;
		Statement statement = null;
		ResultSet resultSet = null;
		
		try {
			//注册驱动
			Class.forName(driver);
			// 2、 获取数据库连接
			conn = DriverManager.getConnection(url, user, password);
			System.out.println("[conn INFO] : " + conn);

			// 3、获取数据库操作对对象
			statement = conn.createStatement();
			System.out.println("[statement INFO] : " + statement);

			// 4、执行SQL语句 : 执行查询语句
			String sql = "select emp.ename,emp.job,emp.sal from emp";
			resultSet = statement.executeQuery(sql);
			System.out.println("[resultSet INFO] : " + resultSet);

			// 5、处理查询结果集
			while (resultSet.next()) {
				String ename = resultSet.getString("ename");
				String job = resultSet.getString("job");
				double sal = resultSet.getDouble("sal");

				System.out.println("ename = " + ename + "\t job = " + job + "\t sal = " + sal);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值