我是靠谱客的博主 火星上御姐,最近开发中收集的这篇文章主要介绍学习笔记:JDBC编程六部曲(以mysql为例),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JDBC编程六部曲

一.步骤
1.注册驱动
2.获取数据库连接
3.获取数据库操作对象
4.执行sql语句(以DQL为例,DML没有第五步)
5.处理查询结果集
6.关闭资源

二.具体

1.注册驱动

import java.sql.Driver;
import java.sql.DriverManager;
public class JDBCTest1 {
	public static void main(String[] args) {
		try {
				//1.注册驱动
				//1.1获取驱动对象
				Driver driver = new com.mysql.jdbc.Driver();
				//1.2注册驱动
				DriverManager.registerDriver(driver);
			}catch(Exception e) {
			e.printStackTrace();
		}
		
		
		
	}

}

2.获取数据库连接

import java.sql.Driver;

import java.sql.DriverManager;

import java.sql.Connection;

public class JDBCTest02 {
	public static void main(String[] args) {
		try {
			//1.注册驱动
			//1.1获取驱动对象
			Driver driver =new com.mysql.jdbc.Driver();
			//1.2注册驱动
			DriverManager.registerDriver(driver);
			
			//2.获取数据库的连接
			String url="jdbc:mysql://127.0.0.1:3306/bjpowernode"; //一种写法
																  //一定要写对 ,否则就报“找不到适合的驱动”的错误
																  //3306是端口号,不一定全为3306(这个是安装MySQL时候你选的)
			String user="root";
			String password="123456";
			Connection conn=DriverManager.getConnection(url,user,password);
			System.out.println(conn);
		}catch(Exception e) {
			e.printStackTrace();
		}
	}

}

 注:bjpowernode是动力节点写的一个数据库的名字

运行结果类似于这个:com.mysql.jdbc.JDBC4Connection@300ffa5d 

 这步要注意

1.url写对

2.getConnection这个方法(以下摘自jdk 1.6)

getConnection

public static Connection getConnection(String url,
                                       String user,
                                       String password)
                                throws SQLException

试图建立到给定数据库 URL 的连接。DriverManager 试图从已注册的 JDBC 驱动程序集中选择一个适当的驱动程序。

 

参数:

url - jdbc:subprotocol:subname 形式的数据库 url

user - 数据库用户,连接是为该用户建立的

password - 用户的密码

返回:

到 URL 的连接

抛出:

SQLException - 如果发生数据库访问错误

3.获取数据库操作对象

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;

import java.sql.Statement;
public class JDBCTest03 {
	public static void main(String[] args) {
		try {
			//1.注册驱动
			//1.1获取驱动对象
			Driver driver=new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);
			
			//2.获取数据库连接
			String url="jdbc:mysql://localhost:3306/bjpowernode";  //又一种写法
			String user="root";
			String password="123456";
			Connection conn=DriverManager.getConnection(url,user,password);
			
			//3.数据库操作对象
			Statement stmt=conn.createStatement();
			System.out.println(stmt);
			
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
}

 运行结果类似:com.mysql.jdbc.StatementImpl@300ffa5d

4.执行sql语句(以DQL为例,DML没有第五步)
5.处理查询结果集
6.关闭资源

ps:这几步一起写出来(最终版)

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCTest04 {
	public static void main(String[] args) {
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		try {
			//1.注册驱动
			Driver driver=new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);
			
			//2.获取数据库链接
			String url="jdbc:mysql://localhost:3306/bjpowernode";
			String user="root";
			String password="123456";
			
			conn=DriverManager.getConnection(url,user,password);
			
			//3.获取数据库操作对象
			 stmt=conn.createStatement();
			
			//4.执行sql语句  :DQL-->查询出员工薪水等级:显示员工名称,员工薪水,薪水等级
			String sql="select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal";
			 rs=stmt.executeQuery(sql);
			System.out.println(rs);
			/*
			+--------+---------+-------+
			| ename  | sal     | grade |
			+--------+---------+-------+
			| SMITH  |  800.00 |     1 |
			| ALLEN  | 1600.00 |     3 |
			| WARD   | 1250.00 |     2 |
			| JONES  | 2975.00 |     4 |
			| MARTIN | 1250.00 |     2 |
			| BLAKE  | 2850.00 |     4 |
			| CLARK  | 2450.00 |     4 |
			| SCOTT  | 3000.00 |     4 |
			| KING   | 5000.00 |     5 |
			| TURNER | 1500.00 |     3 |
			| ADAMS  | 1100.00 |     1 |
			| JAMES  |  950.00 |     1 |
			| FORD   | 3000.00 |     4 |
			| MILLER | 1300.00 |     2 |
			+--------+---------+-------+
			*/
			//5.处理查询结果集
			while(rs.next()) {
				String ename=rs.getString("ename");
				double sal=rs.getDouble("sal");
				int grade=rs.getInt("grade");
				System.out.println(ename+"  "+sal+"  "+grade);
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally{
			//6.关闭资源
			if(rs!=null) {
				try{
					rs.close();
				}catch(Exception e) {
					e.printStackTrace();
					
				}
			}
			if(stmt!=null) {
				try{
					stmt.close();
				}catch(Exception e) {
					e.printStackTrace();
					
				}
			}
			if(conn!=null) {
				try{
					conn.close();
				}catch(Exception e) {
					e.printStackTrace();
					
				}
			}
			
		};
		
		
		
	}

}

第四步就是写一个sql语句再用executeQuery(sql)方法运行一下

第五步处理查询结果集用到一个next();

next

boolean next()
             throws SQLException

将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。

第六步在finally里关闭资源

1.这里就有一个初始化的问题,

如果按第一到三步在try里初始化,

那么finally里面没有conn stmt rs就不能用close方法

所以要在try外面初始化,如上图最终版

2.逆序关闭(rs-->stmt-->conn)

 

 

 

最后

以上就是火星上御姐为你收集整理的学习笔记:JDBC编程六部曲(以mysql为例)的全部内容,希望文章能够帮你解决学习笔记:JDBC编程六部曲(以mysql为例)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部