๐ ํ์คํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ๊ณตํต์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ๋ค ์ค ์ผ๋ถ๋ฅผ ์ฌ์ฉํ ๋ด๋ถ์ ๋ฌด ์์คํ ํ ํ๋ฆฟ์ ์ฌ์ฉํด ํ๋ก์ ํธ๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.๐
โ ๋ฉ์ธ ํ์ด์ง, ์ ๋ฌด์ฌ์ฉ์ ๊ด๋ฆฌ, ๊ณต์ง์ฌํญ ๊ด๋ฆฌ, ๊ฒ์ํ ๊ด๋ฆฌ, ๊ถํ ๊ด๋ฆฌ, ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ, ๋ฉ๋ด ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
โ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋ ํ๊ฒฝ ํ๋ก๊ทธ๋จ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ์์ ๋ถํ๋ ์์ํฌ 4.2
- jdk 17
- ํฐ์บฃ 9.0
- db : postgresql
์ฐธ๊ณ ์์ค
ํ์คํ๋ ์์ํฌ ํ ํ๋ฆฟ ํ๋ก์ ํธ ๋ด๋ถ์ ๋ฌด ์์คํ ์ฐธ๊ณ ์ฉ ์์ค๋ฅผ ๋ค์ด๋ฐ์ ์ ์๋ github ์ ๋๋ค.
https://github.com/eGovFramework/egovframe-enterprise-business-template
GitHub - eGovFramework/egovframe-enterprise-business-template: Enterprise Business Template
Enterprise Business Template. Contribute to eGovFramework/egovframe-enterprise-business-template development by creating an account on GitHub.
github.com
ํ ์ด๋ธ ๋ฐ ๋ฐ์ดํฐ ์์ฑ
github์์ ๋ค์ด๋ฐ์ ์์ค DATABASE ํด๋ ์ dml, ddl ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ์ฌ DB์ ํ ์ด๋ธ ์์ฑ ๋ฐ ๊ธฐ์ด ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. dml ๋ฐ ddl์ 5๊ฐ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค(Altibase, Cubrid, MySQL, Oracle, Tibero)๋ฅผ ์ง์ํฉ๋๋ค.
postgresql ๋ฒ์ ์ ๋ฏธ์กด์ฌํ์ฌ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฒ์ ์ ์ฐธ์กฐํ์ฌ postgresql ๋ฒ์ ์คํฌ๋ฆฝํธ๋ก ์์ ํ์์ต๋๋ค.
ํ๋ก์ ํธ ์์ฑ
- template-enterprise ๋น ํ๋ก์ ํธ ์์ฑ
- ๋ค์ด๋ฐ์ ์์ค ๋ฎ์ด์ฐ๊ธฐ
srcํด๋์ pom.xml์ ๋ณต์ฌํด
ํ๋ก์ ํธ์ ๋ถ์ฌ๋ฃ๊ธฐ > [Overwrite]
์ค์ ๋ณ๊ฒฝ ๋ฐ ์คํ
- jdk 17๋ก ๋ณ๊ฒฝ
pom.xml ์์ source, target ํ๊ทธ๋ฅผ ์ญ์ ํ
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>17</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
release ํ๊ทธ ์ถ๊ฐ
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.6.0</version>
</dependency>
- globals.properties ์์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข ๋ฅ์ ๋ฐ๋ผ DB์ ์์ ๋ณด ์์
# DB์๋ฒ ํ์
(mysql,oracle,altibase,tibero,cubrid) - datasource ๋ฐ sqlMap ํ์ผ ์ง์ ์ ์ฌ์ฉ๋จ
Globals.DbType = postgres
Globals.UserName = ID
Globals.Password = PW
#postgreSQL
Globals.DriverClassName = org.postgresql.Driver
Globals.Url = jdbc:postgresql://127.0.0.1:5432/egovbustmp
- context-datasource.xml์ bean ์ถ๊ฐ
<!-- postgreSQL -->
<bean id="dataSource-postgres" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.DriverClassName}"/>
<property name="url" value="${Globals.Url}" />
<property name="username" value="${Globals.UserName}"/>
<property name="password" value="${Globals.Password}"/>
</bean>
- mapperํ์ผ( *_ postgres.xml)์์ฑ
context-mapper.xml์ mapperLocations๊ฐ /egovframework/mapper/let/**/*_${Globals.DbType}.xml ํ์์ผ๋ก ์ค์ ๋์ด์์ต๋๋ค.
ํด๋น ์์น์ *_postgres.xml ํํ์ SQLํ์ผ์ ๋ง๋ค์ด์ค๋๋ค.
์ค๊ฐ์ค๊ฐ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ง๋ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ SQL์ ์์ ํด์ค๋๋ค.
postgresql์ ๋ง๊ฒ ์์ ํ ๋ถ๋ถ์ ์ดํด๋ณด๋ฉด...
> SYSDATE()๋ฅผ NOW()๋ก ๋ณ๊ฒฝ
> DATE_FORMAT(์ปฌ๋ผ๋ช , '%Y%m%d')๋ฅผ TO_CHAR(์ปฌ๋ผ๋ช , 'YYYYMMDD')๋ก ๋ณ๊ฒฝ
> ADDDATE(SYSDATE(), -1)๋ฅผ NOW() - interval '1 day' ๋ก ๋ณ๊ฒฝ
> IFNULL, ISNULL, NVL๋ฑ์ COALESCE๋ก ๋ณ๊ฒฝ
- ์๋ฒ ์์
์๋ฒ๋ฅผ ์์ฑํด์ ์์ํด๋ณด๊ฒ ์ต๋๋ค.
์๋์๊ฐ์ด ๋ก๊ทธ์ธ ํ๋ฉด์ด ๋ํ๋ฉ๋๋ค.
์ต์ด ๋ก๊ทธ์ธ ๊ณ์ ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ก๊ทธ์ธ๊ณ์ (๊ด๋ฆฌ์) : admin , ๋ก๊ทธ์ธ์ํธ : 1
๋ก๊ทธ์ธ๊ณ์ (์ฌ์ฉ์) : user1 , ๋ก๊ทธ์ธ์ํธ : 1
๋ก๊ทธ์ธ์๋ฃโ
๐งก๐๐๊ณต๊ฐ๊ณผ ๋๊ธ์ ํฌ์คํ ์ ํฐ ํ์ด๋ฉ๋๋ค๐๐๐