상세 컨텐츠

본문 제목

[수업용자료]hsql DB생성용 스크립트와 공용쿼리추가

JSP·자바·코틀린

by 김일국 2021. 6. 19. 17:29

본문

헤로쿠 클라우드에 배포할때 필요한 파일 2개 입니다.

참고: 아래 hsql용 설정을 log4jdbc 드라이버를 추가해서 디버그를 편리하게 사용함(아래)

<!-- /tmp/hsql_file.db를 자동으로 생성함(헤로쿠일떄) c:/를 앞에 붙이면(로컬PC용) -->
<!-- 
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<beans:property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<beans:property name="url" value="jdbc:hsqldb:file:c:/tmp/hsql_file.db;hsqldb.lock_file=false" />
<beans:property name="username" value="sa" />
<beans:property name="password" value="" />
</beans:bean>
-->
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<beans:property name="driverClassName" 
  value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></beans:property>
<beans:property name="url" 
  value="jdbc:log4jdbc:hsqldb:file:c:/tmp/hsql_file.db;hsqldb.lock_file=false"></beans:property>
<beans:property name="username" value="sa"></beans:property>
<beans:property name="password" value=""></beans:property>
</beans:bean>

1. hsql DB를 생성할 때 필요한 스크립트 파일: 자바기반 DB인 HsqlDB

- 스키마(테이블)+더미데이터 생성 스크립트 파일:

db_script.zip
0.00MB

- root-context.xml 에 추가로 필요한 내용

- HSQL DataBase Manager 프로그램은 여러가지(이클립스 DB브라우저, 상용 Hsql뷰어 등) 있으나,

- hsql.jar 드라이브에 내장된 자바프로그램이 개발자에겐 제일 적당합니다.

	<!-- CREATE TABLE 초기 1회만 실행 단, 헤로쿠로 배포시 항상 주석 해제 후 배포합니다. -->
	<jdbc:initialize-database data-source="dataSource" ignore-failures="DROPS"> 
		<jdbc:script location="classpath:/db_script/hsql_file.sql" /> 
	</jdbc:initialize-database>
	<!-- 로컬(PC) Hsql용-헤로쿠클라우드에 배포용 드라이버 설정(나중에) -->
	<!-- HSQLDB FILE기반 사용 헤로쿠에 올릴때 생성경로는 /tmp/embeded/hsql_file.db;hsqldb.lock_file=false , 로컬PC일때 경로는 c:/egov/workspace/embeded/hsql_file.db;hsqldb.lock_file=false -->   
	<bean id="dataSource-hsql_local" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
		<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
		<property name="url" value="jdbc:hsqldb:file:c:/egov/workspace/embeded/hsql_file.db;hsqldb.lock_file=false" />
		<property name="username" value="sa" />
		<property name="password" value="" />
	</bean>
	<bean id="dataSource-hsql_prod" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
		<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
		<property name="url" value="jdbc:hsqldb:file:/tmp/embeded/hsql_file.db;hsqldb.lock_file=false" />
		<property name="username" value="sa" />
		<property name="password" value="" />
	</bean>
	<!-- 테스트 실행용 DB매니저 실행:실제 사용시 아래 value - - 공백제거 하세요. -->
	<bean depends-on="dataSource-hsql_local"
	class="org.springframework.beans.factory.config.MethodInvokingBean">
	<property name="targetClass" value="org.hsqldb.util.DatabaseManagerSwing" />
	<property name="targetMethod" value="main" />
	<property name="arguments">
		<list>
			<value>--url</value>
			<value>jdbc:hsqldb:file:c:/egov/workspace/embeded/hsql_file.db;hsqldb.lock_file=false</value>
			<value>--user</value>
			<value>sa</value>
			<value>--password</value>
			<value></value>
		</list>
	</property>
	</bean>

 

- 공식 사이트  http://hsqldb.org/

 

HSQLDB

Version 2.6.0 20th Anniversary Release March 2021. Version 2.6.0 of HyperSQL database management system adds support for Java module system and enhancements in many areas. Zip package at the download link above contains Java 11 and 8 jars. Individual jars

hsqldb.org

2. Hsql로 변경시 오라클 쿼리와 달라진 쿼리파일들(Mysql과 공통으로 사용가능합니다. 단, 소스내 주석 참조필수)

- 아직 수업중이어서 게시물관리까지 되어 있고, 댓글 쿼리는 누락되어 있습니다.

mysql_3.zip
0.00MB

+ 댓글 쿼리추가한 부분 입니다.

replyMapper.xml
0.00MB

Ps. 댓글 입력/삭제시 부모테이블의 댓글카운터값을 변경하는 쿼리는 아래 2가지 결과는 동일 합니다.

1(Mysql). update tbl_board set reply_count = (select count(*) from tbl_reply where bno = #{bno})
where bno = #{bno}

2(Oracle) DAO에서 HashMap형태를 테스트하기 위해서 아래 처럼 사용해 보았습니다..

update tbl_board set 
reply_count = reply_count + #{count}
where bno = #{bno}

 

관련글 더보기

댓글 영역