51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2197|回复: 0
打印 上一主题 下一主题

DBunit about

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-26 17:04:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
package test.sample.service.util;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;

import org.dbunit.DatabaseTestCase;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
/**
* DbUnit 可以有不同的数据库操作,我使用了其中的两种:          
        *DELETE_ALL ,它删除表中所有行。          
        *CLEAN_INSERT ,它删除表中所有行并插入数据集提供的行。
        *This method inserts the contents of a FlatXmlDataSet file
*into the connection
* @author donganlei
*
*/
public class TestDBConnection extends DatabaseTestCase {
        private IDatabaseConnection conn;

        private String driverName = "oracle.jdbc.OracleDriver";

        private String dburl = "jdbcracle:thin192.168.0.2:1521ORTAL";

        private String username = "portal";

        private String pwd = "portal";

        private String schema = "ORTAL";

        private String xmlUrl = "e:\\test.xml";//从数据库中取值到XML中(路径)

        private String dbxmlurl = "e:\\test.xml";//从XML中还原数据库中的记录(路径)
/**
* 初始化TestDBConnection
*
*/
        public TestDBConnection() {
                try {
                        Class.forName(driverName);

                        Connection jdbcConnection = DriverManager.getConnection(dburl,
                                        username, pwd);
                        conn = new DatabaseConnection(jdbcConnection, schema);
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
/**
* 建立连接
* 返回IDatabaseConnection
*/
        public synchronized IDatabaseConnection getConnection() throws Exception {
                Class.forName(driverName);
                Connection jdbcConnection = DriverManager.getConnection(dburl,
                                username, pwd);
                conn = new DatabaseConnection(jdbcConnection, schema);
                return conn;
        }
        /**
         * 方法:它删除表中所有行并插入数据集提供的行
         * @throws Exception
         */
     protected void insertFileIntoDb() throws Exception
      {
               DatabaseOperation.CLEAN_INSERT.execute(getConnection(), getDataSet());
      }
    /**
     * 方法:删除数据库中的所有数据
     * @throws Exception
     */   
    protected void deleteFileDb()throws Exception{
            DatabaseOperation.DELETE_ALL.execute(conn, getDataSet());
    }
    /**
     * 方法 :从XML中读取数据
     */
        protected IDataSet getDataSet() throws Exception {
                return new FlatXmlDataSet(new FileInputStream(dbxmlurl));
        }
/**
* 方法:读取数据库中的内容到xmlUrl中
* @param tableNames
* @throws Exception
*/
        public void backUp(String[] tableNames) throws Exception {
                IDataSet fullDataSet = conn.createDataSet(tableNames);
                FlatXmlDataSet.write(fullDataSet, new FileOutputStream(xmlUrl));
        }
        /**
         * 方法:还原数据库中的数据
         *
         */
        public void overRead() {

        }
        /**
         * 方法关闭连接
         * @throws Exception
         */
        public void closeConn()throws Exception{
                conn.close();
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 21:23 , Processed in 0.068333 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表