zoukankan      html  css  js  c++  java
  • 数据库程序接口——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 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     }

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

  • 相关阅读:
    电商 JQuery 抓取联系人信息 复制的代发兔
    Linux-Centos下安装工具用来解压压缩
    Linux远程连接及上传文件
    虚拟机-Linux-Centos8.1 与宿主主机ping互通
    虚拟机-Linux-Centos8.1联网
    数字量输入模块和模拟量输入模块的区别是什么?
    串口转以太网模块设备介绍和使用说明
    以太网模块是什么,以太网模块的功能和特点
    4G DTU连接阿里云说明手册
    react07
  • 原文地址:https://www.cnblogs.com/rain144576/p/6896574.html
Copyright © 2011-2022 走看看