`
zg973595977
  • 浏览: 11969 次
社区版块
存档分类
最新评论

oracle与myeclipse的连接

    博客分类:
  • java
阅读更多

package cn.com.shxt.dbutils;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author ccitKing
 * @日期 : 2012-6-13
 * @描述 : 连接数据库工具类
 * @版本 : v0.1
 */
public class DBUtil {
 private Connection conn;
 private PreparedStatement statement;
 private Statement stmt;
 private ResultSet rs = null;
 /** 连接数据库URL thin连接方式 : 协议+主机地址+资源名称 */
 private String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
 /** 用户名 */
 private String userName = "shxt";
 /** 密码 */
 private String password = "shxt";

 /**
  * 静态代码块
  */
 static {
  try {
   // 加载驱动
   Class.forName("oracle.jdbc.driver.OracleDriver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }

 /**
  * 获得Connection
  */
 public Connection getConn() {
  try {
   conn = DriverManager.getConnection(url, userName, password);
   return conn;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }

 /**
  * 获取执行sql的Statement对象
  * */
 public Statement getStmt() {
  try {
   conn = getConn();
   stmt = conn.createStatement();
   return stmt;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }

 /**
  * 使用Statement操作--查询
  *
  * @param sql
  * @return ResultSet
  * */
 
 public ResultSet query(String sql) {
  try {
   rs = getStmt().executeQuery(sql);
   System.out.println("---------------------1---------------");
   return rs;
  } catch (Exception e) {
   e.printStackTrace();
   System.out.println("---------------------2---------------");
   return null;
  } finally {
   System.out.println("---------------------3---------------");
   //colse();
  }
 }

 /**
  * 执行数据更新的方法
  * @param sql
  *            String 的SQL语句
  * @return Integer 类型的数据 表示受影响的行数
  */
 public int update(String sql) {
  try {
   return getStmt().executeUpdate(sql);
  } catch (Exception e) {
   e.printStackTrace();
   return -1;
  } finally {
   colse();
  }
 }

 /**
  * 查询数据 返回的是一个ArrayList对象,对象中的每一个元素是一个HashMap对象
  *
  * @param sql
  *            String 查询语句
  * @return ArrayList 结果集
  * @throws Exception
  */

 public List<Map<String, String>> queryByList(String sql) {
  try {
   List<Map<String, String>> list = new ArrayList<Map<String, String>>();
   rs = getStmt().executeQuery(sql);
   // 得到结果集(rs)的结构信息,比如字段数、字段名等
   ResultSetMetaData rsmd = rs.getMetaData();
   // 得到数据集的列数
   int columncount = rsmd.getColumnCount();
   while (rs.next()) {
    Map<String, String> map = new HashMap<String, String>();
    for (int i = 0; i < columncount; i++) {
     String key = rsmd.getColumnName(i + 1);
     String value = rs.getString(key);
     map.put(key, value);
    }
    list.add(map);
   }
   return list;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  } finally {
   colse();
  }
 }

 /**
  * 批量更新
  *
  * @param sqls
  *            String 查询语句数组
  * @return int[] 计数组成的数组
  * @throws Exception
  */
 public int[] updateBatch(String[] sqls) {
  stmt = getStmt();
  try {
   startTransaction();
   for (String sql : sqls) {
    stmt.addBatch(sql);// 将所有的SQL语句添加到Statement中
   }
   int[] batchResultList = stmt.executeBatch();
   endTransaction();
   return batchResultList; // 返回更新计数组成的数组。
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   colse();
  }
  return null;
 }

 /**
  * 预处理语句查询结果并封装到List.
  * @param
  *  sql语句.
  * @param 可变参数.
  * @return
  * 返回List.
  * @throws SQLException when the query execution failed.
  */
 public List<Map<String, String>> queryForList(String query,String... params) throws SQLException {
  ResultSet resultSet = null;
  List<Map<String, String>> result;
  try {
   statement = getConn().prepareStatement(query);
   for (int i = 0; i < params.length; i++) {
    statement.setString(i + 1, params[i]);
   }
   resultSet = statement.executeQuery();
   result = new ArrayList<Map<String, String>>();
   while (resultSet.next()) {
    Map<String, String> rowMap = new HashMap<String, String>();
    for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
     rowMap.put(resultSet.getMetaData().getColumnLabel(i),
             resultSet.getString(i));
    }
    result.add(rowMap);
   }
  } finally {
   colse();
  }
  return result;
 }

 /**
  * 结束事务
  * */
 public void endTransaction() throws Exception {
  if (conn == null) {
   conn = getConn();
  }
  try {
   conn.commit();
   conn.close();
  } catch (Exception e) {
   conn.rollback();

  }
 }

 /**
  * 开启事务
  * */
 public void startTransaction() throws SQLException {
  if (conn == null) {
   conn = getConn();
  }
  try {
   conn.setAutoCommit(false);// 设置连接不自动提交,即用该连接进行的操作都不更新到数据库
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }

 /**
  * 数据库关闭操作
  *
  * 要按照顺序关 rs-->stmt-->conn
  * */
 public void colse() {
  if (rs != null) {
   try {
    rs.close();
   } catch (Exception e) {
    System.out.println("关闭结果集对象时出错!");
    e.printStackTrace();
   }
  }
  if (stmt != null) {
   try {
    stmt.close();
   } catch (Exception e) {
    
    System.out.println("关闭语句对象时出错!");
    e.printStackTrace();
   }
  }
  if (conn != null) {
   try {
    conn.close();
   } catch (Exception e) {
    System.out.println("关闭连接对象时出错!");
    e.printStackTrace();
   }
  }
 }
 
 /**
  * 主测试方法
  * @param args
  */
 public static void main(String[] args) {
  DBUtil dbUtil=new DBUtil();
  String sql=" insert into user_info(user_id,user_name,user_password) values(user_seq.nextval,'张三,'123') ";
  int res=dbUtil.update(sql);
  System.out.println("本操作影响记录的行数:"+res);
 }
 

}

分享到:
评论

相关推荐

    oracle连接myeclipse包

    本文将详细介绍如何在MyEclipse中配置Oracle数据库连接,包括所需JAR包的获取与配置方法。 #### 二、配置步骤 ##### 1. 打开MyEclipse并进入数据库浏览器(DB Browser) - 首先启动MyEclipse。 - 在菜单栏中依次...

    设置MyEclipse连接Oracle数据库

    "MyEclipse连接Oracle数据库设置" MyEclipse是基于Eclipse平台的一款集成开发环境(IDE),它提供了一系列强大的功能来帮助开发者快速开发和测试应用程序。然而,在使用MyEclipse时,需要连接到数据库以便进行数据...

    myeclipse连接oracle数据库的jar

    MyEclipse连接Oracle的jar包

    设置MyEclipse10.0连接Oracle11g数据库

    在本文中,我们将深入探讨如何在MyEclipse 10.0中设置连接到Oracle 11g数据库的步骤,以及解决可能出现的问题。首先,我们需要了解MyEclipse是一款强大的集成开发环境(IDE),主要用于Java EE应用的开发,而Oracle ...

    MyEclipse连接Oracle的jar包

    MyEclipse连接Oracle的jar包

    Myeclipse 10.0 + Hibernate 4.3.5 连接 Oracle 11G的演示代码

    标题 "Myeclipse 10.0 + Hibernate 4.3.5 连接 Oracle 11G的演示代码" 描述的是一个整合项目,它将Myeclipse 10.0集成开发环境、Hibernate 4.3.5对象关系映射框架与Oracle 11G数据库相结合,用于演示如何在这样的...

    使用Myeclipse连接oracle数据库进行增删查改操作

    使用Myeclipse连接oracle数据库进行增删查改操作,源代码,

    myeclipse中ssh连接oracle增删改查,含数据库脚本

    在给定的标题和描述中,我们可以看出这是一个关于使用MyEclipse集成开发环境,通过SSH(Spring、Struts、Hibernate)框架连接Oracle数据库,并执行相关数据库操作的教学或示例资源。下面将详细介绍这一主题中的关键...

    tomcat myeclipse oracle配置

    #### 五、连接MyEclipse与Oracle数据库 在Java Web应用中,通常需要与数据库进行交互,因此需要在MyEclipse中配置数据源,以便能够访问Oracle数据库。 **配置步骤:** 1. **安装Oracle JDBC驱动**: - 下载适用...

    myeclipse连接sql server需要的驱动

    在"Myeclipse连接sql server需要的驱动"的描述中提到的“三个去东方文件”,可能是指下载的JDBC驱动包含的三个主要文件,通常是: 1. `sqljdbc_auth.dll`:这是用于Windows身份验证的动态链接库文件,如果需要使用...

    MyEclipse链接oracle连接池的创建

    总结来说,创建MyEclipse连接Oracle的连接池主要涉及两个步骤:一是将Oracle JDBC驱动添加到Tomcat的类路径,二是配置Tomcat的`context.xml`文件定义数据源。在Java代码中,通过JNDI查找并使用这个数据源来获取...

    java eclipse myeclipse oracle 驱动 oracle driver

    Java、Eclipse、MyEclipse 和 Oracle 驱动,这些关键词构成了我们今天要讨论的核心技术领域:Java 开发工具与 Oracle 数据库的连接。Oracle 驱动,也称为 JDBC(Java Database Connectivity)驱动,是Java应用程序与...

    MyEclipse连接oracle

    压缩包中的"myeclipse连接oracle.txt"文件可能包含了用于连接Oracle数据库的Java代码示例。典型的Java代码如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql....

    在myeclipse(java)中如何连接Oracle数据库

    ### 在MyEclipse中连接Oracle数据库的详细步骤与原理 #### 一、前言 在Java开发中,经常需要与数据库进行交互以实现数据的存储和检索功能。Oracle数据库因其高性能和稳定性,在企业级应用中非常受欢迎。本文将详细...

    ssh+oracle+myeclipse搭建好的项目框架

    SSH+Oracle+MyEclipse构建的项目框架是一个典型的Java企业级应用开发环境,涉及Spring、Struts、Hibernate三个核心框架与Oracle数据库及MyEclipse集成开发工具的使用。以下是关于这些知识点的详细说明: 1. **...

    myeclipse 连接 ACCESS 数据库 HIBERNATE

    要使用MyEclipse连接ACCESS数据库并配合Hibernate进行操作,你需要以下步骤: 1. **安装JDBC驱动**:由于ACCESS数据库是Microsoft的产品,所以需要JDBC-ODBC桥接器来建立连接。然而,这个桥接器在Java 8之后已被...

    MyEclipse的SSH框架搭建教程带干净项目、oracle表空间用户密码权限创建

    还有自己做的3到4页的MyEclipse搭建SSH的傻瓜式教程,还有oracle数据库连接引擎的配置的图片流程详解,更有oracle创建表空间、用户名和密码以及给用户授权的sql语句,复制后直接在sql plus里执行。 才收你2分哦,...

    一个使用myeclipse 和oracle 结合使用的案例

    【标题】: "MyEclipse与Oracle结合使用...总结,本案例通过MyEclipse与Oracle的结合,展示了如何在Java环境中进行数据库操作,涵盖了从驱动配置、数据库连接到实际操作的全过程,为开发者提供了一套完整的实践指导。

    在myeclipse(java)中连接Oracle数据库的代码

    在MyEclipse中连接Oracle数据库是一项常见的开发任务,主要用于实现Java应用程序与数据库的交互。以下是一些关于如何在MyEclipse环境下使用Java连接Oracle数据库的关键知识点: 1. **环境准备**: - 安装MyEclipse...

    使用MyEclipse连接数据库

    本文将详细解析如何使用MyEclipse连接数据库,这不仅适用于初学者,也对有经验的开发者在特定场景下提供帮助。 ### 使用MyEclipse连接数据库的关键步骤 #### 1. 配置数据库驱动 首先,你需要打开MyEclipse,然后...

Global site tag (gtag.js) - Google Analytics