JDBC学习之路(一)

以前使用过JDBC,对Mysql也进行过一些增删改查的操作,但是还真没有系统的学习过,现在借助传智播客的视频系统学习一下,下面记录这几天的心得。

1.首先得安装Mysql,这个就不说了,顺便下载Mysql-Connector-java这个JDBC实现包,把他/它导入到自己的工程,下面开始代码了

一切均基于这些代码,先把代码贴上再讲解

package com.bird.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public final class JdbcUtil {//保证不被继承
	private static String url = "jdbc:mysql://localhost:3306/test";
	private static String user = "root";
	private static String password = "mysql";
	
	private JdbcUtil(){
		//防止被new
	}
	
	static{//静态代码块,当类被装载到虚拟机的时候会运行这个代码块,这样保证只注册一次
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			throw new ExceptionInInitializerError(e);
		}
	}
	
	public static Connection getConnecttion() 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.bird.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Test01 {
	public static void template() throws Exception{
						
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		try{
			conn = JdbcUtil.getConnecttion();//建立连接
			
			st = conn.createStatement();//创建语句	
			
			rs = st.executeQuery("select * from niao");//执行语句
			
			while(rs.next()){//得到数据
				System.out.println(rs.getObject(1)+"\t"+rs.getObject(2)+"\t");
			}
		}finally{
			JdbcUtil.free(rs, st, conn);
		}
		
		
	}
	
	
	public static void main(String [] args) throws Exception{
		Test01.template();
	}
}

2.首先说jdbcUtil类,它被定义为final,保证不被继承。

3.注意他的static静态代码块,一个类当被加载到虚拟机的时候就会运行static静态代码块,这个代码块里面的内容就是注册,初始化JDBC里面的mysql的驱动,这个工作每次只需要一次,多了浪费,而且是其他所有工作的基础,所以定义为static,保证一开始就加载并且只运行一次。

4.他们的异常必须被抛出,让使用这个类的人处理。

5.下面强势关注free函数,貌似看起来很复杂的玩意,其实原理很简单,只是对每个关闭函数配备了一个try和catch和finally保证每个流关闭错误都不会影响下面的流的关闭,强调绝对的安全。

6.JdbcUtill类就是对这些的封装,而且各个方法都是静态的,可以直接调用。



下面分析Test01

7.连接是从JdbcUtil类的静态方法获得

8.下面的就是创建语句,执行SQL查询,然后获得返回结果了,最后别忘了释放资源。




好了  完毕   继续学习去喽

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值