新聞中心
對(duì)于很多數(shù)據(jù)分析師或開(kāi)發(fā)人員來(lái)說(shuō),rpt 文件是他們?nèi)粘9ぷ髦斜夭豢缮俚囊徊糠帧K且环N由Crystal Reports生成的報(bào)告,以.rpt擴(kuò)展名命名,并且可以包含各種數(shù)據(jù)和數(shù)據(jù)可視化元素,例如表格、圖表和地圖等。通常情況下,rpt 文件需要與數(shù)據(jù)庫(kù)協(xié)同工作,從而實(shí)現(xiàn)數(shù)據(jù)的有效管理和處理。但是,如何將rpt 文件成功導(dǎo)入數(shù)據(jù)庫(kù)呢?本文將為您提供一些有用的技巧和步驟,幫助您順利完成這一任務(wù)。

創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的南城網(wǎng)站建設(shè)公司,南城接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行南城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
之一步:創(chuàng)建數(shù)據(jù)源
您需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)源,它將連接到您想要導(dǎo)入的數(shù)據(jù)庫(kù)。在Crystal Reports中,打開(kāi)文件菜單,然后選擇”新建”。在”新建報(bào)告”對(duì)話(huà)框中,選擇”數(shù)據(jù)源”,然后按照提示為您的數(shù)據(jù)源設(shè)置相關(guān)選項(xiàng)。您可以選擇ODBC數(shù)據(jù)源、OLE DB數(shù)據(jù)源等等。例如,如果您正在使用Microsoft SQL Server,那么可以選擇ODBC數(shù)據(jù)源,并且配置對(duì)應(yīng)的服務(wù)器、數(shù)據(jù)庫(kù)以及登錄憑據(jù)信息。
第二步:連接數(shù)據(jù)源
在創(chuàng)建數(shù)據(jù)源之后,您需要連接它。打開(kāi)報(bào)告設(shè)計(jì)器,并選擇”數(shù)據(jù)源控制器”選項(xiàng)卡。在下拉菜單中,選擇預(yù)先創(chuàng)建的數(shù)據(jù)源名稱(chēng),然后單擊”連接”。為了測(cè)試數(shù)據(jù)庫(kù)連接是否已成功,您可以單擊”測(cè)試連接”按鈕。
第三步:導(dǎo)入數(shù)據(jù)
接下來(lái),您需要從數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)。以下是常見(jiàn)的三種方法:
1.使用wizards向?qū)?/p>
在”字段資源管理器”中,選擇數(shù)據(jù)庫(kù)表,然后從上下文菜單中選擇”添加”。選擇您想要添加的字段,在”數(shù)據(jù)”選項(xiàng)卡中應(yīng)用篩選器,然后確定。完成這些步驟后,您就可以通過(guò)Wizard向?qū)?dǎo)入數(shù)據(jù)了。
2.使用SQL語(yǔ)句查詢(xún)
在Crystal Reports中,使用SQL查詢(xún)語(yǔ)言可以方便的從數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)。在”添加命令”對(duì)話(huà)框中,輸入SQL語(yǔ)句,然后選擇示例查詢(xún)(如果有的話(huà)),以便查看結(jié)果。單擊”O(jiān)K”并返回報(bào)告設(shè)計(jì)器。
3.使用導(dǎo)入/導(dǎo)出向?qū)?/p>
這個(gè)向?qū)Э梢詮牟煌袷降臄?shù)據(jù)源(例如Excel、Access、文本文件等)導(dǎo)入數(shù)據(jù)。在向?qū)е校x擇數(shù)據(jù)源文件,然后選擇導(dǎo)入選項(xiàng)。選擇數(shù)據(jù)源字段,最后導(dǎo)入數(shù)據(jù)。
第四步:確定報(bào)告布局
現(xiàn)在,您已經(jīng)成功地連接到數(shù)據(jù)庫(kù)并從中導(dǎo)入了數(shù)據(jù)。接下來(lái),您需要確定報(bào)告的布局。在報(bào)告設(shè)計(jì)器中,向報(bào)告添加數(shù)據(jù)集、圖表、表格等。這可以按照您的具體需求來(lái)配置。
第五步:預(yù)覽和打印
在創(chuàng)建報(bào)告后,您可以預(yù)覽并打印它。在Crystal Reports中,選擇文件菜單,然后選擇”預(yù)覽”。在預(yù)覽面板中,選擇所需的輸出選項(xiàng),然后單擊”打印”。此時(shí),報(bào)告已經(jīng)成功地導(dǎo)入到數(shù)據(jù)庫(kù)中并且已經(jīng)可以使用了。
如何將rpt 文件成功導(dǎo)入到數(shù)據(jù)庫(kù)中,實(shí)際上沒(méi)有單一的方法,不同的情況需要不同的方案。但總體上,您需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)源、連接數(shù)據(jù)源、導(dǎo)入數(shù)據(jù)、確定布局以及預(yù)覽和打印。遵循以上步驟即可成功地將rpt 文件導(dǎo)入到數(shù)據(jù)庫(kù)中,在工作中幫助您更有效地處理和分析數(shù)據(jù)。
相關(guān)問(wèn)題拓展閱讀:
- 如何快速替換mysql數(shù)據(jù)表中包含有\(zhòng)r\n的數(shù)據(jù)記錄
- springboot+quartz持久化到數(shù)據(jù)庫(kù)各表含義
如何快速替換mysql數(shù)據(jù)表中包含有\(zhòng)r\n的數(shù)據(jù)記錄
、數(shù)據(jù)庫(kù)超過(guò)一定尺寸,比如6M 這時(shí)使用導(dǎo)出一般沒(méi)問(wèn)題,可以正確的保存到本機(jī)硬盤(pán)上面,但是導(dǎo)入則不行!原因是:一般的 PHP.INI 里面設(shè)置臨時(shí)文件/上傳文件的大小限制為2M,而phpmyadmin使用了上傳的方式,造成失敗。
2、導(dǎo)出到硬盤(pán)的 .SQL 文件在導(dǎo)回時(shí),經(jīng)常出現(xiàn)由于某些單引號(hào)的問(wèn)題引起失敗,造成導(dǎo)入失敗,只能用 mysql等應(yīng)用程序?qū)肓恕?/p>
我的數(shù)據(jù)庫(kù)脊蔽雀已經(jīng)超過(guò)10M,所以必須解決這個(gè)問(wèn)題。我的思路:
導(dǎo)出: 用phpmyadmin 保存數(shù)據(jù)庫(kù)/表格結(jié)構(gòu),用腳本讀取數(shù)據(jù)庫(kù)內(nèi)容并保存到文件里面!
導(dǎo)入: 用phpmyadmin 恢復(fù)數(shù)據(jù)庫(kù)/表格結(jié)構(gòu),用腳本讀取文件,然后保存到庫(kù)里面!
導(dǎo)出程序如下:調(diào)用方法為 ****.php?table=tablename
這個(gè)簡(jiǎn)單的程序目前一次保存一個(gè)表格??!每行為一個(gè)字段的數(shù)據(jù)!!
if($table==””)exit();
mysql_connect(“l(fā)ocalhost”,”name”,”password”);
mysql_select_db(“database”);
$result = mysql_query(“select * from $table”);
if(mysql_num_rows($result)
導(dǎo)入的程序如下:用法同上面!
if($table==””)exit();
mysql_connect(“l(fā)ocalhost”,”name”,”password”);
mysql_select_db(“database”);
$message = file(“$table.txt”);
echo $numfields = chop($message);
for($k=1;$k
{
$value=””;
for ($i=$k;$i
使用方法和可并慶能的問(wèn)題!
1、導(dǎo)入時(shí) file()函數(shù)可能會(huì)有問(wèn)題(我的10M的數(shù)據(jù)沒(méi)櫻早出現(xiàn)問(wèn)題),可以改為 fopen()然后沒(méi)次讀一行?。?/p>
2、導(dǎo)入,導(dǎo)出都需要用 ftp 操作,也就是導(dǎo)出后,用 ftp 把數(shù)據(jù)轉(zhuǎn)到本機(jī),導(dǎo)入時(shí)先用ftp轉(zhuǎn)移數(shù)據(jù)到服務(wù)器! 轉(zhuǎn)自:動(dòng)態(tài)網(wǎng)制作指南
補(bǔ)充日期::54:12
MySQL數(shù)據(jù)導(dǎo)入導(dǎo)出方法與工具介紹
1).mysqlimport的語(yǔ)法介紹:
mysqlimport位于mysql/bin目錄中,是mysql的一個(gè)載入(或者說(shuō)導(dǎo)入)數(shù)據(jù)的一個(gè)非常有效的工具。這是一個(gè)命令行工具。有兩個(gè)參數(shù)以及大量的選項(xiàng)可供選擇。這個(gè)工具把一個(gè)文本文件(text file)導(dǎo)入到你指定的數(shù)據(jù)庫(kù)和表中。比方說(shuō)我們要從文件Customers.txt中把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)Meet_A_Geek中的表Custermers中:
mysqlimport Meet_A_Geek Customers.txt
注意:這里Customers.txt是我們要導(dǎo)入數(shù)據(jù)的文本文件,而Meet_A_Geek是我們要操作的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中的表名是Customers,這里文本文件的數(shù)據(jù)格式必須與Customers表中的記錄格式一致,否則mysqlimport命令將會(huì)出錯(cuò)。
其中表的名字是導(dǎo)入文件的之一個(gè)句號(hào)(.)前面文件字符串,另外一個(gè)例子:
mysqlimport Meet_A_Geek Cus.to.mers.txt
那么我們將把文件中的內(nèi)容導(dǎo)入到數(shù)據(jù)庫(kù)Meet_A_Geek 中的Cus表中。
上面的例子中,都只用到兩個(gè)參數(shù),并沒(méi)有用到更多的選項(xiàng),下面介紹mysqlimport的選項(xiàng)
2).mysqlimport的常用選項(xiàng)介紹:
選項(xiàng)功能
-d or –delete 新數(shù)據(jù)導(dǎo)入數(shù)據(jù)表中之前刪除數(shù)據(jù)數(shù)據(jù)表中的所有信息
-f or –force 不管是否遇到錯(cuò)誤,mysqlimport將強(qiáng)制繼續(xù)插入數(shù)據(jù)
-i or –ignore mysqlimport跳過(guò)或者忽略那些有相同唯一
關(guān)鍵字的行, 導(dǎo)入文件中的數(shù)據(jù)將被忽略。
-l or -lock-tables 數(shù)據(jù)入之前鎖住表,這樣就防止了,
你在更新數(shù)據(jù)庫(kù)時(shí),用戶(hù)的查詢(xún)和更新受到影響。
-r or -replace 這個(gè)選項(xiàng)與-i選項(xiàng)的作用相反;此選項(xiàng)將替代
表中有相同唯一關(guān)鍵字的記錄。
–fields-enclosed- by= char
指定文本文件中數(shù)據(jù)的記錄時(shí)以什么括起的, 很多情況下
數(shù)據(jù)以雙引號(hào)括起。 默認(rèn)的情況下數(shù)據(jù)是沒(méi)有被字符括起的。
–fields-terminated- by=char
指定各個(gè)數(shù)據(jù)的值之間的分隔符,在句號(hào)分隔的文件中,
分隔符是句號(hào)。您可以用此選項(xiàng)指定數(shù)據(jù)之間的分隔符。
默認(rèn)的分隔符是跳格符(Tab)
–lines-terminated- by=str
此選項(xiàng)指定文本文件中行與行之間數(shù)據(jù)的分隔字符串
或者字符。 默認(rèn)的情況下mysqlimport以newline為行分隔符。
您可以選擇用一個(gè)字符串來(lái)替代一個(gè)單個(gè)的字符:
一個(gè)新行或者一個(gè)回車(chē)。
mysqlimport命令常用的選項(xiàng)還有-v 顯示版本(version), -p 提示輸入密碼(password)等。
3).例子:導(dǎo)入一個(gè)以逗號(hào)為分隔符的文件
文件中行的記錄格式是這樣的:
“1”, “ORD89876”, “1 Dozen Roses”, “”
我們的任務(wù)是要把這個(gè)文件里面的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)Meet_A_Geek中的表格Orders中,
我們使用這個(gè)命令:
bin/mysqlimport –prl –fields-enclosed-by=” –fields-terminated-by=, Meet_A_Geek Orders.txt
這個(gè)命令可能看起來(lái)很不爽,不過(guò)當(dāng)你熟悉了之后,這是非常簡(jiǎn)單的。之一部分,bin/mysqlimport ,告訴操作系統(tǒng)你要運(yùn)行的命令是mysql/bin目錄下的mysqlimport,選項(xiàng)p是要求輸入密碼,這樣就要求你在改動(dòng)數(shù)據(jù)庫(kù)之前輸入密碼,操作起來(lái)會(huì)更安全。 我們用了r選項(xiàng)是因?yàn)槲覀兿胍驯碇械奈ㄒ魂P(guān)鍵字與文件記錄中有重復(fù)唯一關(guān)鍵字的記錄替換成文件中的數(shù)據(jù)。我們表單中的數(shù)據(jù)不是最新的,需要用文件中的數(shù)據(jù)去更新,因而就用r這個(gè)選項(xiàng),替代數(shù)據(jù)庫(kù)中已經(jīng)有的記錄。l選項(xiàng)的作用是在我們插入數(shù)據(jù)的時(shí)候鎖住表,這樣就阻止了用戶(hù)在我們更新表的時(shí)候?qū)Ρ磉M(jìn)行查詢(xún)或者更改的操作。
批處理是一種非交互式運(yùn)行mysql程序的方法,如同您在mysql中使用的命令一樣,你仍然將使用這些命令。
為了實(shí)現(xiàn)批處理,您重定向一個(gè)文件到mysql程序中,首先我們需要一個(gè)文本文件,這個(gè)文本文件包含有與我們?cè)趍ysql中輸入的命令相同的文本。
比如我們要插入一些數(shù)據(jù),使用包含下面文本的文件(文件名為New_Data.sql,當(dāng)然我們也可以取名為New_Data.txt及任何其他的合法名字,并不一定要以后綴sql結(jié)尾):
USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, “Block”);
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, “Newton”);
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, “Simmons”);
注意上面的這些句子的語(yǔ)法都必須是正確的,并且每個(gè)句子以分號(hào)結(jié)束。
上面的USE命令選擇數(shù)據(jù)庫(kù),INSERT命令插入數(shù)據(jù)。
下面我們要把上面的文件導(dǎo)入到數(shù)據(jù)庫(kù)中,導(dǎo)入之前要確認(rèn)數(shù)據(jù)庫(kù)已經(jīng)在運(yùn)行,即是mysqld進(jìn)程(或者說(shuō)服務(wù),Windows NT下面稱(chēng)為”服務(wù)“,unix下面為”進(jìn)程“)已經(jīng)在運(yùn)行。
然后運(yùn)行下面的命令:
bin/mysql –p MeetAGeek_Dump_File.txt
這個(gè)語(yǔ)句也允許您指定一個(gè)表進(jìn)行dump(備份/導(dǎo)出/裝載?)。如果您只是希望把數(shù)據(jù)庫(kù)Meet_A_Geek中的表Orders中的整個(gè)內(nèi)容導(dǎo)出到一個(gè)文件,可以使用下面的命令:
bin/mysqldump –p Meet_A_Geek Orders >MeetAGeek_Orders.txt
這個(gè)非常的靈活,您甚至可以使用WHERE從句來(lái)選擇您需要的記錄導(dǎo)出到文件中。要達(dá)到這樣的目的,可以使用類(lèi)似于下面的命令:
bin/mysqldump –p –where=”O(jiān)rder_ID > 2023″ Meet_A_Geek Orders > Special_Dump.txt
mysqldump工具有大量的選項(xiàng),部分選項(xiàng)如下表:
選項(xiàng)/Option 作用/Action Performed
–add-drop-table
這個(gè)選項(xiàng)將會(huì)在每一個(gè)表的前面加上DROP TABLE IF EXISTS語(yǔ)句,這樣可以保證導(dǎo)回MySQL數(shù)據(jù)庫(kù)的時(shí)候不會(huì)出錯(cuò),因?yàn)槊看螌?dǎo)回的時(shí)候,都會(huì)首先檢查表是否存在,存在就刪除
–add-locks
這個(gè)選項(xiàng)會(huì)在INSERT語(yǔ)句中捆上一個(gè)LOCK TABLE和UNLOCK TABLE語(yǔ)句。這就防止在這些記錄被再次導(dǎo)入數(shù)據(jù)庫(kù)時(shí)其他用戶(hù)對(duì)表進(jìn)行的操作
-c or – complete_insert
這個(gè)選項(xiàng)使得mysqldump命令給每一個(gè)產(chǎn)生INSERT語(yǔ)句加上(field)的
名字。當(dāng)把數(shù)據(jù)導(dǎo)出導(dǎo)另外一個(gè)數(shù)據(jù)庫(kù)時(shí)這個(gè)選項(xiàng)很有用。
–delayed-insert 在INSERT命令中加入DELAY選項(xiàng)
-F or -flush-logs 使用這個(gè)選項(xiàng),在執(zhí)行導(dǎo)出之前將會(huì)刷新MySQL服務(wù)器的log.
-f or -force使用這個(gè)選項(xiàng),即使有錯(cuò)誤發(fā)生,仍然繼續(xù)導(dǎo)出
–full這個(gè)選項(xiàng)把附加信息也加到CREATE TABLE的語(yǔ)句中
-l or -lock-tables 使用這個(gè)選項(xiàng),導(dǎo)出表的時(shí)候服務(wù)器將會(huì)給表加鎖。
-t or -no-create- info
這個(gè)選項(xiàng)使的mysqldump命令不創(chuàng)建CREATE TABLE語(yǔ)句,這個(gè)選項(xiàng)在您只需要數(shù)據(jù)而不需要DDL(數(shù)據(jù)庫(kù)定義語(yǔ)句)時(shí)很方便。
-d or -no-data 這個(gè)選項(xiàng)使的mysqldump命令不創(chuàng)建INSERT語(yǔ)句。
在您只需要DDL語(yǔ)句時(shí),可以使用這個(gè)選項(xiàng)。
–opt此選項(xiàng)將打開(kāi)所有會(huì)提高文件導(dǎo)出速度和創(chuàng)造一個(gè)可以更快導(dǎo)入的文件的選項(xiàng)。
-q or -quick這個(gè)選項(xiàng)使得MySQL不會(huì)把整個(gè)導(dǎo)出的內(nèi)容讀入內(nèi)存再執(zhí)行導(dǎo)出,而是在讀到的時(shí)候就寫(xiě)入導(dǎo)文件中。
-T path or -tab = path 這個(gè)選項(xiàng)將會(huì)創(chuàng)建兩個(gè)文件,一個(gè)文件包含DDL語(yǔ)句或者表創(chuàng)建語(yǔ)句,另一個(gè)文件包含數(shù)據(jù)。DDL文件被命名為table_name.sql,數(shù)據(jù)文件被命名為table_name.txt.路徑名是存放這兩個(gè)文件的目錄。目錄必須已經(jīng)存在,并且命令的使用者有對(duì)文件的特權(quán)。
-w “WHERE Clause” or -where = “Where clause “
如前面所講的,您可以使用這一選項(xiàng)來(lái)過(guò)篩選將要放到
導(dǎo)出文件的數(shù)據(jù)。
假定您需要為一個(gè)表單中要用到的帳號(hào)建立一個(gè)文件,經(jīng)理要看今年(2023年)所有的訂單(Orders),它們并不對(duì)DDL感興趣,并且需要文件有逗號(hào)分隔,因?yàn)檫@樣就很容易導(dǎo)入到Excel中。 為了完成這個(gè)人物,您可以使用下面的句子:
bin/mysqldump –p –where “Order_Date >=””
–tab = /home/mark –no-create-info –fields-terminated-by=, Meet_A_Geek Orders
這將會(huì)得到您想要的結(jié)果。
schema:模式
The set of statements, expressed in data definition language, that completely describe the structure of a data base.
一組以數(shù)據(jù)定義語(yǔ)言來(lái)表達(dá)的語(yǔ)句集,該語(yǔ)句集完整地描述了數(shù)據(jù)庫(kù)的結(jié)構(gòu)。
SELECT INTO OUTFILE :
如果您覺(jué)得mysqldump工具不夠酷,就使用SELECT INTO OUTFILE吧, MySQL同樣提供一個(gè)跟LOAD DATA INFILE命令有相反作用的命令,這就是SELECT INTO OUTFILE 命令,這兩個(gè)命令有很多的相似之處。首先,它們有所有的選項(xiàng)幾乎相同?,F(xiàn)在您需要完成前面用mysqldump完成的功能,可以依照下面的步驟進(jìn)行操作:
1. 確保mysqld進(jìn)程(服務(wù))已經(jīng)在運(yùn)行
2. cd /usr/local/mysql
3. bin/mysqladmin ping ;// 如果這個(gè)句子通不過(guò),可以用這個(gè):mysqladmin -u root -p ping
mysqladmin ping用于檢測(cè)mysqld的狀態(tài),is alive說(shuō)明正在運(yùn)行,出錯(cuò)則可能需要用戶(hù)名和密碼。
4. 啟動(dòng)MySQL 監(jiān)聽(tīng)程序.
5. bin/mysql –p Meet_A_Geek;// 進(jìn)入mysql命令行,并且打開(kāi)數(shù)據(jù)庫(kù)Meet_A_Geek,需要輸入密碼
6. 在命令行中,輸入一下命令:
SELECT * INTO OUTFILE ‘/home/mark/Orders.txt’
FIELDS
TERMINATED BY = ‘,’
FROM Orders
WHERE Order_Date >= ”
在你按了Return(回車(chē))之后,文件就創(chuàng)建了。這個(gè)句子就像一個(gè)規(guī)則的SELECT語(yǔ)句,只是把想屏幕的輸出重定向到了文件中。這意味這您可以使用JOIN來(lái)實(shí)現(xiàn)多表的高級(jí)查詢(xún)。這個(gè)特點(diǎn)也可以被用作一個(gè)報(bào)表產(chǎn)生器。
比方說(shuō),您可以組合這一章中討論的方法來(lái)產(chǎn)生一個(gè)非常有趣的查詢(xún),試試這個(gè):
在mysql目錄建立一個(gè)名為Report_G.rpt 的文本文件,加入下面的行:
USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
VALUES (NULL, “Kinnard”, “Vicky”);
INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
VALUES (NULL, “Kinnard”, “Steven”);
INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
VALUES (NULL, “Brown”, “Sam”);
SELECT Last_Name INTO OUTFILE ‘/home/mark/Report.rpt’
FROM Customers WHERE Customer_ID > 1;
然后確認(rèn) mysql進(jìn)程在運(yùn)行,并且您在mysql目錄中, 輸入下面的命令:
bin/mysql
mysql中自帶有替換,去處首尾告蘆指定字符的函數(shù),如trim
update test set name=trim(TRAILING ‘\r\n’ FROM `name`);
springboot+quartz持久化到數(shù)據(jù)庫(kù)各表含義
1、去quartz官網(wǎng)下載quartz2.2.2版本的壓縮包,quartz下載,注意:quartz2.3.0版本的在docs目錄下沒(méi)有發(fā)現(xiàn)dbtable目錄(存放生成數(shù)據(jù)庫(kù)表的sql文件的目錄)。
2、做纖執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)表的sql文件,我使用的是mysql數(shù)據(jù)庫(kù)。
生成的表結(jié)構(gòu)
3、在springboot項(xiàng)目中配置quartz。
3.1、兩種方式配置quartz,
3.1.1、之一種是使用自定義的quartz.properties,這是簡(jiǎn)單配置,如果有其他配置可以參考,quartz.properties配爛顫置詳情
org.quartz.jobStore.useProperties:true
#org.quartz.scheduler.instanceName: quartzScheduler
#org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 15
org.quartz.threadPool.threadPriority: 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.isClustered = false
#org.quartz.jobStore.clusterCheckinInterval=20230
org.quartz.jobStore.tablePrefix = qrtz_
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.maxMisfiresToHandleAtATime = 20
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false
登純歷仿錄后復(fù)制
?
3.1.2、使用配置文件配置springboot中的SchedulerFactoryBean。
@Configuration
public class SchedulerConfig implements SchedulerFactoryBeanCustomizer {
@Autowired
private DataSource dataSource;
@Override
public void customize(SchedulerFactoryBean schedulerFactoryBean) {
schedulerFactoryBean.setStartupDelay(10);
schedulerFactoryBean.setOverwriteExistingJobs(true);
schedulerFactoryBean.setDataSource(dataSource);
ClassPathResource resource = new ClassPathResource(“quartz.properties”);
Properties properties = new Properties();
InputStream in= null;
try {
in = resource.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(in, “UTF-8”));
properties.load(bf);
schedulerFactoryBean.setQuartzProperties(properties);
} catch (IOException e) {
e.printStackTrace();
}
}
}
登錄后復(fù)制
?
3.2.1、第二種方式是在application.properties文件中的配置,application.properties文件中的spring.quartz.properties. 加上quartz.properties中的鍵值對(duì),效果與quartz.properties類(lèi)似。
spring.quartz.properties.org.quartz.jobStore.tablePrefix = qrtz_
spring.quartz.properties.org.quartz.threadPool.threadCount = 10
登錄后復(fù)制
項(xiàng)目中配置org.quartz.jobStore.tablePrefix = qrtz_,這個(gè)配置是默認(rèn)查詢(xún)數(shù)據(jù)庫(kù)中表的前綴,默認(rèn)是QRTZ_,以下sql中通過(guò)rpt方法組裝一條新的sql,替換掉{0},{1},如果沒(méi)有明確聲明就會(huì)使用默認(rèn)值 org.quartz.jobStore.tablePrefix = QRTZ_,org.quartz.scheduler.instanceName: quartzScheduler。
如果進(jìn)行簡(jiǎn)單的定時(shí)任務(wù),可以使用springboot中默認(rèn)的quartz配置。
3.2.2 自定義配置springboot中的SchedulerFactoryBean。
@Configuration
public class SchedulerConfig implements SchedulerFactoryBeanCustomizer {
@Autowired
private DataSource dataSource;
@Override
public void customize(SchedulerFactoryBean schedulerFactoryBean) {
schedulerFactoryBean.setStartupDelay(10);
schedulerFactoryBean.setOverwriteExistingJobs(true);
schedulerFactoryBean.setDataSource(dataSource);
}
}
登錄后復(fù)制
?
4、新建Job
public class TestJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println(System.nanoTime());
}
}
登錄后復(fù)制
5、數(shù)據(jù)庫(kù)中新增job任務(wù)腳本,com.example.quartzdemo.job.TestJob是我本地的測(cè)試Job,需要修改成你自己Job類(lèi)。
INSERT INTO `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `JOB_CLASS_NAME`, `IS_DURABLE`, `IS_NONCONCURRENT`, `IS_UPDATE_DATA`, `REQUESTS_RECOVERY`, `JOB_DATA`) VALUES (‘quartzScheduler’, ‘test2Job’, ‘testGroup’, NULL, ‘com.example.quartzdemo.job.TestJob’, ‘1’, ‘0’, ‘0’, ‘0’, NULL);
INSERT INTO `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `JOB_NAME`, `JOB_GROUP`, `DESCRIPTION`, `NEXT_FIRE_TIME`, `PREV_FIRE_TIME`, `PRIORITY`, `TRIGGER_STATE`, `TRIGGER_TYPE`, `START_TIME`, `END_TIME`, `CALENDAR_NAME`, `MISFIRE_INSTR`, `JOB_DATA`) VALUES (‘quartzScheduler’, ‘testTrigger2’, ‘testTriggerGroup’, ‘test2Job’, ‘testGroup’, NULL, ”, ”, ‘5’, ‘ACQUIRED’, ‘CRON’, ”, ‘0’, NULL, ‘0’, NULL);
INSERT INTO `qrtz_cron_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `CRON_EXPRESSION`, `TIME_ZONE_ID`) VALUES (‘quartzScheduler’, ‘testTrigger2’, ‘testTriggerGroup’, ‘0/1 * * * * ?’, ‘Asia/Shanghai’);
登錄后復(fù)制
6、啟動(dòng)項(xiàng)目,查看控制臺(tái)打印的日志,成功
關(guān)于rpt 文件 導(dǎo)入數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
本文標(biāo)題:如何將rpt文件成功導(dǎo)入數(shù)據(jù)庫(kù)?(rpt文件導(dǎo)入數(shù)據(jù)庫(kù))
本文路徑:http://www.dlmjj.cn/article/codehos.html


咨詢(xún)
建站咨詢(xún)
