`

跳过hibernate获取DBConnection工具类,通过JDBC API访问数据库

阅读更多

在系统中利用hibernate的API我们可以做很多事情,数据的读,存,删等,都比较的方便,但是如批量添加、更新、删除操作,量大的话会严重影响系统的性能,有两个算是比较好的办法解决。

1、直接通过JDBC API来执行该SQL语句

2、通过存储过程

在这两个操作中首先都要得到Connection,当然这也可以通过

 

  1. tx = session.beginTransaction();
  2. Connection con=session.connection();

来得到,在我现在使用的一个系统中是hibernate与spring的整合。通过一个.properties文件的配置来得到与数据库的连接。文件如下:

 

  1. hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
  2. hibernate.connection.url=jdbc:oracle:thin:@192.168.2.11:1521:oracle
  3. hibernate.connection.username=db_test
  4. hibernate.connection.password=test
  5. hibernate.show_sql=true

在此我们也是要利用这个属性文件来写一个DBConnection类来获取JDBC的连接。DBConnection类如下:

  1. package com.***.***.util;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.IOException;
  5. import java.net.URL;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.SQLException;
  9. import java.util.Properties;
  10. public class DBConnection {
  11.     
  12.      public  Connection getConnection() {
  13.           
  14.           Properties properties = new Properties(); 
  15.           URL in = this.getClass().getClassLoader().getResource("jdbc.properties");
  16.         try {
  17.             properties.load(new FileInputStream(in.getFile()));
  18.         } catch (FileNotFoundException e1) {
  19.             // TODO Auto-generated catch block
  20.             e1.printStackTrace();
  21.         } catch (IOException e1) {
  22.             // TODO Auto-generated catch block
  23.             e1.printStackTrace();
  24.         } 
  25.          String driver =properties.getProperty("hibernate.connection.driver_class");
  26.          String  url=properties.getProperty("hibernate.connection.url");
  27.          String user=properties.getProperty("hibernate.connection.username");
  28.          String password=properties.getProperty("hibernate.connection.password");
  29.         Connection con;
  30.         try{
  31.         
  32.         Class.forName(driver);
  33.         con=DriverManager.getConnection(url,user,password);
  34.         return con;
  35.         }catch (ClassNotFoundException e){
  36.         System.out.println(e.getMessage());
  37.         }catch (SQLException e){
  38.         System.out.println(e.getMessage());
  39.         }
  40.         return null;
  41.       }
  42. }

要想获取Connection,只需要

  1. DBConnection db = new DBConnection();
  2. Connection conn = db.getConnection();

接下来的操作就是普通的JDBC操作了。以下是一段参考代码:

  1. //serviceImpl中的一个方法
  2. public boolean addForm(String code,String name,String content)throws MailException{
  3.         DBConnection db = new DBConnection();
  4.         Connection conn = db.getConnection();
  5.         try {
  6.             conn.setAutoCommit(false);
  7.             String queryStr = "insert into form(code,name,content)values(?,?,?)";
  8.             PreparedStatement pstm = conn.prepareStatement(queryStr);
  9.             pstm.setString(1,code);
  10.             pstm.setString(2,name);
  11.             Reader clobReader = new StringReader(content); // 将 text转成流形式
  12.             pstm.setCharacterStream(3, clobReader, content.length());// 替换sql语句中的           
  13.             pstm.executeUpdate();
  14.             conn.commit();
  15.         } catch (SQLException e) {
  16.             // TODO 自动生成 catch 块
  17.             e.printStackTrace();
  18.             return false;
  19.         }finally{
  20.             if(conn!=null){
  21.                 try {
  22.                     conn.close();
  23.                 } catch (SQLException e) {
  24.                     // TODO 自动生成 catch 块
  25.                     e.printStackTrace();
  26.                 }
  27.             }
  28.         }
  29.         return true;
  30.         
  31.     }

 

 

 

分享到:
评论

相关推荐

    java连接mysql数据库(JDBC驱动)

    Java连接MySQL数据库主要依赖于Java Database Connectivity (JDBC) API,这是一个Java编程接口,允许Java应用程序与各种数据库进行交互。本教程将详细讲解如何通过JDBC驱动程序建立Java与MySQL数据库之间的连接。 ...

    java可视化界面操作数据库编程.docx

    - `DBConnection`类的`getConnection()`方法负责加载数据库驱动并建立连接。这里的驱动是`sun.jdbc.odbc.JdbcOdbcDriver`,是ODBC桥接驱动,用于连接到ODBC数据源。 - `LoginFrame`类可能是登录窗体的实现,包含...

    java基础GUI+JDBC学生管理系统

    - 数据库连接类(DBConnection):管理数据库连接,提供获取连接的方法。 - SQL语句文件或常量:存放SQL语句,方便管理和维护。 在个人学习过程中,此项目可以帮助理解GUI组件的使用、事件驱动编程的概念、JDBC操作...

    JDBC_一对多查询_JDBC_daoB[收集].pdf

    - `DBConnection`类(未提供完整代码)应该是用于建立和管理数据库连接的工具类。在`GradesDaoImpl`中,实例化`DBConnection`并在每次操作完成后关闭连接,确保资源的正确释放,避免资源泄漏。 5. **集合封装**: ...

    自己写的java对数据库操作的功能一个简单封装

    在Java中,我们通常使用JDBC(Java Database Connectivity)API来建立与数据库的连接。JDBC提供了一组标准的接口和类,使得Java程序能够与各种不同的数据库系统进行通信。要建立连接,我们需要导入`java.sql....

    Java SQLServer考试信息管理系统源代码.rar

    2. 数据库连接类:负责建立和管理数据库连接,如`DBConnection.java`,可能实现了数据库连接的获取和释放。 3. DAO(Data Access Object)层:封装了数据库操作,如用户DAO、考试DAO等,使得业务逻辑层与数据库操作...

    Maven-java-数据库操作

    Java中的JDBC(Java Database Connectivity)API提供了一种标准的方式来连接和操作数据库。以下是一个简单的数据库连接示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java....

    spring学习笔记3

    Spring框架提供了对JDBC的强大支持,主要通过`JdbcTemplate`和`SimpleJdbcInsert`等工具类简化了常见的数据库操作。以下是一个基本的例子: **Step 1:** 定义数据源(前面已经介绍过)。 **Step 2:** 定义`...

    Students:学生数据库

    1. 数据库连接类(如`DBConnection.java`):包含JDBC连接相关的代码。 2. DAO类(如`StudentDAO.java`):实现对"学生表"的CRUD操作。 3. 实体类(如`Student.java`):表示学生对象,包含属性和方法。 4. 服务类...

    JAVA程序开发大全---上半部分

    20.4.1 建立数据库连接的DBConnection类 348 20.4.2 格式化处理时间的StrFormat类 350 20.5 登录和注册模块的实现 351 20.5.1 对应用户的实体类User 351 20.5.2 用户注册页面register.jsp 354 20.5.3 负责用户注册的...

    商品增删改查

    其中可能包含了与商品操作相关的类,比如`Product.java`表示商品实体类,` 商品Service.java`用于业务逻辑处理,以及`DBConnection.java`用于数据库连接管理。 总的来说,这个"商品增删改查"的实现虽然基础,但涵盖...

    下篇:JDBC(Eclipse和Microsoft SQL sever Managerment Studio连接)以及实现简单的基本表增删改查

    在本篇中,我们将深入探讨如何使用Java的JDBC(Java Database Connectivity)API与Eclipse集成,以便连接到Microsoft SQL Server Management Studio,并实现基本的数据库操作,包括表的增、删、改、查。首先,我们...

Global site tag (gtag.js) - Google Analytics