欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

带你深入了解Java!三十、使用JDBC操作数据库!

程序员文章站 2022-04-10 12:30:36
...

< 使用JDBC操作数据库 >

Java连接数据库

一、理解JDBC的原理

Java高级静态语言 它帮助我们做了什么?

  • 它提供了一套接口,用于接入不同的数据库!基本上主流的数据库都支持
  • 这套接口的名字叫做 JDBC (Java DataBase Connectivity)

带你深入了解Java!三十、使用JDBC操作数据库!
Java应用程序通过 JDBC 来连接数据库时,其实就是在 Java 平台准备一套接口(接口: interface 它要使用必须寻找对应的实现类),然后不同的数据库厂商提供这些接口的实现类(驱动),然后再通过Java提供的驱动管理程序对驱动进行验证及安装,再然后我们就可以正常使用了

二、掌握 JDBC 的使用步骤

带你深入了解Java!三十、使用JDBC操作数据库!
DriverManager驱动管理器
他的作用是用来帮助我们进行驱动测试/加载!最终实现驱动的管理!
带你深入了解Java!三十、使用JDBC操作数据库!
掌握Connection接口的使用 连接对象 和数据库建立连接
掌握Statement接口的使用 执行SQL语句
掌握ResultSet接口的使用 存储数据库返回的数据结果集

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

/**
 * 测试 Statement JDBC
 * @author Douer
 * 2019年6月3日 下午2:09:43 
 */
public class TestS {
	public static void main(String[] args){
		Connection connection = null;
		Statement statement = null;
		ResultSet rs = null;
		try {
			//1、加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			//2、获得数据库连接(Connection)
			String url = "jdbc:mysql://localhost:3306/job5_30";
			connection = DriverManager.getConnection(url,"root","gatsby");
			//3、创建Statement或PreparedSrarement对象,执行sql语句
			String sql = "select \r\n" + 
					"	c.`name` name,sum(o.orderQ) sum\r\n" + 
					"FROM \r\n" + 
					"	g_order o,g_cargo c\r\n" + 
					"where \r\n" + 
					"	o.nameID = c.nameID and\r\n" + 
					"	year(o.orderDate) = '2018' and c.`name` = 'iPhone Xs'and o.orderType = '出仓';";
			statement = connection.createStatement();
			//4、返回 并处理执行结果(若查询操作,返回ResultSet结果集)
			rs = statement.executeQuery(sql);
			while(rs.next()) {
				String name = rs.getString("name");
				int sum = rs.getInt("sum");
				System.out.println(name+"\t"+sum);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				//5、释放资源
				if(rs != null) {
					rs.close();
				}
				if(statement != null) {
					statement.close();
				}
				if(connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

三、掌握JDBC 的增删改

增加、删除、修改
掌握PreparedStatement接口的使用 特别的执行SQL语句的接口

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


/**
 *  PreparedStatement  JDBC
 * @author Douer
 * 2019年6月3日 下午4:26:15 
 */
public class TestP {
	public static void main(String[] args){
		Connection connection = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			//1、加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			//2、获得数据库连接(Connection)
			String url = "jdbc:mysql://localhost:3306/job5_30";
			connection = DriverManager.getConnection(url,"root","gatsby");
			//3、创建Statement或PreparedSrarement对象,执行sql语句
			String sql = "select \r\n" + 
					"	c.`name` name,sum(o.orderQ) sum\r\n" + 
					"FROM \r\n" + 
					"	g_order o,g_cargo c\r\n" + 
					"where \r\n" + 
					"	o.nameID = c.nameID and\r\n" + 
					"	year(o.orderDate) = '2018' and c.`name` = ? and o.orderType = ?;";
			pstmt = connection.prepareStatement(sql);
			pstmt.setString(1,"iPhone Xs");
			pstmt.setString(2,"出仓");
			//4、返回 并处理执行结果(若查询操作,返回ResultSet结果集)
			rs = pstmt.executeQuery();
			while(rs.next()) {
				String name = rs.getString("name");
				int sum = rs.getInt("sum");
				System.out.println(name+"\t"+sum);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				//5、释放资源
				if(rs != null) {
					rs.close();
				}
				if(pstmt != null) {
					pstmt.close();
				}
				if(connection != null) {
					connection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}