JDBC demo

package com.zhangbz.jdbc;

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

public class JDBCDemo1 {

	public static void main(String[] args) {
		Connection conn = null;  //局部变量没有默认的初始化,类的成员变量才有
		Statement stat = null;
		ResultSet rs = null;

		try {
			//1.注册数据库驱动
			//--由于mysql在Driver类的实现中自己注册了一次,而我们又注册了一次,于是会导致mysql驱动被注册两次
			//--创建mysqldeDriver对象时,导致了程序和具体的mysql驱动绑死在了一起,在切换数据库时需要修改代码
			//DriverManager.registerDriver(new Driver());
			//反射
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
			stat = conn.createStatement();
			rs = stat.executeQuery("select * from user");
			//5.遍历结果集获取查询对象
			while(rs.next()){
				String name = rs.getString("name");
				System.out.println(name);
			}
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			//6.关闭资源//异常处理
			if (rs != null) {
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					rs = null;
				}
			}
			if (rs != null) {
				try {
					stat.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					rs = null;
				}
			}
			if (rs != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					rs = null;
				}
			}
		}
	}
}

1.局部变量没有默认的初始化,类的成员变量才有。

2.Class.forName("com.mysql.jdbc.Driver");利用反射解决重复注册的问题,并且降低程序和数据库类型的耦合,需要切换数据库时,由原先的需要改变导入的变成修改字符串,而后者可以在配置文件中完成。

3.嵌套的异常处理和if判断确保资源的释放没有问题。

 

时间: 2024-12-18 05:25:25

JDBC demo的相关文章

Spring与Jdbc Demo

方法一:继承JdbcTemplate来实现 1.配置applicationContext 1 <!-- 获取数据源连接 dbcp --> 2 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 3 <property name="driverClassName" value="com.mysql.jdbc.Driver

Oracle Jdbc demo

两种方式: thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行.thin就是纯粹用Java写的ORACLE数据库访问接口. oci 是一种胖客户端的连接方式,即采用这种连接方式需要安装oracle客户端.oci是Oracle Call Interface的首字母缩写,是ORACLE公司提供了访问接口,就是使用Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度 快,但是需要安装和配置数据库.

一颗简单的JDBC栗子

前言:安装好数据库之后,我们编写的java程序是不能直接使用数据库的,而JDBC(Java Database Connectivity,即java数据库连接)是java语言里用来规范客户端程序访问数据库的API,有了它,我们就可以向各种关系型数据库发送SQL语句,从而实现对数据库的增删改查等操作. 准备工作: 1.数据库:这里以MySQL为例,创建一个Person表,四个字段分别为:自增主键id.姓名name.性别gender.年龄age 1 DROP TABLE IF EXISTS `pers

SpringBoot的jdbc进行数据库的l连接

这里的数据库连接的是虚拟机里面docker环境下的mysql数据库(docker环境的装配在前面也有讲到https://www.cnblogs.com/zhaochunhui/p/11359544.html) 使用的是mysql的数据库,使用jdbc的链接驱动,在创建项目的时候,就要选择好我们的依赖;(jdbc.mysql.web) <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo

Java操作mysql数据库简单例子

package com.Jdbc.demo; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import com.mysql.jdbc.Connection; public class jdbc02 { public static final String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&a

Java链接 Oracle11g R2

菜鸟学习Oracle数据库,使用Java代码链接数据库. 首先要配置Eclipse,在新建的工程中,Package Explorer->工程名->Build path->Add external archives->Oracle安装盘X:\app\admin\product\11.2.0\dbhome_1\jdbc\lib\ojdbc*.jar ojdbc的jar包的选择参照readme文件. For all platforms: [ORACLE_HOME]/jdbc/lib co

Spring-Boot基于配置按条件装Bean

背景 同一个接口有多种实现,项目启动时按某种规则来选择性的启用其中一种实现,再具体一点,比如Controller初始化的时候,根据配置文件的指定的实现类前缀,来记载具体Service,不同Service使用不同的Dao和数据库. 看到这里,我们会想到使用SPI机制,或Spring按条件加载Bean机制来实现,下面主要讨论后者. 定义接口 定义2个Service层接口:OrderService.OrderPromotionService,分别有一个方法,如下: // OrderService.ja

SpringBoot 系列教程之事务不生效的几种 case

SpringBoot 系列教程之事务不生效的几种 case 前面几篇博文介绍了声明式事务@Transactional的使用姿势,只知道正确的使用姿势可能还不够,还得知道什么场景下不生效,避免采坑.本文将主要介绍让事务不生效的几种 case I. 配置 本文的 case,将使用声明式事务,首先我们创建一个 SpringBoot 项目,版本为2.2.1.RELEASE,使用 mysql 作为目标数据库,存储引擎选择Innodb,事务隔离级别为 RR 1. 项目配置 在项目pom.xml文件中,加上s

jdbc的demo

直接上代码吧,只是因为上篇的心血来潮.总结哈 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class OracleTest { public static void main(String[] args) { ResultSet rs = nu