编写一个简单的 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工程压缩上传到linux服务器上后,中文的类名显示乱码
首先声明,类名是用中文命名的,这个别人写的,不允许修改. 本地用7zip软件压缩成zip包,传到服务器解压,发现中文的class文件名称是乱码. 解决办法: 方法一:使用jar命令打成jar包,传到服 ...
- Jenkins git 的配置及问题解决
背景:最近项目需要 Jenkins 集成git,着手记录遇到的问题及解决方式 一.搭建Jenkins环境步骤这里(略) 二.安装Jenkins插件(系统管理-->插件管理-->可选插件)选 ...
- RHEL-7.0重置root密码
RHCE考试第一个环节就是重置root密码,然而7系列与6系列又存在着很大的不同.以下为RHEL-7.0系统对root密码重置的步骤! 1.开机出现引导菜单时按下e键 2.找到linux16行, ...
- 20155226 2016-2017-2 《Java程序设计》第5周学习总结
20155226 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 语法与继承构架 我们之前接触到的C通常都是将程序流程和错误处理混在一起,在编写程序的时候必须 ...
- HDU 4720 Naive and Silly Muggles 平面几何
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4720 解题报告:给出一个三角形的三个顶点坐标,要求用一个最小的圆将这个三个点都包含在内,另外输入一个点 ...
- 对一道pwnhub的一点点记录
一.通过ssh弱口令,建立socket5代理进内网. 1.修改proxychains配置文件vi /etc/proxychains.conf如下: 2.建立ssh隧道:ssh -qTfnN -D 70 ...
- Vue学习看这篇就够
Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...
- bootstrap-datetimepicker中设置中文
1.引入插件文件,同时引入相应的语言文件 <script src="bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.j ...
- 2016.5.18——leetcode:Majority Element
Majority Element 本题收获: 1.初步了解hash,nth_element的用法 2.题目的常规思路 题目: Given an array of size n, find the ma ...
- oggMonitor是什么
goldengate monitor是一套监控goldengate的软件,如果安装的ogg比较多,使用goldengate monitor可以清楚的看见全部OGG的每个进程运行状态,以及整个OGG的架 ...