JDBC連接SQL SERVER 和JUNIT4單元測試

這是一個spring下利用jdbc連接SQL SERVER 2008 R2,並且利用Junit4做單元測試的合併例子。

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

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import com.thinkgem.jeesite.common.utils.IdGen;
import com.thinkgem.jeesite.modules.mancs.gov.agri.demonarea.demoninfo.entity.DemonInfo;
import com.thinkgem.jeesite.modules.mancs.gov.agri.demonarea.demoninfo.service.DemonInfoService;

/** 聲明用的是Spring的測試類 **/
@RunWith(SpringJUnit4ClassRunner.class)

/** 聲明spring主配置文件位置,注意:以當前測試類的位置爲基準,有多個配置文件以字符數組聲明 **/
@ContextConfiguration(locations = { "classpath:spring-context.xml" })

/** 聲明事務回滾,要不測試一個方法數據就沒有了豈不很杯具,注意:插入數據時可注掉,不讓事務回滾 **/
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)

@Service
@Transactional(readOnly = true)
public class GetDataFromOldDB {
    @Autowired
    private DemonInfoService demonInfoService;

    @Test
    public void test() {
        String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String connectDB = "jdbc:sqlserver://10.2.146.120:1433; DatabaseName=AgriRegion";

        try {
            Class.forName(JDriver);
        } catch (ClassNotFoundException e) {
            System.out.println("加載數據庫引擎失敗");
        }
        System.out.println("數據庫驅動成功");

        try {
            String user = "sa";
            String password = "abc.123456";
            Connection con = DriverManager.getConnection(connectDB, user, password);
            System.out.println("連接數據庫成功");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt
                    .executeQuery("SELECT * FROM [AgriRegion].[dbo].[BaseUsers] t where t.UserName='山東省壽光市國家現代農業示範區'");// 返回SQL語句查詢結果集(集合)
            // 循環輸出每一條記錄
            while (rs.next()) {
                // 輸出每個字段
                System.out
                        .println(rs.getString("ID") + "\t" + rs.getString("UserName") + "\t" + rs.getString("Province")
                                + rs.getString("City") + rs.getString("County") + rs.getString("Address"));
                DemonInfo demonInfo = new DemonInfo();
                demonInfo.setId(IdGen.uuid());
                demonInfo.setReportName(rs.getString("UserName"));
                demonInfo.setConfirmName(rs.getString("UserName"));
                demonInfo.setAddress(rs.getString("Province") + rs.getString("City") + rs.getString("County")
                        + rs.getString("Address"));
                demonInfo.setDemonareaType(1);
                demonInfo.setTelephone(rs.getString("Phone"));
                demonInfo.setAreaNames(
                        rs.getString("Province") + "," + rs.getString("City") + "," + rs.getString("County"));
                demonInfoService.saveDaseData4TestCreate(demonInfo);
            }
            System.out.println("讀取完畢");
            stmt.close();// 關閉命令對象連接
            con.close();// 關閉數據庫連接
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.print(e.getErrorCode());
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章