반응형
의문 무엇을 바꿔야 변경을 할 수 있을까? data 설정이 들어간 'datasource-context.xml' 을 보자. 

이렇게 설정 되어 있다.
찾아 보니 driver가 net.sf.log4jdbc.DriverSpy 이거는 log4jdbc를 이용하여 sql문을 로그로 남기기 위해 사용하는 드라이브
내가 고민한 부분은 url 부분이다. mysql은 어떻게 변경해야될까 하는데 

아래 처럼 url을 mysql 처럼 변경을 했음에도 계속 찾을 수 없다고 나온다. 
왜 그럴까 생각하니 
mysql 라이브러리르 pom.xml에 설정을 안한 것이다. 

#jdbc.driver=net.sf.log4jdbc.DriverSpy
#jdbc.url=jdbc:log4jdbc:oracle:thin:@211.108.61.201:1533:R3PROD
#jdbc.username=r3usr
#jdbc.password=bsgr3usr

#jdbc.driver=com.mysql.jdbc.Driver
jdbc.driver=net.sf.log4jdbc.DriverSpy
#//jdbc.driver=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/woowon
jdbc.username=sang
jdbc.password=mariasang

위처럼 설정하고 
pom.xml에 
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>
     설정하니 정상 작동한다. 


반응형
반응형
오라클 내장 함수
※ []는 옵션 값
숫자함수
 - CEIL(n)
   -> 올림 처리한 정수값 반환
 - TRUNC(n1[, n2 ])
   ->n2 소수점 위치의 값을 잘라버리고 n1의 값을 반환
 - MOD(n2,n1)
   ->n2를 n1으로 나눈 나머지 값을 반환
문자함수
 - SUBSTR(char, position[, substring_length])
   ->문자열을 position 위치에서 substring_length길이만큼 반환
 - CONCAT(char1, char2)
   ->두 문자열을 결합하여 반환
   -> CONCAT를 중복으로 사용 가능 : CONCAT(CONCAT(char1, char2), char3) = char1char2char3
 - TRIM(trim_character FROM trim_source)
   -> 문자열 내 공백이나 특정 문자를 제거하고 반환
날짜함수   
 - ADD_MONTHS(date, integer)
   ->date에 integer만큼의 월을 더한 값을 반환
 - MONTHS_BETWEEN(date1, date2)
   -> date1과 date2 날짜 간의 차이를 월로 반환한다.
 - EXTRACT(YEAR || MONTH || DAY || HOUR || MINUTE || SECOND FROM datetime_value_expression)
   -> 연, 월, 일, 시간, 분, 초 등으로 추출하여 그 결과를 반환
기타함수
 - DECODE(EXPR, SEARCH, RESULT[, SEARCH, RESULT]~~[, DEAULT])
   ->IF 라고 생각 하면 됌, EXPR 의 값이 SEARCH일때 RESULT의 값을 반환
 - CASE EXPR
   WHEN 조건1 THEN 결과(조건1이 TRUE일 경우)
   WHEN 조건2 THEN 결과(조건2이 TRUE일 경우)
   END AS 'NAME'
   ->



반응형

'IT > DB' 카테고리의 다른 글

[oracle] 패키지, PL/SQL, 함수 란?  (0) 2019.08.21
[mysql] CONCAT과 IFNULL 사용  (0) 2019.07.10
text, CLOB 필드에 대해서 알아보자  (0) 2018.12.19
반응형
ㅁ 타임리프를 스프링에 맞춰보자
  1. xml 설정 (예제에서는 webconfig.java를 만들어서 설정을 bean으로 다 추가 했다)
        아래는 xml에 추가해야 될 부분
<!-- SpringResourceTemplateResolver automatically integrates with Spring's own --><!-- resource resolution infrastructure, which is highly recommended. --><bean id="templateResolver"
class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
<property name="prefix" value="/WEB-INF/templates/" />
<property name="suffix" value=".html" />
<!-- HTML is the default value, added here for the sake of clarity. -->
<property name="templateMode" value="HTML" />
<!-- Template cache is true by default. Set to false if you want -->
<!-- templates to be automatically updated when modified. -->
<property name="cacheable" value="true" /></bean>
<!-- SpringTemplateEngine automatically applies SpringStandardDialect and --><!-- enables Spring's own MessageSource message resolution mechanisms. --><bean id="templateEngine"
class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
<!-- Enabling the SpringEL compiler with Spring 4.2.4 or newer can speed up -->
<!-- execution in most scenarios, but might be incompatible with specific -->
<!-- cases when expressions in one template are reused across different data -->
<!-- ypes, so this flag is "false" by default for safer backwards -->
<!-- compatibility. -->

<property name="enableSpringELCompiler" value="true" /></bean>


반응형
반응형

항상 아이콘을 사용하기 위해서는 퍼블리셔에게 매번 요청하고 그 답답함을 해소 하기 위해 내가 찾아 보기로 했다.


알고보면 의외로 간단하게 추가하고 CSS에서 사용 할 수 있다.


1.

https://icomoon.io/ 접속  - 상단 IconMoon App 클릭




2. 다음 화면에서 우선 Icon Library 를 클릭 하고 나오는 아이콘 라이브러리에서 추가하고 싶은 아이콘 라이브러리의 'Add' 버튼 클릭 

 - 다만 Purchase 버튼이 나오는 곳은 따로 구매를 해야 된다.




3. add 추가한 뒤 아이콘 라이브러리에서 사용하고자 하는 아이콘을 클릭 하여 선택 한다.






4. 선택 한 뒤 화면 하단에 font 부분을 누르게 되면 내가 선택 한 아이콘들로 구성 된 설정 페이지를 볼수 있다.

해당 화면의 상단 'Perferences'를 클릭 하면 font 의 이름, 클래스 앞 확장자, ie 지원 등 을 설정 할 수 있다.


모든 설정을 다 마친 후에는 font 밑 Download 버튼을 클릭 하여 다운 받는다.





5. 다운 받은 파일을 확인 해보면 

    - demo.html -> 이전 config 화면 

    - style.css -> 아이콘에 대한 정의가 된 css

    - fonts 폴더 -> 아이콘 사용에 필요한 폰트(우리는 아이콘들을 하나의 폰트로 저장을 한 것)




이후 단계에서는 

fonts, css 파일을 가져다가 사용할수도, css 파일 내의 값만 기존에 사용 중인 css 파일에 넣어서 사용 하는 등으로 사용 할 수 있다.


사용 방법을 간단히 demo.html 에서 파악을 하면 

<span class = "i-home">

<a href="#" class = "i-home"> 

등으로 클래스에 css에 설정된 아이콘의 클래스 명을 넣으므로써 사용 할 수가 있다.



<div class="glyph fs2">
<div class="clearfix bshadow0 pbs">
<span class="i-home">
</span>
<span class="mls"> i-home</span>
</div>
<fieldset class="fs0 size1of1 clearfix hidden-false">
<input type="text" readonly value="e900" class="unit size1of2" />
<input type="text" maxlength="1" readonly value="&#xe900;" class="unitRight size1of2 talign-right" />
</fieldset>
<div class="fs0 bshadow0 clearfix hidden-true">
<span class="unit pvs fgc1">liga: </span>
<input type="text" readonly value="" class="liga unitRight" />
</div>
</div>


반응형
반응형

mysql

1. round(x)

  - x의 값을 반올림 한 값을 리턴한다.


2. round(x, a)

 - x의 값을 반올림 한 값을 a자리까지 리턴한다.


3. truncate(x, a)

 - x의 값을 소수점 아래 a자리까지만 리턴





ORACLE

1. round(x, a)

 - x의 값을 반올림 한 값을 a자리까지 리턴한다.


2. trunc(x, a)

 - x의 값을 소수점 아래 a자리까지만 리턴



반응형
반응형

1. 자바스크립트 내에서 2진수로 계산을 하기때문에 단순계산으로는 잘못된 결과를 리턴하게 된다.



하지만 보통 우리가 이렇게 언제나 정해진 값을 함수에 사용하진 않는다.



아래의 함수는 사용자에게 입력 받은 계획 공수를 더해서 총 계획 공수를 구하는함수이다.




/*계획공수 계산*/
var calcPlanWorkTime = function () {
var planWorkTime = $('td[name=planWorkTime]');
var count = 0;

for (var i = 0; i < planWorkTime.length; i++) {
console.log(parseFloat($(planWorkTime[i]).html()));
count += parseFloat($(planWorkTime[i]).html());
}

$('#totalPlanWorkTime').html(count);

};


단순한 덧셈식이라면 아래처럼 +를 해주면 되고

곱셈식 혹은 나눗셈 식이라면 위의 형식으로


count =  (((parseFloat(x)*10)*count)/10))  


로 계산 하면 정확한 계산 값을 얻을 수가 있다.





반응형
반응형
  1. var ckeditor_config = {
  2.   resize_enabled : false// 에디터 리사이즈 여부
  3.   autoUpdateElement : true// 자동 textarea 업데이트 여부 (안됨)
  4.   enterMode : CKEDITOR.ENTER_BR , // 에디터 엔터 <br/> 사용
  5.   shiftEnterMode : CKEDITOR.ENTER_P , // 에디터 시프트 + 엔터 <br/> 사용
  6.   toolbarCanCollapse : true , // 에디터 툴바 숨기기 기능 여부
  7.   extraPlugins : "tableresize" , // 에디터의 플러그인을 추가할 경우 이름 입력 ( 테이블 리사이즈 플러그인을 내려 받아야함.)
  8.   removePlugins : "elementspath"// 에디터의 플러그인을 사용하지 않을 경우 이름 입력 ( 에디터 하단 상태바에 태그를 표시하는 플러그인)
  9.  
  10.   // 에디터 툴바를 설정함.
  11.   toolbar : [
  12.     [ 'Source''-' , 'NewPage''Preview' ],
  13.     [ 'Cut''Copy''Paste''PasteText''-''Undo''Redo' ],
  14.     [ 'Bold''Italic''Underline''Strike''Subscript''Superscript'],
  15.     [ 'JustifyLeft''JustifyCenter''JustifyRight''JustifyBlock' ],
  16.     '/',
  17.     [ 'Styles''Format''Font''FontSize' ],
  18.     [ 'TextColor''BGColor' ],
  19.     [ 'Image''Flash''Table' , 'SpecialChar' , 'Link''Unlink']
  20.    
  21.   ]
  22.  
  23. };
  24.  
  25. var editor = [ ];
  26.  
  27. // id 엘리먼트를 입력할 때 중복되는 id 명이 없어야 한다.
  28. /*
  29. CKEDITOR.replace( "content" , ckeditor_config ).on('key', function () {
  30.   // 에디터에 값이 입력될때마다 textarea 에 업데이트한다. 하지 않을 경우 textarea 의 value 값을 알 수 없다.
  31.   this.updateElement();
  32. });
  33. */
  34.  
  35. // [2013.06.20] 위방법은 문제가 있는 듯 하여~ 아래와 같이 한다.
  36. editor[1] = CKEDITOR.replace( "content" , ckeditor_config );
  37.  
  38. // submit 이나 ajax 전송할때 같이 입력해준다.
  39. editor[1].updateElement();




ckeditor4 config


http://gpresss.blogspot.com/2014/06/ckeditor4-config.html


반응형
반응형

자바에서는 javamail 클래스를 통해 메일을 보낼수가 있다.



spring 환경에서 환경 설정을 잡고 간다


applicationConext.xml

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="xx.xx.xx.xx"/>
<property name="port" value="xxx"/>
<property name="defaultEncoding" value="utf-8"/>
<property name="username" value="윈도우서버 계정"/>
<property name="password" value="윈도우서버 계정 비밀번호"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.ssl.trust">xx.xx.xx.xx(호스트랑 동일하게)</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>

gmail 을 사용하는 경우 아래와 같이 설정 하면 된다


host : smtp.gmail.com

port : 587

username : 구글 이메일

password : 구글 패스워드


mail.smtp.ssl.trust : smtp.gmail.com



하지만 나는 윈도우 서버에서 구축한 smtp를 사용 하기에 위와 같이 설정 하였다. 

smtp 서버가 구축된 서버에서 해당 어플을 구동 할 경우는 localhost로 해도 무방하다


또한 위의 환경 설정 작업은 java 파일 내에서도 따로 설정이 가능하다





다음으로 mailSender를 구현한 자바 소스다 


public class mailSend {

private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Resource(name="velocityEngine")
VelocityEngine velocityEngine;

@Autowired
JavaMailSenderImpl mailSender;

public void MailSet(String contentType, Map<String, Object> mailParam) {
//MimeMessage생성
try {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg,"UTF-8");

// 편지보낸시간 설정
helper.setSentDate(new Date());

// 송신자 설정
helper.setFrom("이메일 주소");

// 수신자 설정
mailParam.put("sendTos", sendTos);
if(!ObjectUtils.isEmpty(mailParam.get("sendTos"))) {
helper.setTo((String[]) mailParam.get("sendTos"));
}
            //cc 설정
if(!ObjectUtils.isEmpty(mailParam.get("sendCCs"))) {

helper.setCc("이메일 주소");
}
// 제목 설정
helper.setSubject((String) mailParam.get("subject"));

//내용 설정
String content = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "/template/"+contentType+".vm","UTF-8", mailParam);
helper.setText(content, true);

// 메일 송신
mailSender.send(msg);

logger.info("메일 발송을 완료 하였습니다.");


} catch (Exception e) { //예외처리 주소를 입력하지 않을 경우
logger.error(e.getMessage());
}

}
}


MailSet 함수를 호출 하는 곳에서 각 각 상황에 맞는 이메일 제목, 메일본문 템플릿, 송신자, 수신자, 참조자의 값을 넣어서 호출 한다.


메일 템플릿은 velocity를 사용하였다. 최근에는 많이 이용하지 않는 템플릿이지만..... 



찾아보면 Gmail 등으로 설정된 부분은 많지만 windows smtp 를 사용 하는 경우의 포스팅은 못본것 같아서 정리 하였다.



반응형

+ Recent posts