[Mybatis]마이바티스 설정하기.
웹 & 안드로이드/JAVA & JSP2013. 10. 25. 16:13
마이바티스MyBatis 홈페이지 https://code.google.com/p/mybatis/
iBatis -> MyBatis 가 되었다.
(apache) (Google)
mybatis는 자바 소스안에 쿼리를 두지않고 따로 관리한다.
쿼리를 수정하게 되더라도 다시 재 컴파일 할 필요가 없다는 것이다.
1. 마이바티스 라이브러리 추가.
홈페이지에서 라이브러리 다운로드.
클래스패스에 라이브러리 추가.
혹은
메이븐 툴을 이용하여 의존성 주입.
2. 설정파일 생성.
- 설정파일 이름은 자신이 정하는 것이다.
-mybatis-config.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/exam"/>
<property name="username" value="root"/>
<property name="password" value="java1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="AdminMapper.xml"/>
</mappers>
</configuration> |
AdminMapper.xml은 쿼리를 모아놓은 xml파일이다.
여러개를 만들 수 있으며 실행 될때 전부 합쳐진다. 관리상 나눈것이다.
-AdminMapper.xml
1
2
3
4
5
6
7
8
9
10
11
12
13 |
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="AdminMapper">
<select id="selectAdminById" resultType="domain.Admin" parameterType="String">
SELECT admin_name as adminName
, admin_id as adminId
, admin_password as adminPw
FROM ADMIN
WHERE admin_id = #{adminId}
</select>
</mapper> |
select태그의 resultType은 쿼리를 실행 후 리턴할 데이터 형이고, parameterType은 입력하는 데이터 형을 말한다.
쿼리문 중 #{}를 이용하여 변수를 입력한다.
3.Dao에서 xml파일 호출, 실행.
-AdminDao.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import domain.Admin;
public class AdminDao {
SqlSessionFactory sqlSessionFactory = null;
public AdminDao(){
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream("mybatis-config.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
public Admin selectAdminbyId(String adminId){
SqlSession session = sqlSessionFactory.openSession();
return session.selectOne("AdminMapper.selectAdminById", adminId);
}
} |
- InputStream에 xml파일 리소스를 넣고, 이 것으로 sqlSessionFactory를 만든다.
- dao메소드에 팩토리를 이용하여 sqlSession을 만들고(db에 접속하고),
따로 만든xml파일의 쿼리문을 호출(namespace + sql Id로 호출.), 입력할 변수가 잇다면 변수도 입력한다.
- 리턴 형은 위의 xml파일의 쿼리문의 resultType으로 지정 되어있다.
'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글
[Spring]spring ajax처리할때 간단하게 json으로 보내기 (0) | 2013.10.27 |
---|---|
[Spring]스프링 charactor 인코딩 필터 추가. (0) | 2013.10.27 |
[Spring]6. spring MVC 시작하기. (0) | 2013.10.22 |
[Spring]5. Spring MVC 설정하기. (0) | 2013.10.22 |
[Spring]4. scope (0) | 2013.10.21 |
댓글()