编写一个简单的 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 的窗口中按如下图中指引操作即可。

代码实现如下:
package com.fhcq.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class JDBCTest { public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
test();
} static void test() throws SQLException, ClassNotFoundException { // 1.注册驱动
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver");//推荐方式 // 2.建立连接
String url = "jdbc:mysql://localhost:3306/jdbc";
String user = "root";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password); // 3.创建语句
Statement st = conn.createStatement(); // 4.执行语句
ResultSet rs = st.executeQuery("select * from user"); // 5.处理结果(依次打印出 user 表中的4列基本数据项的值)
while (rs.next()) {
System.out.println(rs.getObject(1) + "\t" + rs.getObject(2) + "\t"
+ rs.getObject(3)+"\t" + rs.getObject(4));
} // 6.释放资源
rs.close();
st.close();
conn.close();
} }
上述代码的实现其实是一个很不规范的例子,下面就来对其进行简单的优化:
我们首先写一个 JDBCUtils 工具类。首先来保证这个驱动只注册一次,然后再把【建立连接】 和 【释放资源】 的部分也都添加进来,这样在我们每次获取连接的时候都通过这个工具类来拿,还有就是不会每写一次都要把【释放资源】那么一大段代码都给带上了。
package com.fhcq.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public final class JDBCUtils { private static String url = "jdbc:mysql://localhost:3306/jdbc";
private static String user = "root";
private static String password = ""; private JDBCUtils(){ } static{ // 1.注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
} public static Connection getConnection() throws SQLException{
return DriverManager.getConnection(url, user, password);
} public static void free(ResultSet rs,Statement st,Connection conn){ try{
if(rs!=null){
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(st != null){
st.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
剩下的我们就来简化一下原有的代码,这样处理后的代码就可以作为我们的一个模板来使用了。
package com.fhcq.jdbc; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement; public class JDBCTest { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
template();
} static void template() throws Exception{ Connection conn = null;
Statement st = null;
ResultSet rs = null; try { // 2.建立连接
conn = JDBCUtils.getConnection(); // 3.创建语句
st = conn.createStatement(); // 4.执行语句
rs = st.executeQuery("select * from user"); // 5.处理结果
while(rs.next()){
System.out.println(rs.getObject(1) + "\t" + rs.getObject(2)
+ "\t"+ rs.getObject(3)+"\t" + rs.getObject(4));
} }finally{
JDBCUtils.free(rs, st, conn);
} } }
编写一个简单的 JDBC 程序的更多相关文章
- 编写一个简单的C++程序
编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
- Java入门篇(一)——如何编写一个简单的Java程序
最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...
- 使用PyQt5编写一个简单的GUI程序(pyside 有 pyside-uic 把ui文件转成py文件,pyside-rcc 把qrc文件转成 py文件导入就行了)
我做Python窗口界面编程时,经常使用PyQt进行设计.这里简单叙述一下使用PyQt5制作一个简单的图形界面的流程 PyQt的简介以及开发环境的搭建在此不多赘述. 1. 打开Qt Des ...
- 编写一个简单的jdbc例子程序
package it.cast.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...
- 如何在linux下编写一个简单的Shell脚本程序
在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...
- 利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
- 如何创建一个简单的struts2程序
如何创建一个简单的Struts2程序 “计应134(实验班) 凌豪” 1.创建一个新的Web项目test(File->new->Web Project) 2.Struts2框架的核心配置文 ...
随机推荐
- java io读写文件
java io读写文件相关阅读:http://www.cnblogs.com/wing011203/archive/2013/05/03/3056535.html public class DemoI ...
- textview 使drawable与text一起居中的textview,这里仅支持drawableleft
package cc.hent.www.ramo_cmedcial.CustomView; import android.content.Context; import android.graphic ...
- idea 常用快捷使用
一.智能提示 1.快速移动到错误代码 :Shift+F2 或者 f2/ 2.快速修复:Alt+Enter 3.快速生成括号:Ctrl+Shift+Enter 二.重构 1.重构功能汇总:Ctrl+Sh ...
- 牛市必备的三个条件,A股现在还差几个
1.国家政策 2.中美贸易 3.资金支持 A股变化如神! 自本月10日受美股大跌的影响后,A股先是随之震荡跳水,千股跌停:随后因高层力挺和政策支持而V型反转,集体涨停:接着上演过山车走势,有时涨得令人 ...
- JavaScript语法对{}的奇葩处理
JavaScript的语法有多坑,算是众人皆知了. 今天看到vczh的这条微博:http://weibo.com/1916825084/B7qUFpOKb , 代码如下: {} + []; [] + ...
- 视差滚动(Parallax Scrolling)的一点小心得
下面内容来源于我知乎的这个答案:http://www.zhihu.com/question/20990029/answer/21436067 假期有空,整理到博客园这边,并做了一些语境的调整. ——— ...
- subtle:有趣的伪平铺式窗口管理器
Author:吴吉庆 email: jiqingwu@gmail.com home:http://hi.baidu.com/jiqing0925 create:2011-02-19 update:20 ...
- Python练习-递归二分算法
# 编辑者:闫龙 #递归,二分算法演示 l = [i for i in range(1,100)]#定义一个列表l,并追加1-99的所有数字 def FindNum(num,l):#定义函数FindN ...
- Python练习-生成器表达式-筛选与运算
# 编辑者:闫龙 l = [10, 2, 3, 4, 5, 6, 7] l1 = [int(i)**2 for i in l] # 得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方 pr ...
- Android平台介绍
一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操 ...