博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC之第一个较为规范的JDBC程序
阅读量:2350 次
发布时间:2019-05-10

本文共 2212 字,大约阅读时间需要 7 分钟。

1、工具类的设计,设计成final,不被继承

package cn.itcast.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * Jdbc工具类 */public final class JdbcUtils {		//省略localhost:3306	private static String url = "jdbc:mysql:///jdbc";	private static String username = "root";	private static String password = "root";		/**	 * 构造器私用,防止直接创建对象,	 * 当然通过反射可以创建	 */	private JdbcUtils(){			}		//保证只是注册一次驱动	static{		try {			Class.forName("com.mysql.jdbc.Driver");		} catch (ClassNotFoundException e) {			throw new ExceptionInInitializerError(e);		}	}		/**	 * 获取连接	 * @return	 * @throws SQLException	 */	public static Connection getConnection() throws SQLException {		return DriverManager.getConnection(url, username, 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();					}				}			}		}	}}

2、主类中的代码

package cn.itcast.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * 第一个JDBC程序 */public class Base {	public static void main(String[] args) throws SQLException, ClassNotFoundException {		template();	}		/**	 * 比较严谨的实现方式	 * @throws ClassNotFoundException 	 * @throws SQLException 	 */	public static void template() throws ClassNotFoundException, SQLException {		Connection conn = null;		Statement st = null;		ResultSet rs = null;		try {			//建立连接			conn = JdbcUtils.getConnection();						//创建语句			st = conn.createStatement();			//执行语句			rs = st.executeQuery("select * from user");			//处理结果集			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);		}	}}
运行结果:

1   zhangsan   2017-06-30 100.0

2   lisi   2017-06-06 200.0

3   wangwu 2017-05-30 300.0

转载地址:http://uklvb.baihongyu.com/

你可能感兴趣的文章
Go语言基础入门--数组,切片,map
查看>>
Go语言基础入门--if,for,range,switch
查看>>
Go语言基础入门--函数,错误处理
查看>>
VIM 学习系列之基本命令,常用命令
查看>>
轻松搭建安全、轻量、极速、简约的博客Eiblog
查看>>
Golang包管理工具Glide,你值得拥有
查看>>
如何降低白噪声对网站用户体验的影响?
查看>>
【BDTC2016】大数据分析与生态系统论坛:大数据存储、处理技术大比评 百花齐放落地实践大展现
查看>>
2017微信公开课PRO版在广州召开 张小龙首次全面解读小程序
查看>>
微信小程序催生新的创业机会 阿拉丁为首批乘风破浪者
查看>>
这里有海量的用户群 CSDN学院诚邀微信小程序技术课程优秀讲师
查看>>
测试用例设计方法例子
查看>>
交叉表 设计测试用例
查看>>
软件测试方法及测试用例的设计方法
查看>>
软件测试面试题集锦
查看>>
写给测试人员:不是所有的bug都需要修复
查看>>
云计算将改变传统软件软件测试行业
查看>>
敏捷测试用例设计
查看>>
校企合作意在解决招聘、就业两大人才问题
查看>>
开放式前端面试问题汇总
查看>>