功能第一篇——第一个程序(JDBC)

流程图

综述

从零开始搭建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. 编写测试程序,代码如下
 1 /**
 2  * java与数据库交互的简单示例,运行select 1 from dual;
 3  * @throws SQLException
 4  */
 5 public static void RunSQLTest() throws SQLException
 6 {
 7     // 驱动方式获取Connection对象
 8     Connection conn = getConnectionByDriver();
 9     // 创建Statement对象
10     Statement statement = conn.createStatement();
11     // sql语句
12     String sql = "select 1 from dual";
13     // 获取结果集对象
14     ResultSet rs = statement.executeQuery(sql);
15     while(rs.next())
16     {
17         System.out.println("执行"+sql+"的运行结果为:"+rs.getInt(1));
18     }
19     close(rs,statement,conn);
20 }
21
22 /**
23  * 通过Driver驱动方式,创建Connection对象
24  * @return
25  * @throws SQLException
26  */
27 public static Connection getConnectionByDriver() throws SQLException
28 {
29     // Driver方式
30     OracleDriver driver = new OracleDriver();
31     // jdbcUrl地址:格式为jdbc:subProtocol:subName
32     String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
33     // 建立连接属性
34     Properties prop = new Properties();
35     // 指定用户名和密码
36     prop.setProperty("user", "system");
37     prop.setProperty("password", "password");
38     // 建立连接
39     Connection conn = driver.connect(jdbcUrl, prop);
40     return conn;
41 }
42 /**
43 * DriverManager的方式获取Connection
44 * @return
45 * @throws ClassNotFoundException  无法加载驱动类异常
46 * @throws SQLException
47 */
48 public static Connection getConnectionByDriverManager() throws ClassNotFoundException, SQLException
49 {
50     // 驱动类名称
51     String driverClassName = "oracle.jdbc.OracleDriver";
52     // jdbc地址
53     String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
54     // 加载驱动,这一过程伴随着驱动注册
55     Class.forName(driverClassName);
56     // 建立连接
57     Connection conn = DriverManager.getConnection(jdbcUrl, "system", "password");
58     return conn;
59 }
60 /**
61  * 关闭Connection,statement,Resultset等对象
62  * @param rs
63  * @param statement
64  * @param conn
65  * @throws SQLException
66  */
67 private static void close(ResultSet rs, Statement statement, Connection conn)
68                 throws SQLException
69 {
70     rs.close();
71     statement.close();
72     conn.close();
73 }

异常总结:

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>
 2     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 3     <springVersion>4.3.7.RELEASE</springVersion>
 4 </properties>
 5 <dependencies>
 6     <dependency>
 7         <groupId>org.springframework</groupId>
 8         <artifactId>spring-context</artifactId>
 9         <version>${springVersion}</version>
10     </dependency>
11     <dependency>
12         <groupId>org.springframework</groupId>
13         <artifactId>spring-core</artifactId>
14         <version>${springVersion}</version>
15     </dependency>
16     <dependency>
17         <groupId>org.springframework</groupId>
18         <artifactId>spring-beans</artifactId>
19         <version>${springVersion}</version>
20     </dependency>
21     <dependency>
22         <groupId>org.springframework</groupId>
23         <artifactId>spring-jdbc</artifactId>
24         <version>${springVersion}</version>
25     </dependency>
26     <dependency>
27         <groupId>c3p0</groupId>
28         <artifactId>c3p0</artifactId>
29         <version>0.9.1.2</version>
30     </dependency>
31 </dependencies>

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

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

jdbc.properties文件的内容如下

jdbc.driverClass=oracle.jdbc.driver.OracleDriver

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

jdbc.username=system

jdbc.password=password

第五步:编写测试程序

 1  * 验证spring配置的C3P0数据源
 2  * @throws SQLException
 3  */
 4 public static void runSpringSQLTest() throws SQLException
 5 {
 6     // spring的ApplicationContext对象
 7     ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
 8     // C3P0数据源对象
 9     ComboPooledDataSource dataSource = context.getBean("dataSource", ComboPooledDataSource.class);
10     // Connection连接对象
11     Connection conn = dataSource.getConnection();
12     // 创建Statement对象
13     Statement statement = conn.createStatement();
14     // SQL语句
15     String sql = "select 1 from dual";
16     // 结果集ResultSet
17     ResultSet rs = statement.executeQuery(sql);
18     while (rs.next())
19     {
20         System.out.println("执行" + sql + "语句的结果为:" + rs.getInt(1));
21     }

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

时间: 2024-11-10 11:51:09

功能第一篇——第一个程序(JDBC)的相关文章

第一篇——建立连接(JDBC)

结构图 核心对象 Driver Java通过Driver接口表示驱动,每种类型的数据库通过实现Driver接口提供自己的Driver实现类. Driver由属性,操作,事件三部分组成. 属性 公共属性 版本号:版本号由两个字段主版本号(majorVersion)和副版本号(minorVersion)组成. 特殊属性: DriverPropertyInfo对象:它有四个字段,name表示属性名称,value表示属性值,required.表示是否是必要属性,description表示对属性的描述.

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

前言 为什么要备份?理由很简单——为了还原/恢复.当然,如果不备份,还可以通过磁盘恢复来找回丢失的文件,不过SQL Server很生气,后果很严重.到时候你就知道为什么先叫你备份一次再开始看文章了.∩__∩.本系列将介绍SQL Server所有可用的备份还原功能,并尽可能用实例说话. 什么是备份?SQL Server基于Windows,以文件形式存放资料,所以备份就是Windows上SQL Server相关文件的一个某个时间点的副本.根据备份类型的不同,副本的种类和内容也有不同. 备份类型有哪些

《白帽子讲Web安全》——第一篇 第一章 我的安全世界观

前些日子定的书单,下放给各淘宝卖家,今天来的第一本就是这本,是一个我完全陌生的领域,然而强烈的好奇心,催使我看完了第一章,其实就是个概述. 1.1 Web安全简史 exploit:黑客们使用的漏洞利用代码. Script Kids:只对攻击本身感兴趣,没有动手能力,对计算机原理和各种编程技术略知一二,因而只能编译别人的代码的黑客,即“脚本小子”. 1. Web安全的兴起 (1)SQL注入 (2)XSS (3)CSRF http://blog.csdn.net/dyllove98/article/

(转).net程序员转战android第一篇---环境部署

对于.net开发人员去写java,可谓说是见山是山, 因为太多的相同; 最近段时间因工作因素,将项目中部分功能需要移植到android平台上,经过半个月的煎熬,终于搞完了. 文章中将直观记录我做项目中对android开发的学习和大家一起分享. 好了,废话不多说.进入主题; 准备事项 先从环境搭建开始,博主使用的是 系统:windows server 2003 准备文件:JRE.JDK6以上 | eclipse 3.6.2版本 | ADT-21| Android SDK   当以上文件都准备好了,

我的第一篇博文--程序员的成长

如果你是一名程序员,那么我想恭喜你,你成为了为数不多的新型人类.程序员,在我看来,它是个很棒的代名词,但是想成为真正的程序员,很不容易,真的很累的. 每天挑代码到凌晨3,4点,这不是虚的,写了改,改了重写,查代码,测代码,找bug,反反复复,像是覆水难收. 现在,我得去上课去了,培训.回来继续 我的第一篇博文--程序员的成长

基于C# Winform的简易聊天程序[第一篇-两端通信]

程序简介 本聊天程序支持局域网内部客户端与服务端之间的互相通信. 原理 启动服务端后,服务端通过持续监听客户端发来的请求,一旦监听到客户端传来的信息后,两端便可以互发信息了.服务端需要绑定一个IP,用于客户端在网络中寻找并建立连接.信息发送原理:将手动输入字符串信息转换成机器可以识别的字节数组,然后调用套接字的Send()方法将字节数组发送出去.信息接收原理:调用套接字的Receive()方法,获取对端传来的字节数组,然后将其转换成人可以读懂的字符串信息. 界面设计 - 服务端 IP文本框 na

开博第一篇:记一个前端实现的“换一换”功能

需求的极简概要:实现“换一换”按钮的功能,点击之后,换另一批对应的品牌 刚开始的时候考虑使用ajax请求数据,之后通过js在页面上填充到指定位置,但是真是懒得给这个ajax请求单独再配一个请求映射了,干脆直接在后台把需要的内容全部拼成JSON字符串,直接在前台解析,分页. 页面比较简单,就不上html代码了,大概思路就是:两个“换一换”按钮分别对应两套数据,共用一个分页的方法,分别传入各自的页数,显示对应页数的内容.当然了,实现“换一换”的方法多种多样,我在此只是记录一下自己的思路,欢迎批评指教

程序员修炼之道 从小工到专家:九月第一篇

首先阅读的是序,序中说道:如果你是初学者,可以获取编程技术和方法,拓展你的编程生涯.如果你是富有经验的程序员,同样可以从本书中收益.可以看出,通过阅读这本书,不管是初学的程序员还是资深的程序员,都会有所收获.注重实效的程序员有哪些特征??1.早期的采纳者/快速的改编者.2.好奇.3.批判的思考者.4.有显示感.5.多才多艺.作者在第一章第一节中引用了一句名言:所有弱点中,最大的弱点就是害怕暴露弱点.金融资产管理:1.定期投资习惯.2.多元化.3.保守.高风险之间平衡.4.最大回报.5.周期性评估

jstl标签 core fmt fn函数使用参考(为第一篇的补充,更为实用)

JSTL标签 参考手册 前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为1.1版.JSTL是由J