当前位置: 首页 >Java技术 > 编写一个简单的 JDBC 程序

编写一个简单的 JDBC 程序

连接数据库的步骤:

1、注册驱动(只做一次)

2、建立连接(Connection)

3、创建执行SQL的语句(Statement)

4、执行语句

5、处理执行结果(ResultSet)

6、释放资源

 

在写代码之前,我们需要导入数据库驱动,即 mysql-connector-java-5.0.8-bin.jar

导入 jar 包步骤:在项目名(JDBCDemo)上鼠标右键,然后左键点击 Properties,在弹出的 Properties for JDBCDemo 的窗口中按如下图中指引操作即可。

编写一个简单的 JDBC 程序 _ JavaClub全栈架构师技术笔记

 

代码实现如下:

  1 package com.fhcq.jdbc;  2   3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 import java.sql.ResultSet;  6 import java.sql.SQLException;  7 import java.sql.Statement;  8   9 public class JDBCTest { 10  11 public static void main(String[] args) throws Exception{ 12 	// TODO Auto-generated method stub 13  test(); 14 } 15  16 static void test() throws SQLException, ClassNotFoundException { 17  18 // 1.注册驱动 19 //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 20 //System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver"); 21 Class.forName("com.mysql.jdbc.Driver");//推荐方式 22  23 // 2.建立连接 24 String url = "jdbc:mysql://localhost:3306/jdbc"; 25 String user = "root"; 26 String password = "123456"; 27 Connection conn = DriverManager.getConnection(url, user, password); 28  29 // 3.创建语句 30 Statement st = conn.createStatement(); 31  32 // 4.执行语句 33 ResultSet rs = st.executeQuery("select * from user"); 34  35 // 5.处理结果(依次打印出 user 表中的4列基本数据项的值) 36 while (rs.next()) { 37 System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t" 38 + rs.getObject(3)+"\t" + rs.getObject(4)); 39 } 40  41 // 6.释放资源 42 rs.close(); 43 st.close(); 44 conn.close(); 45 } 46  47 }

 

上述代码的实现其实是一个很不规范的例子,下面就来对其进行简单的优化:

我们首先写一个 JDBCUtils 工具类。首先来保证这个驱动只注册一次,然后再把【建立连接】 和 【释放资源】 的部分也都添加进来,这样在我们每次获取连接的时候都通过这个工具类来拿,还有就是不会每写一次都要把【释放资源】那么一大段代码都给带上了。

  1 package com.fhcq.jdbc;  2   3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 import java.sql.ResultSet;  6 import java.sql.SQLException;  7 import java.sql.Statement;  8   9 public final class JDBCUtils { 10  11 	private static String url = "jdbc:mysql://localhost:3306/jdbc"; 12 	private static String user = "root"; 13 	private static String password = "123456"; 14  15 	private JDBCUtils(){ 16  17 	} 18  19 	static{ 20  21 		// 1.注册驱动 22 		try { 23 			Class.forName("com.mysql.jdbc.Driver"); 24 		} catch (ClassNotFoundException e) { 25 			throw new ExceptionInInitializerError(e); 26 		} 27 	} 28  29 	public static Connection getConnection() throws SQLException{ 30 		retu DriverManager.getConnection(url, user, password); 31 	} 32  33 	public static void free(ResultSet rs,Statement st,Connection conn){ 34  35 		try{ 36 			if(rs!=null){ 37 				rs.close(); 38 			} 39 		}catch(SQLException e){ 40 			e.printStackTrace(); 41 		}finally{ 42 			try{ 43 				if(st != null){ 44 					st.close(); 45 				} 46 			}catch(SQLException e){ 47 				e.printStackTrace(); 48 			}finally{ 49 				if(conn!=null){ 50 					try { 51 						conn.close(); 52 					} catch (SQLException e) { 53 						e.printStackTrace(); 54 					} 55 				} 56 			} 57 		} 58 	} 59 }

 

剩下的我们就来简化一下原有的代码,这样处理后的代码就可以作为我们的一个模板来使用了。

  1 package com.fhcq.jdbc;  2   3 import java.sql.Connection;  4 import java.sql.ResultSet;  5 import java.sql.Statement;  6   7 public class JDBCTest {  8   9 	public static void main(String[] args) throws Exception { 10 		// TODO Auto-generated method stub 11 		template(); 12 	} 13  14 	static void template() throws Exception{ 15  16 		Connection conn = null; 17 		Statement st = null; 18 		ResultSet rs = null; 19  20 		try { 21  22 			// 2.建立连接 23 			conn = JDBCUtils.getConnection(); 24  25 			// 3.创建语句 26 			st = conn.createStatement(); 27  28 			// 4.执行语句 29 			rs = st.executeQuery("select * from user"); 30  31 			// 5.处理结果 32 			while(rs.next()){ 33 				System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) 34 				 + "\t"+ rs.getObject(3)+"\t" + rs.getObject(4)); 35 			} 36  37 		}finally{ 38 			JDBCUtils.free(rs, st, conn); 39 		} 40  41 	} 42  43 }

作者:Janson۰Wong
来源链接:https://www.cnblogs.com/justlove/p/6946032.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/java/112233.html

标签:JDBC
分享给朋友:

“编写一个简单的 JDBC 程序” 的相关文章

1024 节日快乐!Linux find 命令介绍 2022年05月15日 21:41:25
SpringBoot之整合Mybatis篇 2022年05月15日 21:51:04
linux系统(CentOS7)下安装jdk8 2022年05月15日 21:54:24
数组转LIst的几种方法 2022年05月16日 11:18:24
Centos 6.4最小化安装后的优化(2) 2022年05月16日 19:50:28
Java虚拟机1:什么是Java 2022年05月17日 20:55:59