封装Java数据库操作的类

/*
* Created on 2005-7-27
*
* To change the template for this generated file go to
* Window&gt references>Java>Code Generation>Code and Comments
*/

package db;


import java.sql.Connection;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;



/**
* @author ljp
*
* To change the template for this generated type comment go to
* Window&gt references>Java>Code Generation>Code and Comments
*/

//该类用于封装数据库操作
public class DbBean
{

        /**
         *
         */
        private String URL;//数据源URL
        private String DRIVER;//数据库驱动
        private String SQL;//SQL语句
        private boolean ISQUERY=true;//判断是QUERY操作或UPDATE操作默认为QUERY
        private Connection CON;//语句对象
        private Statement SM;//语句对象
        private PreparedStatement PSM;//Prepared语句对象
        private CallableStatement CSM;//执行存储过程的语句对象
        private ResultSet RS;//结果集对象
       
       
        public DbBean()
        {
               
        }
       
       
        //开启数据库连接
        public void openCon(String _url,String _driver)
        {
                SM=this.makeStatement(_url,_driver);       
        }
       
       
        //用于执行select操作
        public ResultSet getResult(String _url,String _driver,String _sql)
        {
                SM=makeStatement(_url,_driver);
                SQL=_sql;
                return this.runExecute();                               
        }
       
       
        //用于执行insert,delete,update操作
        public void dbUpdate(String _url,String _driver,String _sql,boolean _isquery)
        {
                SM=this.makeStatement(_url,_driver);       
                SQL=_sql;
                ISQUERY=_isquery;
                this.runExecute();               
        }
       
        //用于初始化prepared语句对象
        public void dbPrepared(String _url,String _driver,String _sql)
        {
                PSM=this.makePreparedStatement(_url,_driver,_sql);       
                SQL=_sql;               
        }
       
        //用于执行prepared语句的数据库操作
        public void runPrepared()
        {
                try
                {
                                PSM.execute();
                                System.out.println("执行prepared语句的数据库操作");
                }
                catch(Exception e)
                {
                        System.out.println("执行prepared语句的数据库操作出错");
                }
       
        }
        //_values的值用于填充SQL语句中的?处的参数
        public void setPreparedVal(Object[] _values)
        {
                try
                {
                        for(int i=0;i<_values.length;i++)
                        {
                                PSM.setObject(i,_values[i]);
                        }
                }
                catch(Exception e)
                {
                        System.out.println("设置prepared的SQL语句的参数时出错");
                }
       
        }
        //_values的值用于填充SQL语句中的?处的String型的参数
        public void setPreparedValString(String[] _values)
        {
                try
                {
                        for(int i=0;i<_values.length;i++)
                        {
                                PSM.setString(i,_values[i]);
                        }
                }
                catch(Exception e)
                {
                        System.out.println("设置prepared的SQL语句的String型参数时出错");
                }
       
        }
        //_values的值用于填充SQL语句中的?处的int型参数
        public void setPreparedValInt(int[] _values)
        {
                try
                {
                        for(int i=0;i<_values.length;i++)
                        {
                                PSM.setInt(i,_values[i]);
                        }
                }
                catch(Exception e)
                {
                        System.out.println("设置prepared的SQL语句的int型参数时出错");
                }
       
        }
       
        //用于初始化执行存储过程的语句对象,_procedurename为存储过程名和参数列表用如" _Test[(?,?)]",有返回值时outval="?=";没有时outval="";
        public void dbCallable(String _url,String _driver,String _procedurename,String _outval)
        {
                CSM=this.makeCallableStatement(_url,_driver,_procedurename,_outval);
        }
       
        //设置存储过程的返回值
        public void setProcedureOut(int _sqlType)
        {
                try
                {
                        CSM.registerOutParameter(0,_sqlType);
                }
                catch (Exception e)
                {
                        System.out.println("设置存储过程的返回值时出错");
                }
        }
        //获取存储过程的返回值
        public void getProcedureOut()
        {
                try
                {
                        CSM.getObject(0);
                }
                catch (Exception e)
                {
                        System.out.println("获取存储过程的返回值时出错");
                }
        }
               
        //用于执行存储过程的数据库操作
        public void runCallable()
        {       
                try
                {
                                PSM.execute();
                                System.out.println("执行存储过程的数据库操作");
                }
                catch(Exception e)
                {
                        System.out.println("用于执行存储过程的数据库操作出错");
                }
        }
       
        //可以在首次执行数据库操作后,再次操作时使用
        public ResultSet reExecute()
        {
                if(SQL!=null)
                {
                        return this.runExecute();
                }
                else
                {
                        System.out.println("请先输入SQL语句");
                        return null;
                }
        }
       
       
        //设置SQL语句
        public void setSql(String _sql)
        {
                SQL=_sql;
        }
       
       
        //设置数据库操作类型
        public void setIsquery(boolean _isquery)
        {
                ISQUERY=_isquery;
        }
       
       
        //关闭数据库连接出错
        public void dbClose()
        {
                try
                {
                       
                        URL=null;
                        DRIVER=null;
                        SQL=null;
                        ISQUERY=true;
                       
                        CON.commit();

                        if(RS!=null)
                        {
                                RS.close();
                        }
                       
                        if(SM!=null)
                        {
                                SM.close();
                        }
                       
                        if(CON!=null)
                        {
                                CON.close();
                        }
                        System.out.println("关闭数据库连接");
                }
                catch(Exception e)
                {
                        System.out.println("关闭数据库连接出错");
                }
               
        }
       
       
        //内部使用方法,用于创建语句对象
        private Statement makeStatement(String _url,String _driver)
        {
                               
                try
                {
                        //加载数据库驱动
                        Class.forName(_driver);
                        System.out.println("加载数据库驱动");
                }
                catch(Exception e)
                {
                        System.out.println("无法加载数据库驱动");
                }
               
                Statement sm;
                try
                {
                        //创建数据库连接语句对象
                        CON=DriverManager.getConnection(_url);
                        sm=CON.createStatement();
                        System.out.println("创建数据库连接");
                        return sm;
                       
                }
                catch(Exception e)
                {
                        System.out.println("创建数据库连接语句对象出错");
                        return null;
                }
                       
        }
       
        //内部使用方法,用于创建Prepared语句对象
        private PreparedStatement makePreparedStatement(String _url,String _driver,String _preparedsql)
        {
                               
                try
                {
                        //加载数据库驱动
                        Class.forName(_driver);
                        System.out.println("加载数据库驱动");
                }
                catch(Exception e)
                {
                        System.out.println("无法加载数据库驱动");
                }
               
                PreparedStatement psm;
                try
                {
                        //创建数据库连接语句对象
                        CON=DriverManager.getConnection(_url);
                        psm=CON.prepareStatement(_preparedsql);
                        System.out.println("创建数据库连接");
                        return psm;
                       
                }
                catch(Exception e)
                {
                        System.out.println("创建数据库连接Prepared语句对象出错");
                        return null;
                }
                       
        }
       
        //内部使用方法,用于创建执行存储过程的语句对象
        private CallableStatement makeCallableStatement(String _url,String _driver,String _procedurename,String _outval)
        {
                               
                try
                {
                        //加载数据库驱动
                        Class.forName(_driver);
                        System.out.println("加载数据库驱动");
                }
                catch(Exception e)
                {
                        System.out.println("无法加载数据库驱动");
                }
               
                CallableStatement csm;
                try
                {
                        //创建数据库连接语句对象
                        CON=DriverManager.getConnection(_url);
                        csm=CON.prepareCall("{"+_outval+"call "+_procedurename+"}");
                        System.out.println("创建数据库连接");
                        return csm;
                       
                }
                catch(Exception e)
                {
                        System.out.println("创建执行存储过程的语句对象出错");
                        return null;
                }
                       
        }
       
        //内部使用方法,执行SQL语句并返回结果集
        private ResultSet runExecute()
        {
                try
                {
                        if(ISQUERY)
                        {
                                RS=SM.executeQuery(SQL);
                                System.out.println("执行数据库查询操作");
                                return RS;
                        }
                        else
                        {
                                ISQUERY=true;
                                SM.executeUpdate(SQL);
                                System.out.println("执行数据库更新操作");
                                return null;
                        }
                }
                catch(Exception e)
                {
                        System.out.println("执行SQL语句出错");
                        return null;
                }
       
        }
               
       
}
/*
* Created on 2005-7-27
*
* To change the template for this generated file go to
* Window&gt references&gt;Java&gt;Code Generation&gt;Code and Comments
*/
package db;


import java.sql.ResultSet;


/**
* @author ljp
*
* To change the template for this generated type comment go to
* Window&gt references&gt;Java&gt;Code Generation&gt;Code and Comments
*/

//该类可以帮助程序员较方便的完成数据库操作,是DbBean的功能扩展
public class DbAccess extends DbBean
{

        /**
         *
         */

        private String ACCESSURL="jdbc dbc:coolljpDB";//数据源URL
        private String ACCESSDRIVER="sun.jdbc.odbc.JdbcOdbcDriver";//数据库驱动
       
       
       
        public DbAccess()
        {
               
        }
       
       
        //初始化数据源URL和数据库驱动
        public DbAccess(String _ACCESSURL,String _ACCESSDRIVER)
        {
                ACCESSURL=_ACCESSURL;
                ACCESSDRIVER=_ACCESSDRIVER;
        }
       
               
       
        //执行查询操作并返回结果集,返回表中所有元素
        public ResultSet doSelect(String _tablename)
        {
               
                ResultSet rs=null;

                try
                {
                        String sql="select * from "+_tablename;
                        rs=super.getResult(ACCESSURL,ACCESSDRIVER,sql);
                }
                catch (Exception e)
                {
                        System.out.println("doSelect操作出错");
                }
               
                return rs;
               
        }
       
       
        //执行查询操作并返回结果集,返回指定元素
        public ResultSet doSelect(String _tablename,String _wheresql) //_wheresql代表where之后的sql语句
        {
               
                ResultSet rs=null;

                try
                {
                        String sql="select * from "+_tablename+" where "+_wheresql;
                        rs=super.getResult(ACCESSURL,ACCESSDRIVER,sql);
                }
                catch (Exception e)
                {
                        System.out.println("doSelect操作出错");
                }
               
                return rs;
               
        }
       
       
        //删除符合条件的行
        public void doDelete(String _tablename,String _wheresql)
        {
                try
                {
                        String sql="delete * from "+_tablename+" where "+_wheresql;
                        super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);
                }
                catch (Exception e)
                {
                        System.out.println("doDelete操作出错");
                }
        }
       
       
       
        //执行删除操作
        public void doDelete(String _tablename,String _names,String _wheresql)//_names代表所要删除的字段名或_names="*"
        {
                try
                {                       
                        String sql="delete ("+_names+") from "+_tablename+" where "+_wheresql;
                        super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);
                }
                catch (Exception e)
                {
                        System.out.println("doDelete操作出错");
                }
        }
       
       
       
       
        //删除所有行       
        public void doDelete(String _tablename)
        {
                try
                {
                        String sql="delete from "+_tablename;
                        super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);
                }
                catch (Exception e)
                {
                        System.out.println("doDelete操作出错");
                }
        }
       
       
       
        //执行插入操作
        public void doInsert(String _tablename,String _values)//_values是所要入元素的值
        {
                try
                {
                        String sql="insert into "+_tablename+" values ("+_values+")";
                        super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);
                }
                catch (Exception e)
                {
                        System.out.println("doDelete操作出错");
                }
        }
       
       
        //执行插入操作
        public void doInsert(String _tablename,String _names,String _values)//_names是所要插入的字段名,_values是所要入元素的值
        {
                try
                {
                        String sql="insert into "+_tablename+" ("+_names+") values ("+_values+")";
                        super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);
                }
                catch (Exception e)
                {
                        System.out.println("doDelete操作出错");
                }
        }
       
       
        //执行修改操作
        public void doUpdate(String _tablename,String _values,String _wheresql)//_values是所要修改元素和值,_wheresql代表where之后的sql语句
        {
                try
                {
                        String sql="update "+_tablename+" set "+_values+" where "+_wheresql;
                        super.dbUpdate(ACCESSURL,ACCESSDRIVER,sql,false);
                }
                catch (Exception e)
                {
                        System.out.println("doUpdate操作出错");
                }
        }
       
       
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RocksDB是一个高性能的Key-Value存储库,用于本地持久化存储。为了更方便地在Java中使用RocksDB,可以封装一个Java工具。 首先,这个工具需要提供初始化RocksDB数据库的方法。在该方法中,我们可以设置RocksDB的配置参数,如内存大小、数据刷写策略等。可以使用RocksDB的Java API来创建并打开一个RocksDB实例,并将其存储在工具中以供后续操作使用。 接下来,工具需要提供读写数据的方法。可以封装put和get方法来实现写入和读取数据。对于写入操作,可以使用RocksDB的put方法将数据写入数据库;对于读取操作,可以使用RocksDB的get方法根据key获取对应的value。这些方法可以通过传入key和value参数来执行相应的操作。 此外,可以封装删除数据的方法。可以使用RocksDB的delete方法来删除指定key的数据,以及RocksDB的deleteRange方法来删除一定范围内的数据。这些方法同样可以通过传入key或范围参数来执行相应的操作。 除了基本的读写操作,还可以封装批量写入和迭代器的方法。批量写入可以通过RocksDB的write方法实现,在同一个事务中一次性写入多个key-value对。迭代器可以使用RocksDB的newIterator方法创建一个迭代器对象,从而进行遍历数据库操作。 最后,需要提供关闭数据库的方法。可以使用RocksDB的close方法关闭数据库连接,释放资源。 通过封装这些方法,可以将复杂的RocksDB操作封装成简单易用的Java工具,使得开发人员在使用RocksDB时更加方便快捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值