流程图

综述

从零开始搭建JDBC环境。通过创建Java项目,在项目中,通过java程序执行SQL,并处理返回的结果。本文通过执行 select 1 from dual 语句来测试,并输出相结果集。首先通过简单java项目的方式。之后创建Maven项目,通过在Spring中配置C3P0数据源的方式。

简单项目方式

  1. 新建Java项目,名称随便起,例如JDBCTest。
  2. 导入数据库驱动类jar包。以Oracle数据库为例(前提是已经安装了Oracle数据库),Oralce驱动类jar包为ojdbc6.jar。位置在${Oracle_Home}/product/11.2.0/dbhome_1/jdbc/lib,其中${Oracle_home}为数据库的安装路径。
  3. 编写测试程序,代码如下
 /**
* java与数据库交互的简单示例,运行select 1 from dual;
* @throws SQLException
*/
public static void RunSQLTest() throws SQLException
{
// 驱动方式获取Connection对象
Connection conn = getConnectionByDriver();
// 创建Statement对象
Statement statement = conn.createStatement();
// sql语句
String sql = "select 1 from dual";
// 获取结果集对象
ResultSet rs = statement.executeQuery(sql);
while(rs.next())
{
System.out.println("执行"+sql+"的运行结果为:"+rs.getInt(1));
}
close(rs,statement,conn);
} /**
* 通过Driver驱动方式,创建Connection对象
* @return
* @throws SQLException
*/
public static Connection getConnectionByDriver() throws SQLException
{
// Driver方式
OracleDriver driver = new OracleDriver();
// jdbcUrl地址:格式为jdbc:subProtocol:subName
String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
// 建立连接属性
Properties prop = new Properties();
// 指定用户名和密码
prop.setProperty("user", "system");
prop.setProperty("password", "password");
// 建立连接
Connection conn = driver.connect(jdbcUrl, prop);
return conn;
}
/**
* DriverManager的方式获取Connection
* @return
* @throws ClassNotFoundException 无法加载驱动类异常
* @throws SQLException
*/
public static Connection getConnectionByDriverManager() throws ClassNotFoundException, SQLException
{
// 驱动类名称
String driverClassName = "oracle.jdbc.OracleDriver";
// jdbc地址
String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
// 加载驱动,这一过程伴随着驱动注册
Class.forName(driverClassName);
// 建立连接
Connection conn = DriverManager.getConnection(jdbcUrl, "system", "password");
return conn;
}
/**
* 关闭Connection,statement,Resultset等对象
* @param rs
* @param statement
* @param conn
* @throws SQLException
*/
private static void close(ResultSet rs, Statement statement, Connection conn)
throws SQLException
{
rs.close();
statement.close();
conn.close();
}

异常总结:

lThe Network Adapter could not establish the connection:监听程序没有打开。

l  TNS:listener does not currently know of SID given in connect descriptor:jdbcUrl存在错误。

Spring配数据源方式

第一步:创建Maven项目,随便命名,例如MasterJDBC

第二步:导入数据库驱动jar包,参考简单项目方式第二步。

第三步:配置pom文件,配置Spring依赖,C3P0依赖

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<springVersion>4.3.7.RELEASE</springVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
</dependencies>

第四步: 在Spring文件中配置C3P0数据源

 <!--引入properties文件-->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="jdbc.properties"/>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>

jdbc.properties文件的内容如下

jdbc.driverClass=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc:oracle:thin:@localhost:1521:masteroracle

jdbc.username=system

jdbc.password=password

第五步:编写测试程序

  * 验证spring配置的C3P0数据源
* @throws SQLException
*/
public static void runSpringSQLTest() throws SQLException
{
// spring的ApplicationContext对象
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
// C3P0数据源对象
ComboPooledDataSource dataSource = context.getBean("dataSource", ComboPooledDataSource.class);
// Connection连接对象
Connection conn = dataSource.getConnection();
// 创建Statement对象
Statement statement = conn.createStatement();
// SQL语句
String sql = "select 1 from dual";
// 结果集ResultSet
ResultSet rs = statement.executeQuery(sql);
while (rs.next())
{
System.out.println("执行" + sql + "语句的结果为:" + rs.getInt(1));
}

至此环境搭建完成。之后博客所有的内容都以此为基础。

数据库程序接口——JDBC——功能第一篇——第一个程序的更多相关文章

  1. 数据库程序接口——JDBC——功能第二篇——数据源之C3P0数据源

    综述 C3P0由三部分内容组成.实例化对象,各配置项的含义,以及加载配置项的方式. 实例化对象的方式有三种,第一种方式直接new ComboPooledDataSource,第二种方式使用工厂类Dat ...

  2. 数据库程序接口——JDBC——功能第四篇——事务之Spring事务

    综述 事务的实现方式有三种,JTA,Spring事务,Web Container方式.本篇讲述Spring事务. Spring事务分为两个部分核心对象,Spring事务的实现方式. Spring事务实 ...

  3. 数据库程序接口——JDBC——功能第五篇——批量处理

    综述 批量处理一般指批量插入,批量更新,删除通过可以指定where条件实现.批量插入的实现方式有三种类型.statement,preparedStatement,callableStatement. ...

  4. 第一篇——第一文 SQL Server 备份基础

    原文:第一篇--第一文 SQL Server 备份基础 当看这篇文章之前,请先给你的所有重要的库做一次完整数据库备份.下面正式开始备份还原的旅程. 原文出处: http://blog.csdn.net ...

  5. spring boot实战(第一篇)第一个案例

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   spring boot实战(第一篇)第一个案例 前言 写在前面的话 一直想将spring boot相关内容写成一个系列的 ...

  6. 数据库程序接口——JDBC——API解读第一篇——建立连接的核心对象

    结构图 核心对象 Driver Java通过Driver接口表示驱动,每种类型的数据库通过实现Driver接口提供自己的Driver实现类. Driver由属性,操作,事件三部分组成. 属性 公共属性 ...

  7. 数据库程序接口——JDBC——初篇——目录

    目录 建立连接 核心对象 Driver DriverManager Connection DataSource 常用功能 第一个程序 C3P0数据源 DBCP数据源 事务之Spring事务 执行SQL ...

  8. 数据库程序接口——JDBC——API解读第二篇——执行SQL的核心对象

    结构图 核心对象 Statement Statement主要用来执行SQL语句.它执行SQL语句的步骤为: 第一步:创建statement对象. 第二步:配置statement对象,此步骤可以忽略. ...

  9. 数据库程序接口——JDBC——API解读第三篇——处理结果集的核心对象

    核心对象 处理结果集的核心对象有ResultSet和RowSet.其中ResultSet指定关系型数据库的结果集,RowSet更为抽象,凡是由行列组成的数据都可以. ResultSet ResultS ...

随机推荐

  1. 分类问题(三)混淆矩阵,Precision与Recall

    混淆矩阵 衡量一个分类器性能的更好的办法是混淆矩阵.它基于的思想是:计算类别A被分类为类别B的次数.例如在查看分类器将图片5分类成图片3时,我们会看混淆矩阵的第5行以及第3列. 为了计算一个混淆矩阵, ...

  2. requests-验证码登录

    ModuleNotFoundError: No module named 'bs4': 解决方法:pip install beautifulsoup4 https://blog.csdn.net/wi ...

  3. ArcGis Server manager 忘记用户名和密码

    ArcGIS 10.1及以后版本重置Server Manager账户密码:(1)找到arcgis server的安装目录,目录指向\ArcGIS\Server\tools\passwordreset文 ...

  4. C++——指针5

    8.2 指向类的静态成员的指针 对类的静态成员的访问不依赖于对象,可以用普通的指针来指向和访问. //通过指针访问类的静态数据成员 #include <iostream> using na ...

  5. C3P0连接技术

    1.导入jar包(两个) c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar导入数据库驱动jar包 2.定义配置文件 配置文件名称:c3p0.proper ...

  6. BUUCTF [SUCTF 2019]EasySQL

    首先打开网址 发现有三种显示方法 还有一个没有输出 可以堆叠注入 1;show databases; 1;show tables; 可以看到有一个Flag表 测试发现from flag都被过滤不能直接 ...

  7. Sql 语句常语法

    以前感觉在这个方面很欠缺,于是就找了些这方面的材料,自己也做了些总结,汇总到了一块.便于以后的查阅. --1.获取表的主键字段SELECT name FROM SysColumns WHERE id= ...

  8. C++-随机数的产生

    一.随机数 以前学C语言的时候感觉随机数没啥用的,现在想想是自己无知啦,在帮人做一个项目的时候发现随机数还是相当有用的,我们可以利用随机数来生成大量的测试数据. 有两种方法可以让你的程序每次运行结果不 ...

  9. please execute the cleanup command

    解决方法: (1)用dos命令进入项目文件夹,运行svn cleanup:不要直接右键点击找cleanup选项 (2)到上一层目录去cleanup试下,或者到.svn文件夹下(隐藏的)找到所有的loc ...

  10. spring boot使用freemarker模版整合spring Data JPA

    目录结构 第一步:在pom.xml文件中添加依赖 <!--模板依赖--> <dependency> <groupId>org.springframework.boo ...