본문 바로가기
반응형

전체 글202

[Tomcat] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8080] 원인 : 이미 사용중인 포트에 start 를 하려고해서, 아마 서버를 내릴때 제대로 안내려갔다던가 여러가지 이유로 포트를 중복 사용하는 것으로 인식할 것이다. 처리 ps -ef | grep tomcat 결과 나오는 process 번호를 kill 명령어를 사용해서 종료하면 된다. kill -9 ~~ 2021. 1. 1.
[Mybatis] 동적쿼리를 어떻게 만들까? 동적쿼리를 어떻게 판단할까?에 이은 동적쿼리를 어떻게 생성하는지를 알아보겠습니다. 어떻게 판단하는지는 아래 게시물에 나와있으니 참고 부탁드립니다. csy7792.tistory.com/307 [Mybatis] Mybatis는 어떻게 동적쿼리인지 판단할까? Mybatis는 동적쿼리를 작성할 수 있는 기능을 제공한다. 어떠한 원리로 동적쿼리인지 아닌지 판단하는건지 궁금해서 Mybatis 소스를 분석해보았다. Mapper 등록과정은 아래에서 보실 수 있습니다. csy7 csy7792.tistory.com 아래와 같은 동적쿼리가 있을 때 어떻게 동작하는지 알아보도록 하겠습니다. select id, col1, col2, col3 from dynamic_query col1=#{test1} AND col2=#{test.. 2020. 12. 31.
[Mybatis] Mybatis는 어떻게 동적쿼리인지 판단할까? Mybatis는 동적쿼리를 작성할 수 있는 기능을 제공한다. 어떠한 원리로 동적쿼리인지 아닌지 판단하는건지 궁금해서 Mybatis 소스를 분석해보았다. Mapper 등록과정은 아래에서 보실 수 있습니다. csy7792.tistory.com/301 [Mybatis] Mapper는 어떻게 등록되는 것일까 ? Mybatis를 처음 접하게되면 xml 또는 JAVA로 설정만 해주면 어디서든 가져다쓸 수 있다는것이 마법같이 느껴질 수 있다. 어떠한 원리로 그렇게 사용할 수 있는지 알아보도록 하겠다. MybatisConfiguration. csy7792.tistory.com 지금부터는 작성한 쿼리가 동적쿼리인지 아닌지 어떻게 판단하는지 알아보겠습니다. 1.XMLConfigBuilder.mapperElement 등록할.. 2020. 12. 31.
JAVA 환경변수를 설정했는데 java 명령어가 안 먹힐 때 환경변수-시스템변수에 Path변수가 있다. 편집을 클릭한다. %JAVA_HOME%\bin을 맨위로 올린다. 확인한다. 2020. 12. 29.
[JMeter] 주요개념 JMeter란? 성능 측정 및 부하 테스트 기능을 제공하는 애플리케이션 JMeter 주요개념 Thread Group : 한 Thread당 유저 1명 Sampler : 유저가 해야하는 Action Listener : 응답을 받았을 때 할일 Configuration : Sampler 또는 Listener 가 사용할 설정 값 Assertion : 응답이 성공인지 확인하는 방법 2020. 12. 28.
[Mybatis] StatementType Executor에서 Handler를 만들 때 RoutingStatementHandler를 통해서 Handler를 생성한다. 이 Handler가 무슨역할을 할까 궁금하여 들어가보니 아래와 같은 역할을 하고 있었다. StatementType별로 다른 Handler를 생성하는 역할을 하고 있었다. 그렇다면 StatementType은 무엇일까? 쿼리를 날리는 방식인 것 같다. STATEMENT, PREPARED는 Statement, PreparedStatement 와 동일하다. CALLABLE은 프로시저를 실행할 때 사용하는 Type이다. Default값은 PREPARED이다. 2020. 12. 28.
[Mybatis] 쿼리를 어떻게 실행하는 것일까? Mybatis는 Mapper 또는 xml을 이용하여 쿼리를 작성해놓고 코드로 실행 시키기만 하면 알맞는 쿼리를 실행하도록 한다. 이번에는 어떠한 원리로 xml로 작성한 쿼리가 실행되는지 알아보도록 하겠다. Mapper 등록 원리는 아래에서 볼 수 있습니다. csy7792.tistory.com/301 [Mybatis] Mapper는 어떻게 등록되는 것일까 ? Mybatis를 처음 접하게되면 xml 또는 JAVA로 설정만 해주면 어디서든 가져다쓸 수 있다는것이 마법같이 느껴질 수 있다. 어떠한 원리로 그렇게 사용할 수 있는지 알아보도록 하겠다. MybatisConfiguration. csy7792.tistory.com 바로 시작하겠습니다 1. SqlSession.query 아래 메소드를 실행하게 된다면 현재.. 2020. 12. 28.
[Mybatis] Parameter not found. Available parameters are [arg0, param1] Parameter not found. Available parameters are [arg0, param1] Mybatis를 xml이 아닌 Mapper 어노테이션은 이용할 때 다음과 같은 오류가 발생할 수 있다. 오류가 발생하는 구문 해당오류는 파라미터의 개수가 2개이상일때 발생한다. 해결방안은 총 4가지가 있다. @Param 어노테이션 사용 파라미터명, 바인딩될 변수명을 arg0, arg1, ....... 으로 맞춰주기 파라미터명, 바인딩될 변수명을 param1, param2, ..... 으로 맞춰주기 Compile Option에 -parameters 추가 1. @Param 어노테이션 사용 2. 변수명을 arg으로 맞추기 3. 변수명을 param으로 맞추기 2020. 12. 27.
[Mybatis] Mapper는 어떻게 등록되는 것일까 ? Mybatis를 처음 접하게되면 xml 또는 JAVA로 설정만 해주면 어디서든 가져다쓸 수 있다는것이 마법같이 느껴질 수 있다. 어떠한 원리로 그렇게 사용할 수 있는지 알아보도록 하겠다. MybatisConfiguration.xml 파일 .... SqlMapClient.java public class SqlMapClient { private static SqlSessionFactory sqlMapper; static { try { String resource = "config/myBatisConfig.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMapper = new SqlSessionFactoryBuilder().build(rea.. 2020. 12. 27.
[Mybatis] Interface를 이용하여 Query 날리기 Mybatis는 xml으로 Query를 실행할 수도있지만 Interface를 선언하고 Method에 어노테이션을 붙임으로써 Query를 날릴 수 있다. 간단하게 방법을 알아보도록 하겠다. Interface를 하나 생성하고 Method를 만든다. 간단한 예제이기때문에 @Select 어노테이션을 이용하여 쿼리를 작성한다. MybatisConfiguration.xml Config 파일에 매퍼의 패키지를 등록한다. 등록된 Mapper를 가져와서 만들어놓은 Method를 실행한다. 끝! 2020. 12. 27.
[Mybatis] Application Server의 Connection Pool 이용하기 회사에서 기존 Persistence Framework는 아래와 같은 문제점이 존재하였다. 어떠한 쿼리가 현재 작성되어 있는지 관리가 전혀 되지않음 파라미터 바인딩이 어려움 Dynamic Query를 작성하기 어려움 Dynamic Query를 작성하려면 비즈니스로직에 작성해야함 -> 유지보수가 힘들어짐 그렇기에 팀장님께 Persistence Framework 교체를 건의했으며 후보는 아래와 같았다. hibernate Mybatis hibernate로 이관을 하려면 러닝커브가 존재했으므로 보류되었고 비교적 바로적용할 수 있는 Mybatis가 채택되었다. 현재 회사의 설정에는 Application Server의 Connection Pool을 Applictaion이 당겨다가 쓰는방식으로 되어있었다. 그렇기에 M.. 2020. 12. 26.
[Mybatis] interceptor 를 등록하면 어떠한 원리로 동작하는가 ? ..... Mybatis를 사용하다가 Interceptor를 이용할일이 생겼다. Interceptor를 등록을하고 사용을 하는데는 문제가 없었지만 어떠한 원리로 동작을 저렇게 할 수 있는지 궁금해졌다. 그래서 Mybatis를 뜯어보기로 결심했다. (Mybatis Source : github.com/mybatis/mybatis-3) 순서 1. SqlSessionFactoryBuilder.build 2. XMLConfigBuilder.parse 3. XMLConfigBuilder.parseConfiguration 4. XMLConfigBuilder.pluginElement 5. DefaultSqlSessionFactory.openSessionFromDataSource 6. Configuration.newEx.. 2020. 12. 25.