201110:bo/vo...區(qū)分-sql語(yǔ)句三張表查詢-maven打包-打包出錯(cuò)XXX不存在-用duceap打包

一. entity、bo、vo、po、dto、pojo如何理解和區(qū)分?

Entity

最常用實(shí)體類,基本和數(shù)據(jù)表一一對(duì)應(yīng),一個(gè)實(shí)體一張表。

Bo(business object)

代表業(yè)務(wù)對(duì)象的意思,Bo就是把業(yè)務(wù)邏輯封裝為一個(gè)對(duì)象(注意是邏輯,業(yè)務(wù)邏輯),這個(gè)對(duì)象可以包括一個(gè)或多個(gè)其它的對(duì)象。通過(guò)調(diào)用Dao方法,結(jié)合Po或Vo進(jìn)行業(yè)務(wù)操作。

形象描述為一個(gè)對(duì)象的形為和動(dòng)作,當(dāng)然也有涉及到基它對(duì)象的一些形為和動(dòng)作。比如處理一個(gè)人的業(yè)務(wù)邏輯,該人會(huì)睡覺(jué),吃飯,工作,上班等等行為,還有可能和別人發(fā)關(guān)系的行為,處理這樣的業(yè)務(wù)邏輯時(shí),我們就可以針對(duì)BO去處理。

再比如投保人是一個(gè)Po,被保險(xiǎn)人是一個(gè)Po,險(xiǎn)種信息也是一個(gè)Po等等,他們組合起來(lái)就是一張保單的Bo。

Vo(value object)

代表值對(duì)象的意思,通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,由new創(chuàng)建,由GC回收。
主要體現(xiàn)在視圖的對(duì)象,對(duì)于一個(gè)WEB頁(yè)面將整個(gè)頁(yè)面的屬性封裝成一個(gè)對(duì)象,然后用一個(gè)VO對(duì)象在控制層與視圖層進(jìn)行傳輸交換。

Po(persistant object)

代表持久層對(duì)象的意思,對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的字段,數(shù)據(jù)庫(kù)表中的記錄在java對(duì)象中的顯示狀態(tài),最形象的理解就是一個(gè)PO就是數(shù)據(jù)庫(kù)中的一條記錄。

好處是可以把一條記錄作為一個(gè)對(duì)象處理,可以方便的轉(zhuǎn)為其它對(duì)象。Vo和Po,都是屬性加上屬性的get和set方法;表面看沒(méi)什么不同,但代表的含義是完全不同的。

Dto(data transfer object)

代表數(shù)據(jù)傳輸對(duì)象的意思
是一種設(shè)計(jì)模式之間傳輸數(shù)據(jù)的軟件應(yīng)用系統(tǒng),數(shù)據(jù)傳輸目標(biāo)往往是數(shù)據(jù)訪問(wèn)對(duì)象從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)
數(shù)據(jù)傳輸對(duì)象與數(shù)據(jù)交互對(duì)象或數(shù)據(jù)訪問(wèn)對(duì)象之間的差異是一個(gè)以不具任何行為除了存儲(chǔ)和檢索的數(shù)據(jù)(訪問(wèn)和存取器)
簡(jiǎn)而言之,就是接口之間傳遞的數(shù)據(jù)封裝
表里面有十幾個(gè)字段:id,name,gender(M/F),age……
頁(yè)面需要展示三個(gè)字段:name,gender(男/女),age
DTO由此產(chǎn)生,一是能提高數(shù)據(jù)傳輸?shù)乃俣?減少了傳輸字段),二能隱藏后端表結(jié)構(gòu)

Pojo(plian ordinary java object)

代表簡(jiǎn)單無(wú)規(guī)則java對(duì)象
純的傳統(tǒng)意義的java對(duì)象,最基本的Java Bean只有屬性加上屬性的get和set方法

可以額轉(zhuǎn)化為PO、DTO、VO;比如POJO在傳輸過(guò)程中就是DTO

二. sql語(yǔ)句左鏈接left join--3張表關(guān)聯(lián)

select * fomr 表名A  left join 表B  on  表A字段=表B的id   left join 表c  on 表A字段=表c的id

三. maven打包

以前總結(jié)過(guò)文章詳情

四. idea中maven打包出錯(cuò)錯(cuò)誤: 程序包koal.usap.client.bean不存在

pom.xml文件

<dependency>
    <groupId>koal.usap.client</groupId>
    <artifactId>client</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${basedir}\src\lib\koal.usap.client-4.3.0.jar</systemPath>
</dependency>

把包放在src/lib目錄下

五. 用duceap打包

1. pom文件中添加

<build>
    <plugins>
        <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-libs</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!--<excludeScope>provided</excludeScope>-->
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <!--取消依賴包的時(shí)間戳-->
                        <useBaseVersion>true</useBaseVersion>
                    </configuration>
                </execution>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.dragonsoft</groupId>
                                <artifactId>duceap-base</artifactId>
                                <!--根據(jù)框架版本修改-->
                                <version>2.1.0-SNAPSHOT</version>
                                <outputDirectory>${project.build.directory}/temp</outputDirectory>
                                <!--加入平臺(tái)的啟動(dòng)腳本-->
                                <includes>META-INF/scripts/**</includes>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.5.5</version>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <finalName>${project.name}-${project.version}</finalName>
                        <appendAssemblyId>false</appendAssemblyId>
                        <!--配置描述文件路徑-->
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <!--運(yùn)行jar包時(shí)運(yùn)行的主類,要求類全名-->
                        <mainClass>com.dragonsoft.StartDemoApplication</mainClass>
                        <addClasspath>true</addClasspath>
                        <!--取消MANIFEST.MF中classpath下的時(shí)間戳-->
                        <useUniqueVersions>false</useUniqueVersions>
                    </manifest>
                    <manifestEntries>
                        <Class-Path>koal.usap.client-4.3.0.jar</Class-Path>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

2. 新增文件src/main/assembly/assembly.xml

有引用maven倉(cāng)庫(kù)里沒(méi)有的話需要配置,有個(gè)jar放在了src/lib下

<fileSet>
    <directory>src/lib</directory>
    <outputDirectory>lib</outputDirectory>
    <fileMode>0755</fileMode>
</fileSet>
![001](C:\Users\Administrator\Desktop\學(xué)習(xí)要點(diǎn)摘要\學(xué)習(xí)筆記\復(fù)盤(pán)\201110\001.png)<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>assembly</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/temp/META-INF/scripts/</directory>
            <outputDirectory>/bin</outputDirectory>
            <includes>
                <include>*.sh</include>
                <include>*.bat</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>src/main/webapp</directory>
            <outputDirectory>web</outputDirectory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>src/main/assembly/conf</directory>
            <outputDirectory>conf</outputDirectory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>${project.build.directory}/lib</directory>
            <outputDirectory>lib</outputDirectory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>src/lib</directory>
            <outputDirectory>lib</outputDirectory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
    </fileSets>
</assembly>

3. src/main/assembly/conf下把配置文件放到conf目錄下

點(diǎn)擊maven下的打包命令即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容