使用Maven將Excel導(dǎo)入數(shù)據(jù)庫(kù)

經(jīng)常需要用到excel導(dǎo)入數(shù)據(jù)庫(kù)的同學(xué)儿礼,其實(shí)可以不用每次費(fèi)事編寫(xiě)POI-java代碼砾淌,現(xiàn)在maven可以方便的半自動(dòng)導(dǎo)入瘦麸,只需要配置好相關(guān)設(shè)置,方便了許多
示例使用mysql DB

excel內(nèi)容格式如下


Paste_Image.png

按照excel格式建立對(duì)應(yīng)的表結(jié)構(gòu)

SET SESSION FOREIGN_KEY_CHECKS=0;

/* Drop Tables */
DROP TABLE learn_maven_list;

/* Create Tables */

CREATE TABLE `learn_maven_list` (
    `id` VARCHAR(64) NOT NULL COLLATE 'utf8_bin',
    `license_no` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `appler` VARCHAR(255) NOT NULL COLLATE 'utf8_bin',
    `farm` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `address` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `contect` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `product` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `large` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    `date` DATE NULL DEFAULT NULL,
    `pirorid` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8_bin',
    PRIMARY KEY (`id`),
    INDEX `appler` (`appler`, `id`)
)
COLLATE='utf8_bin'
ENGINE=InnoDB;

注意表名應(yīng)該和excel的sheet名一致避咆,如果有多個(gè)sheet舟肉,依次建立表結(jié)構(gòu)即可


Paste_Image.png

POM文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>my-app</name>
  <url>http://maven.apache.org</url>

  <properties>
        <mysql.driver.version>5.1.13</mysql.driver.version>     
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.driver.version}</version>
            <scope>runtime</scope>
        </dependency>    
  </dependencies>
  
    <profiles>
        <!-- 初始化數(shù)據(jù)庫(kù) -->         
        <profile>
            <id>init-db</id>
            <dependencies>
                <dependency>
                    <groupId>org.dbunit</groupId>
                    <artifactId>dbunit</artifactId>
                    <version>2.4.8</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.poi</groupId>
                    <artifactId>poi</artifactId>
                    <version>3.2-FINAL</version>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <configuration>
                            <target>
                                <!-- mysql -->
                                <property name="dbunit.datatype" value="org.dbunit.ext.mysql.MySqlDataTypeFactory" />
                                <property file="wee.properties" />                                  
                                <sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}" 
                                    onerror="continue" encoding="${project.build.sourceEncoding}">
                                    <classpath refid="maven.test.classpath" />
                                    <transaction src="db/cms/wee_data.sql"/>
                                </sql>
                                <taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpathref="maven.test.classpath" />
                                <!-- mysql、mssql -->
                                <dbunit driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}">
                                    <dbconfig>
                                        <property name="datatypeFactory" value="${dbunit.datatype}" />
                                    </dbconfig>
                                    <classpath refid="maven.test.classpath" />
                                    <operation type="INSERT" src="db/cms/wee_data.xls" format="xls" transaction="true"/>
                                </dbunit>
                            </target>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

文件中的wee.properties中需要定義好datasouce

#============================#
#===== Database sttings =====#
#============================#

#mysql database setting
jdbc.type=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/learn_maven?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=

最后執(zhí)行批處理文件

@echo off
echo [INFO] Re-create the schema and provision the sample data.
pause

cd %~dp0
cd ..

set path=%MAVEN_HOME%/bin;%windir%/system32;%path%
call mvn antrun:run -Pinit-db

cd db
pause

導(dǎo)入成功

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末查库,一起剝皮案震驚了整個(gè)濱河市度气,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膨报,老刑警劉巖磷籍,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異现柠,居然都是意外死亡院领,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)够吩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)比然,“玉大人,你說(shuō)我怎么就攤上這事周循∏糠ǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵湾笛,是天一觀的道長(zhǎng)饮怯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嚎研,這世上最難降的妖魔是什么蓖墅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮临扮,結(jié)果婚禮上论矾,老公的妹妹穿的比我還像新娘。我一直安慰自己杆勇,他們只是感情好贪壳,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蚜退,像睡著了一般闰靴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上关霸,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天传黄,我揣著相機(jī)與錄音,去河邊找鬼队寇。 笑死膘掰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播识埋,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼凡伊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了窒舟?” 一聲冷哼從身側(cè)響起系忙,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惠豺,沒(méi)想到半個(gè)月后银还,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洁墙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年蛹疯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片热监。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捺弦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出孝扛,到底是詐尸還是另有隱情列吼,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布苦始,位于F島的核電站寞钥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏盈简。R本人自食惡果不足惜凑耻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柠贤。 院中可真熱鬧,春花似錦类缤、人聲如沸臼勉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宴霸。三九已至,卻和暖如春膏蚓,著一層夾襖步出監(jiān)牢的瞬間瓢谢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工驮瞧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氓扛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像采郎,于是被迫代替她去往敵國(guó)和親千所。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容