首页 > 技术文章 > 数据库程序接口——JDBC——功能第一篇——第一个程序

rain144576 2017-06-15 20:50 原文

 流程图                                                                   

综述                                                                        

    从零开始搭建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 descriptorjdbcUrl存在错误。

 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     }

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

推荐阅读