连接数据库的步骤:

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

2、建立连接(Connection)

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

4、执行语句

5、处理执行结果(ResultSet)

6、释放资源

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

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

代码实现如下:

  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 = "";
  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 = "";
  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. return 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. }

编写一个简单的 JDBC 程序的更多相关文章

  1. 编写一个简单的C++程序

    编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...

  2. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  3. Java入门篇(一)——如何编写一个简单的Java程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  4. 使用PyQt5编写一个简单的GUI程序(pyside 有 pyside-uic 把ui文件转成py文件,pyside-rcc 把qrc文件转成 py文件导入就行了)

    我做Python窗口界面编程时,经常使用PyQt进行设计.这里简单叙述一下使用PyQt5制作一个简单的图形界面的流程 PyQt的简介以及开发环境的搭建在此不多赘述. 1.       打开Qt Des ...

  5. 编写一个简单的jdbc例子程序

    package it.cast.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...

  6. 如何在linux下编写一个简单的Shell脚本程序

    在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...

  7. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  8. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  9. 如何创建一个简单的struts2程序

    如何创建一个简单的Struts2程序 “计应134(实验班) 凌豪” 1.创建一个新的Web项目test(File->new->Web Project) 2.Struts2框架的核心配置文 ...

随机推荐

  1. 编译的java工程压缩上传到linux服务器上后,中文的类名显示乱码

    首先声明,类名是用中文命名的,这个别人写的,不允许修改. 本地用7zip软件压缩成zip包,传到服务器解压,发现中文的class文件名称是乱码. 解决办法: 方法一:使用jar命令打成jar包,传到服 ...

  2. Jenkins git 的配置及问题解决

    背景:最近项目需要 Jenkins 集成git,着手记录遇到的问题及解决方式 一.搭建Jenkins环境步骤这里(略) 二.安装Jenkins插件(系统管理-->插件管理-->可选插件)选 ...

  3. RHEL-7.0重置root密码

    RHCE考试第一个环节就是重置root密码,然而7系列与6系列又存在着很大的不同.以下为RHEL-7.0系统对root密码重置的步骤! 1.开机出现引导菜单时按下e键    2.找到linux16行, ...

  4. 20155226 2016-2017-2 《Java程序设计》第5周学习总结

    20155226 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 语法与继承构架 我们之前接触到的C通常都是将程序流程和错误处理混在一起,在编写程序的时候必须 ...

  5. HDU 4720 Naive and Silly Muggles 平面几何

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4720 解题报告:给出一个三角形的三个顶点坐标,要求用一个最小的圆将这个三个点都包含在内,另外输入一个点 ...

  6. 对一道pwnhub的一点点记录

    一.通过ssh弱口令,建立socket5代理进内网. 1.修改proxychains配置文件vi /etc/proxychains.conf如下: 2.建立ssh隧道:ssh -qTfnN -D 70 ...

  7. Vue学习看这篇就够

    Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...

  8. bootstrap-datetimepicker中设置中文

    1.引入插件文件,同时引入相应的语言文件 <script src="bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.j ...

  9. 2016.5.18——leetcode:Majority Element

    Majority Element 本题收获: 1.初步了解hash,nth_element的用法 2.题目的常规思路 题目: Given an array of size n, find the ma ...

  10. oggMonitor是什么

    goldengate monitor是一套监控goldengate的软件,如果安装的ogg比较多,使用goldengate monitor可以清楚的看见全部OGG的每个进程运行状态,以及整个OGG的架 ...