国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java單元測試(二)H2數(shù)據(jù)庫篇

這篇具有很好參考價值的文章主要介紹了java單元測試(二)H2數(shù)據(jù)庫篇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、什么是H2?

H2 數(shù)據(jù)庫是一個用 Java 開發(fā)的嵌入式(內(nèi)存級別)數(shù)據(jù)庫,它本身只是一個類庫,也就是只有一個 jar 文件,可以直接嵌入到項目中。 H2數(shù)據(jù)庫又被稱為內(nèi)存數(shù)據(jù)庫,因為它支持在內(nèi)存中創(chuàng)建數(shù)據(jù)庫。

二、Springboot項目集成H2

為什么測試數(shù)據(jù)庫CRUD
對于Spring項目,特別是測試Service層或者dao層的代碼時。需要驗證訪問數(shù)據(jù)庫的邏輯是否正確。

2.1、引入H2依賴

    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.4.193</version>
      <scope>runtime</scope>
    </dependency>

2.2、初始化spring配置文件application.test.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/jdbc
        http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd">

    <context:annotation-config/>
    <aop:aspectj-autoproxy proxy-target-class="true"/>

    <tx:annotation-driven/>
    
    <!-- 初始化h2數(shù)據(jù)庫 -->
    <jdbc:embedded-database id="dataSource" generate-name="true" type="H2">
        <jdbc:script location="classpath:init/DDL_init.sql"/>
        <jdbc:script location="classpath:init/DML_init.sql"/>
    </jdbc:embedded-database>

    <!-- 創(chuàng)建SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations">
            <list>
                <value>classpath*:mapper/*.xml</value>
            </list>
        </property>
    </bean>
    <!-- 掃描Mapper文件并生成dao對象 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.com.jc.mapper"></property>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
    <!-- 配置事務(wù)管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <bean class="cn.com.jc.service.impl.UserServiceImpl"/>
</beans>

2.3、初始化H2數(shù)據(jù)庫DDL/DML語句

DDL_init.sql

CREATE TABLE IF NOT EXISTS`user`  (
 `id` varchar(255)  NOT NULL,
 `address` varchar(255)   COMMENT '地址',
 `created_by` varchar(255)  ,
 `created_time` datetime(0) ,
 `deleted` varchar(255)  ,
 `last_modified` varchar(255)  ,
 `last_modified_time` datetime(0) ,
 `login_name` varchar(255)   COMMENT '登錄名',
 `login_password` varchar(255)   COMMENT '登錄密碼',
 `name` varchar(255)   COMMENT '用戶名',
 `phone` varchar(255)   COMMENT '手機',
 `remark` varchar(255)   COMMENT '備注',
 `user_code` varchar(255)  NOT NULL COMMENT '用戶編號',
 `user_status` varchar(255)   COMMENT '用戶狀態(tài)(狀態(tài)為0顯示可用,狀態(tài)為1顯示停用)',
 `email` varchar(255)   COMMENT '郵箱',
 `profile` varchar(255)   COMMENT '登錄密碼',
 PRIMARY KEY (`id`) 
) ENGINE = InnoDB ;

DML_init.sql

INSERT INTO `user` VALUES ('27bd35f040d74585951974134ec86153', 'test01', 'lxf666', '2021-02-28 12:45:54', '0', 'lxf666', '2021-02-28 13:07:54', 'test01', '$2a$10$QLVCFhfesLhVKezrDd5RsuHqWknndx6XPHnGdXzwjxuoGZWQf2kWK', 'test', 'test', NULL, '0030', '0', 'test@qq.com', '我是test1');

三、編寫單元測試

3.1、首先我們創(chuàng)建測試類

java單元測試(二)H2數(shù)據(jù)庫篇

3.2、編寫測試用例

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:application-test.xml")
@EnableTransactionManagement
@PowerMockIgnore({"javax.management.*", "javax.script.*"})
public class UserServiceImplTest {

    @Autowired
    private UserService userService;

    @Test
    public void selectUserById() {

        User user = userService.selectUserById("27bd35f040d74585951974134ec86153");
        Assert.assertEquals("27bd35f040d74585951974134ec86153", user.getId());
    }

    @Test
    public void test_update() {
        User user = new User();
        user.setId("27bd35f040d74585951974134ec86153");
        user.setAddress("test01");
        user.setProfile("我是test1");
        user.setEmail("test@qq.com");
        user.setPhone("188888888");
        user.setName("test");
        userService.update(user);
        User newUser = userService.selectUserById("27bd35f040d74585951974134ec86153");
        Assert.assertEquals("setPhone", newUser.getPhone());
    }
}

引入@PowerMockIgnore({“javax.script.*”})為了執(zhí)行H2初始化腳本,不可缺少

3.3、測試用例

執(zhí)行成功,如果失敗的話需要繼續(xù)調(diào)試,直到成功
java單元測試(二)H2數(shù)據(jù)庫篇

注意必須引入@PowerMockIgnore({“javax.management.*”}),不然會報以下這個錯
java單元測試(二)H2數(shù)據(jù)庫篇文章來源地址http://www.zghlxwxcb.cn/news/detail-462032.html

到了這里,關(guān)于java單元測試(二)H2數(shù)據(jù)庫篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Go 單元測試之Mysql數(shù)據(jù)庫集成測試

    Go 單元測試之Mysql數(shù)據(jù)庫集成測試

    目錄 一、 sqlmock介紹 二、安裝 三、基本用法 四、一個小案例 五、Gorm 初始化注意點 sqlmock 是一個用于測試數(shù)據(jù)庫交互的 Go 模擬庫。它可以模擬 SQL 查詢、插入、更新等操作,并且可以驗證 SQL 語句的執(zhí)行情況,非常適合用于單元測試中。 使用 sqlmock 進行 MySQL 數(shù)據(jù)庫集成測試

    2024年04月17日
    瀏覽(26)
  • 第三單元測試(數(shù)據(jù)庫安全及設(shè)計)

    一. 單選題(共46 題,72.5分) 1. (單選題,1.5分)“死鎖”是一直___D___。 A. 系統(tǒng)故障 B. 介質(zhì)故障 C. 磁盤故障 D. 事務(wù)故障 2. (單選題,1.5分)事務(wù)的原子性是指___D____。 A. 事務(wù)一旦提交,對數(shù)據(jù)庫的改變是永久的 B. 一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的 C. 事務(wù)

    2024年02月04日
    瀏覽(27)
  • 使用MyBatis操作數(shù)據(jù)庫及單元測試

    使用MyBatis操作數(shù)據(jù)庫及單元測試

    目錄 一.MyBatis介紹 二.MyBatis操作數(shù)據(jù)庫步驟 三.單元測試 idea上生成測試 ?配置mybatis日志 動態(tài)參數(shù) MyBatis是?款優(yōu)秀的持久層框架,?于簡化JDBC的開發(fā)。 JDBC來操作數(shù)據(jù)庫太復雜了,使用MyBatis 是因為它可以幫助我們更?便、更快速的操作數(shù)據(jù)庫。 1. 創(chuàng)建springboot工程, 并導入

    2024年02月03日
    瀏覽(21)
  • SpringBoot整合H2數(shù)據(jù)庫

    SpringBoot整合H2數(shù)據(jù)庫

    H2官網(wǎng):http://www.h2database.com/ H2是一個Java語言編寫的嵌入式數(shù)據(jù)庫,它不受平臺的限制,同時H2提供了一個十分方便的web控制臺,用于操作和管理數(shù)據(jù)庫內(nèi)容。H2還提供兼容模式,可以兼容一些主流的數(shù)據(jù)庫,也可以為緩存數(shù)據(jù)庫使用,它具有比較完備的數(shù)據(jù)庫特性,如支cli

    2024年02月16日
    瀏覽(24)
  • 從零開始:安裝H2數(shù)據(jù)庫的步驟解析

    從零開始:安裝H2數(shù)據(jù)庫的步驟解析

    在開發(fā)或編寫示例時,有時需要用到數(shù)據(jù)庫,如果本機上剛好沒有安裝,類似有些同學是臨時借用的電腦或?qū)W校的電腦剛好沒有安裝時,我們可以使用H2數(shù)據(jù)庫來快速代替,即方便又靈活。 步驟 1:下載H2數(shù)據(jù)庫 訪問H2數(shù)據(jù)庫的官方網(wǎng)站(https://www.h2database.com/),并下載最新的

    2024年02月08日
    瀏覽(24)
  • Springboot集成輕量級內(nèi)存數(shù)據(jù)庫H2

    最近做一個小項目,需要存儲的數(shù)據(jù)不多,用mysql太重了,用其他的Redis之類的也不太方便,然后就想到了H2,他就是一個jar包,可以和項目一起打包發(fā)布,非常適合數(shù)據(jù)量不多的微小系統(tǒng),下面大概介紹下H2的基本知識和Springboot的集成 H2是一個用Java開發(fā)的嵌入式數(shù)據(jù)庫,它本

    2024年02月07日
    瀏覽(17)
  • 服務(wù)攻防-數(shù)據(jù)庫安全-Influxdb&H2database&CouchDB&ElasticSearch數(shù)據(jù)庫漏洞復現(xiàn)

    服務(wù)攻防-數(shù)據(jù)庫安全-Influxdb&H2database&CouchDB&ElasticSearch數(shù)據(jù)庫漏洞復現(xiàn)

    目錄 一、Influxdb-未授權(quán)訪問-Jwt 驗證不當 1、Infuxdb簡介 2、安全問題 3、漏洞復現(xiàn)? 二、H2database-未授權(quán)訪問-配置不當 1、H2database簡介 2、安全問題 3、漏洞復現(xiàn)? 三、CouchDB-權(quán)限繞過配合RCE-漏洞 1、CouchDB簡介 2、安全問題 3、漏洞復現(xiàn)? 四 、ElasticSearch-文件寫入RCE-漏洞 1、Ela

    2024年02月16日
    瀏覽(20)
  • 數(shù)據(jù)庫安全-H2 database&Elasticsearch&CouchDB&Influxdb漏洞復現(xiàn)

    數(shù)據(jù)庫安全-H2 database&Elasticsearch&CouchDB&Influxdb漏洞復現(xiàn)

    參考:influxdb CVE-2019-20933 靶場環(huán)境:vulhub 打開靶場進入環(huán)境: 訪問: 端口掃描: 默認端口: 8086:用于客戶端和服務(wù)端交互的HTTP API 8088 :用于提供備份和恢復的RPC服務(wù) influxdb 是一款著名的時序數(shù)據(jù)庫,其使用 jwt 作為鑒權(quán)方式。在用戶開啟了認證, 但未設(shè)置參數(shù) shared-s

    2024年02月06日
    瀏覽(24)
  • H2數(shù)據(jù)庫配置及相關(guān)使用方式一站式介紹(極為詳細并整理官方文檔)

    H2數(shù)據(jù)庫配置及相關(guān)使用方式一站式介紹(極為詳細并整理官方文檔)

    注意:可以直接移步至【2. H2數(shù)據(jù)庫實戰(zhàn)】目錄下進行對H2數(shù)據(jù)庫的快速使用 1.1 H2數(shù)據(jù)庫介紹 官方文檔地址: http://www.h2database.com/html/main.html H2的開發(fā)始于2004年5月, 但它在2005年12月14日首次發(fā)表。 H2的原作者Thomas Mueller也是Hypersonic SQL的原始開發(fā)者。 2001年,他加入PointBase公司

    2024年02月13日
    瀏覽(21)
  • 小迪安全 第56天 服務(wù)攻防-數(shù)據(jù)庫安全&H2&Elasticsearch&CouchDB&Influxdb 復現(xiàn)

    小迪安全 第56天 服務(wù)攻防-數(shù)據(jù)庫安全&H2&Elasticsearch&CouchDB&Influxdb 復現(xiàn)

    1.端口掃描 2.報錯回顯 時序數(shù)據(jù)庫是近幾年一個新的概念,與傳統(tǒng)的Mysql關(guān)系型數(shù)據(jù)庫相比,它的最大的特點是:數(shù)據(jù)按照時間順序存儲。 舉例來說,日志數(shù)據(jù),是以時間順序存儲的,所以用時序數(shù)據(jù)庫存儲是一種很好的選擇。使用Mysql在存儲的過程中,不是對這種基于時間

    2024年02月03日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包