`
Sunshyfangtian
  • 浏览: 243540 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

一个完整的JDBC封装类

阅读更多

一个完整的JDBC封装类

 

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * JDBC封装类
 * @author ZhangShuqing
 *
 */
public class DB {
    private ResultSet rs;
    private Statement stm;
    private Connection con;
    private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fangtian";
    private String classname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    private String username =  "sa";
    private String password =  "";
    
    /*----------------------------------------------------*/
  /**
   * 构造函数
   */
    public DB(){
     try{
      Class.forName(classname);//加载数据库驱动
     }catch(ClassNotFoundException e){
      e.printStackTrace();
     }
    }
  /**
   * 创建数据库连接
   */
    public Connection getCon(){ 
       try{
           con=DriverManager.getConnection(url,username,password);
       }catch(Exception e){e.printStackTrace(System.err);}
       return con;
    }
    
    /*----------------------------------------------------*/
  /**
   * 获取Statement记录
   */
    public Statement getStm(){
       try{
          con=getCon();
          stm=con.createStatement();
       }catch(Exception e){e.printStackTrace(System.err);}
        return stm;
    }
    /**
     * 调法上面的方法,查询数据库,返回单个结果
     * 其他类调用过程如下:
     * DB db=new DB();
  *   ResultSet r=db.getrs(sql);
  *   while(r.next()){
  *    String s1 = r.getInt(1);
  * }
     */
    public ResultSet getrs(String sql){
     if(sql==null)sql="";
  try{
   stm=getStm();
   rs=stm.executeQuery(sql);
  }catch(SQLException e){e.printStackTrace();}
  return rs;
 }
    
    /*----------------------------------------------------*/
    /**
     * 获取Statement记录集
     */
    public Statement getStmed(){
     try{
         con=getCon();
         stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
     }catch(Exception e){e.printStackTrace(System.err);}
     return stm;
    }
    /**
     * 调法上面的方法,查询数据库,返回一个结果集
     * 其他类调用过程如下:
     * DB db=new DB();
  *   ResultSet rs=db.getRs(sql);
  *   if(rs.next()){
  *    String s1 = r.getInt(1);
  *      String s2 = r.getInt(2);
  *      String s3 = r.getInt(3);
  * }
     */
    public ResultSet getRs(String sql){
     if(sql==null)sql="";
  try{
   stm=getStmed();
   rs=stm.executeQuery(sql);
  }catch(SQLException e){e.printStackTrace();}
  return rs;
 }
    
    /*----------------------------------------------------*/
    /**
     * 对数据库进行更新操作,适合SQL的insert语句和update语句
     * 返回一个int值,表示更新的记录数
     * 若返回为0,表示更新失败
     * 其他类调用过程如下:
     * DB db=new DB();
  *   int i=db.update(sql);
  *   f(i==0){
  *    return mapping.findForward("false");
  * }
  *  return mapping.findForward("success");
     */
    public int update(String sql){
  int num=0;
     if(sql==null)sql="";
     try{
         stm=getStmed();
         num=stm.executeUpdate(sql);
     }catch(SQLException e){e.printStackTrace();num=0;}
     return num;
    }

    /*----------------------------------------------------*/
    /**
     * 删除数据库的中数据
     * 其他类调用过程如下:
     * DB db=new DB();
  *   db.delete(sql);
     */
    public boolean delete(String sql){
     boolean ok;
     if(sql==null)sql="";
     try{
      stm=getStmed();
      ok=stm.execute(sql);
     }catch(SQLException e){e.printStackTrace();}
     return true;
    }
    
    /**
     * 断开数据库连接
     * 其他类调用过程如下:
     * DB db=new DB();
  *   db.closed();
     */
    public void closed(){
     try{
      if(rs!=null)rs.close();
     }catch(Exception e){e.printStackTrace();}
     try{
      if(stm!=null)stm.close();
     }catch(Exception e){e.printStackTrace();}
     try{
      if(con!=null)con.close();
     }catch(Exception e){e.printStackTrace();}     
    }
    
}

  

 

分享到:
评论

相关推荐

    JDBC封装.rar

    "JDBC封装方式"可能是包含上述封装策略的源代码文件,如`DBUtil.java`,`UserDAO.java`,`UserDAOImpl.java`等,这些文件共同构成了一个完整的JDBC封装体系。 通过以上介绍,我们可以理解JDBC封装是Java开发中提升...

    jdbc 连接数据库封装类,可返回map,或者vo(自用)

    标题中的“jdbc 连接数据库封装类,可返回map,或者vo(自用)”指的是一个自定义的Java类库,用于简化Java应用程序通过JDBC(Java Database Connectivity)与数据库的交互。这类库通常会提供方便的方法来执行SQL...

    类似hibernate的jdbc封装

    标题提到的"类似hibernate的jdbc封装"就是这样的一个实践,它试图在不引入庞大框架的情况下,提供类似Hibernate的便捷性。 首先,我们来了解JDBC(Java Database Connectivity),它是Java中用于连接数据库的标准...

    jdbc.rar_JDBC增删改查_java jdbc_jdbc_jdbc 增删改查_jdbc封装

    综上所述,这个“jdbc.rar”压缩包提供的内容应该是一个完整的Java JDBC示例,展示了如何利用JDBC进行数据库的增删改查操作,并对这些基本操作进行了封装,提高了代码的可读性和可复用性。对于初学者来说,这是一个...

    java连接SqlServer完整代码,工具类,jdbc

    java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...

    自己封装的小框架--JDBC封装 Action层封装 手动事务管理

    本项目中,"自己封装的小框架--JDBC封装 Action层封装 手动事务管理"是一个实用的实践案例,旨在提高开发效率,优化代码结构,并确保数据操作的完整性。下面我们将深入探讨这个框架中的主要组成部分及其相关知识点。...

    简单通用JDBC辅助类封装(实例)

    在这个实例中,我们将讨论如何封装一个简单的JDBC辅助类,以实现更高效、安全的数据库操作。 首先,我们看到有一个`Config`类,它是用来读取数据库连接配置的。这个类通常会从配置文件(如`dbconfig.properties`)...

    JDBC 工具类JdbcUtils封装与测试应用(针对mysql)

    在项目"day04-jdbc"中,你可以找到这个工具类的完整实现和相关的测试用例,这将帮助你更好地理解JDBC工具类的封装和应用。通过这种方式,我们可以有效地利用JDBC进行数据库操作,同时避免了重复的连接管理和异常处理...

    JDBC操作数据库辅助类

    这些类构成了一个完整的JDBC辅助库,提供了一套方便的接口来执行数据库操作。通过分析这些类的源代码,我们可以深入理解如何构建自己的数据库操作框架,从而更好地管理数据库连接,优化性能,并降低开发复杂度。

    JDBC工具类完整版.docx

    综上所述,`DBUtil`是一个基础的JDBC工具类,实现了基本的数据库连接管理和SQL操作功能,对于简单的Java应用来说已经足够。但在大型项目中,通常会使用ORM框架(如Hibernate、MyBatis)来进一步抽象数据库操作,提供...

    JAVA 连接sqlserver类 已封装好 & sqljdbc.jar

    总的来说,这个压缩包提供了一个完整的解决方案,包括了连接SQL Server所需的JDBC驱动以及一个已经实现了基础数据库操作的Java类,简化了开发流程,提高了开发效率。对于使用Java进行SQL Server数据库操作的项目,这...

    C++操作MYSQL库类JDBC

    为了实现C++版的“JDBC”,开发者可能创建了一个类库,封装了MySQL Connector/C++的API,设计出与JDBC类似的接口,例如`Connection`、`Statement`、`PreparedStatement`和`ResultSet`等。这样的设计可以降低学习曲线...

    Android 封装的工具类

    在Android开发中,工具类(Utils Class)是程序员经常创建的一种辅助代码结构,用来封装一些通用功能,提高代码的复用性和可维护性。这里提到的"Android 封装的工具类"涵盖了几种关键的模块,包括网络请求、数据库...

    Spring3MVC和JDBC的集成

    这两个模板类封装了JDBC的细节,如打开和关闭连接、处理结果集等,使代码更简洁且易于维护。例如,我们可以编写如下代码来执行一个SQL查询: ```java @Autowired private JdbcTemplate jdbcTemplate; public List...

    对jdbc的封装的总结

    在对JDBC进行封装时,通常会创建一个数据库连接池,如C3P0、Druid或HikariCP,这能有效管理数据库连接,提高性能。连接池提供连接的获取和释放,确保在多线程环境下安全高效地使用数据库。 接着,我们会创建一个DAO...

    Spring3 JDBC 通用DAO封装2 dao层终于完成dao层大概上传完整代码

    在Spring3中,我们可以通过接口定义通用的CRUD(Create, Read, Update, Delete)操作,然后创建一个实现该接口的抽象类,封装共性的JDBC操作,比如执行SQL、处理结果集等。这样,对于每个具体的数据库表,只需要创建...

    Struts+jdbc+oracle完整项目

    Struts+jdbc+Oracle完整项目是一个典型的Web应用开发实例,它综合运用了三种关键技术:Struts作为MVC框架,jdbc作为数据库访问层,以及Oracle作为后台数据库系统。这个项目为初学者提供了一个全面理解Web应用开发...

    MVC模式写的投票系统 值得学习 封装了JDBC的方法

    **JDBC封装** JDBC(Java Database Connectivity)是Java语言与数据库交互的标准API。为了提高代码的可复用性和可维护性,开发者通常会将JDBC操作封装到独立的类或模块中。在本项目中,提到的"封装了JDBC的方法...

    jdbc连接的应用外加完整项目

    **JDBC连接的应用详解及完整项目实践** JDBC(Java Database Connectivity)是Java语言中用于与数据库交互的一组接口和类,它为开发者提供了一种标准的、面向对象的方式来访问各种类型的数据库。JDBC允许Java应用...

Global site tag (gtag.js) - Google Analytics