<mapper namespace="com.bangtae.impl.LoginDAOImpl"> <--- mapper, namespace 확인 후, 아래와 같이
DB관련 xml에 해당 *Mapper.xml파일을 추가해줘야 함.
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:com/bangtae/common/query/*Mapper.xml" />
</bean>
ㆍMyBatis, Error
- org.apache.ibatis.binding.BindingException: Type is not known to the MapperRegistry.
※ 참고사이트 - http://yjrock.blog.me/10137060041
- java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for kr.co.inspien.rtims.impl.InterfaceGroupDaoImpl.getInterfaceGroupList
※ 참고사이트 - http://jhoonslife.tistory.com/358
ㆍMyBatis, .xml 구성 - http://blog.naver.com/yagu0?Redirect=Log&logNo=90123880289
http://devday.tistory.com/2208
ㆍMyBatis 한글 가이드 문서 - http://www.scribd.com/doc/68885206/33/id-result
ㆍ*Mapper.xml(MyBatis에서 Query가 들어가는 파일)사용 방법
- Advanced Result Mapping
※ 참고사이트 - http://loianegroner.com/2011/03/ibatis-mybatis-handling-joins-advanced-result-mapping-association-collections-n1-select-problem/
- Dynamic SQL
※ 참고사이트 - http://java.dzone.com/articles/ibatis-mybatis-working-dynamic?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+javalobby%2Ffrontpage+(Javalobby+%2F+Java+Zone
- This element can be used to define a reusable fragment of SQL code that can be included in other statements.
<sql id=”userColumns”> id,username,password </sql>
------------------------------------------------------------------------------------------------
<select id=”selectUsers” parameterType=”int” resultType=”hashmap”>
select <include refid=”userColumns”/>
from some_table
where id = #{id}
</select>
- insert, update, delete 속성 설정
<insert id="insertAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
keyProperty=""
keyColumn=""
useGeneratedKeys=""
timeout="20000">
</insert>
<update id="insertAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
timeout="20000">
</update>
<delete id="insertAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED">
</delete>
------------------------------------------------------------------------------------------------
<insert id="insertAuthor" parameterType="domain.blog.Author">
insert into Author (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email},#{bio})
</insert>
<update id="updateAuthor" parameterType="domain.blog.Author">
update Author set
username = #{username},
password = #{password},
email = #{email},
bio = #{bio}
where id = #{id}
</update>
<delete id="deleteAuthor” parameterType="int">
delete from Author where id = #{id}
</delete>
- resultMap from Result
<select id=”selectUsers” parameterType=”int” resultType=”hashmap”>
select id, username, hashedPassword
from some_table
where id = #{id}
</select>
------------------------------------------------------------------------------------------------
<resultMap id="userResultMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id=”selectUsers” parameterType=”int” resultMap=”userResultMap”>
select user_id, user_name, hashed_password
from some_table
where id = #{id}
</select>
- Bean(get, set) from Result
<select id=”selectUsers” parameterType=”int”
resultType=”com.someapp.model.User”>
select id, username, hashedPassword
from some_table
where id = #{id}
</select>
------------------------------------------------------------------------------------------------
<!-- In Config XML file -->
<typeAlias type=”com.someapp.model.User” alias=”User”/>
<!-- In SQL Mapping XML file -->
<select id=”selectUsers” parameterType=”int”
resultType=”User”>
select id, username, hashedPassword
from some_table
where id = #{id}
</select>
- Alias 기술방법
<select id=”selectUsers” parameterType=”int” resultType=”User”>
select
user_id as “id”,
user_name as “userName”,
hashed_password as “hashedPassword”
from some_table
where id = #{id}
</select>
Google의 MyBatis는 개발자가 지정한 SQL 및 Procedure, 고급 Mapping을 지원하는 Persistence, Framework이며,
기존의 Apache 밑에 있던 iBatis팀이 Google Code로 옮기면서 MyBatis로 바뀌었다고 함.
- Spring3.0환경에서 MyBatis3.0 연동하기
ㆍ필요 .jar 파일 : mybatis-3.1.1.jar,
mybatis-spring-1.1.1.jar,
org.springframework.aop-3.1.2.RELEASE.jar
※ 참고사이트 - http://www.theeye.pe.kr/entry/simple-way-to-integration-spring-3-with-mybatis-3
ㆍiBatis, MyBatis의 차이점 - http://dlangus4345.blog.me/110129759763
ㆍSpring, ModelAndView 처리방법
- Redirect 방식
예) ModelAndView.setViewName("redirect:/hello.html");
- ModelAndView 대체할 수 있는 Annontation
예) @RequestMapping("/hello")
ㆍSpring, DI(Dependency Injection) = 의존성 주입
DI = Singletone Pattern(객체를 메모리에 한번만 올려 사용하는 디자인패턴)
- Singletone Pattern
1. Static에 올려진 객체는 중복해서 생성되지 않음.
2. Global(어디서든)하게 Instance에 접근 가능함.
ㆍSpring, JDBC
다른 .xml의 bean 사용하기 : http://cafe.naver.com/deve/807
ㆍSpring, Alert
Properties 메시지, JavaScript에서 출력하기 : http://dhrod0325.blog.me/140160205944
ㆍSpring, .jar
- Log처리를 위한 파일
commons-logging-1.1.1.jar
log4j-1.2.17.jar
- JSTL(JSP Standard Tag Library) = 표현언어(Expression Language)를 사용하기 위한 파일
jstl-1.2.jar
standard.jar
- SpringMVC Pattern를 사용하기위한 파일
org.springframework.asm-3.1.2.RELEASE.jar
org.springframework.beans-3.1.2.RELEASE.jar
org.springframework.context-3.1.2.RELEASE.jar
org.springframework.core-3.1.2.RELEASE.jar
org.springframework.expression-3.1.2.RELEASE.jar
org.springframework.web.servlet-3.1.2.RELEASE.jar
org.springframework.web-3.1.2.RELEASE.jar
- JDBC(Java Database Connectivity)를 사용하기위한 파일
org.springframework.jdbc-3.1.2.RELEASE.jar
org.springframework.transaction-3.1.2.RELEASE.jar
- DB(Oracle)를 접근하기 위한 파일
ojdbc14.jar
commons-dbcp-1.4.jar
commons-pool-1.5.6.jar
- 삼성 SDS에서 만든 Spring기반의 프레임워크, 현재 삼성SDS 프로젝트에서 사용되고 있는 프레임워크임.
ㆍSpring 공식사이트 - http://www.springsource.org/download
ㆍSpring MVC를 사용한 초간단 예제 - http://www.javajigi.net/display/OSS/Spring+MVC#SpringMVC-SpringMVC%EB%A5%BC%EC%82%AC%EC%9A%A9%ED%95%9C%EC%B4%88%EA%B0%84%EB%8B%A8%EC%98%88%EC%A0%9C
- Spring MVC(Model, View, Control)패턴의 장점
MVC의 잠점은 Application에서 Business Logic과 UI(User Interface) Code를 깔끔하게 분리해 준다는 점이며, 오픈 후 유지보수가 편하다.
※ 참고 사이트 - http://linuxism.tistory.com/456
- Log4J 간단 사용법 - http://linuxism.tistory.com/509
Log4J를 사용하게 되면 무분별하게 System.out.println 구문을 사용하여 소스가 지저분해지는 것과 성능이 저하되는걸 사전에 방지해 줄 수 있다.
- Spring MVC의 Ajax(Asynchronous JavaScript and XML)
Ajax 요청 - Jquery의 Ajax
※ 참고 사이트
http://dev-world.springnote.com/pages/6358467
http://www.javajigi.net/display/WEB20/4.+Ajax+Application+Examples
http://blog.anthonychaves.net/2010/02/01/spring-3-0-web-mvc-and-json/
ㆍSource 버젼관리 툴
- SVN(Subversion) - http://lazyartist.springnote.com/pages/835268
- CVS(cvsnt) - http://www.ysoh.pe.kr/entry/CVS%EC%97%90-Project-%EB%93%B1%EB%A1%9D
ㆍBuild 툴
- Ant
자바기반의 빌드 자동화 툴이며, 분산된 일(컴파일)을 단 한번에 처리 가능하다.
※ 참고사이트
http://www.hanb.co.kr/exam/1712/appendix.pdf
http://guni-textcube.blogspot.kr/2009/05/ant-%EB%B9%8C%EB%93%9C-%EC%82%AC%EC%9A%A9%EA%B8%B0-1-ant-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%84%A4%EC%B9%98.html
- Hudson(Continuous integration with Hudson) -
CI툴로서 빌드 및 테스트 전반을 수행할 수 있다.
※ 참고사이트 - https://studio.plugins.atlassian.com/secure/attachment/13330/Continuous_Integration_with_Hudson_doortts.pdf
com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'membercode' in class 'server.member.MemberBean'
원인 : MemberBean의 전역변수와 Member.xml의 properties가 대소문자를 구별하기 때문
java.io.IOException: Could not find resource /WEB-INF/SqlMapConfig.xml 이런 에러가 발생하였다.
SqlMapConfig.xml파일을 Member Package에 두고, 경로명을 member/SqlMapConfig.xml로 변경
하여 DB접근 성공!
4줄로 끝나서 금방 에러를 찾은것 같지만... 반나절이 걸렸다 ㅠㅜ
Tiles를 사용하여 페이지를 구현하는데
이런에러가 ㅡㅡ?
java.lang.IllegalArgumentException: Path .layout-menu1 does not start with a "/" character
네이버와 구글을 이용해서
원인을 찾아내었다~~~
원인은
ProcessPreprocess를 구현을 안해줘서 그런거 같다^^/
원인 : struts-config.xml의 path의 경로가 틀릴경우 500번 에러
해결 : struts-config.xml의 path와 요청을하는 주소가 같은지 확인을 해야함
String b=new String(a.getBytes("8859_1"), "UTF-8");
댓글 없음:
댓글 쓰기