DB연결
<?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">
<!--DBOpen+DAO클래스 -->
<configuration>
<!-- 클래스에 대한 별칭 부여 -->
<typeAliases>
<typeAlias type="net.mem.MemDTO" alias="memDTO"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- Oracle DB 연결 정보 (DBOpen 클래스 역할) -->
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="system" />
<property name="password" value="1234" />
</dataSource>
</environment>
</environments>
<!--sql문을 작성해 놓은 xml문서 DAO역할 -->
<mappers>
<mapper resource="config/mem.xml"/>
</mappers>
</configuration>
MAPPER
<?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="mem">
<!--?기호를 대신하는 문법: 파라미터 바인딩 #{property} -->
<insert id="insertRow" parameterType="memDTO">
insert into mem(num,name,age)
values(mem_seq.nextval,#{name},#{age})
</insert>
<select id="selectALL" resultMap="rs">
select *
from mem
order by num desc
</select>
<!-- RESULTSET에서 행 값을 가져와서 DTO에 담고 , ARRAYLIST에 추가 -->
<!--DB에서 가져온 행값을 객체에 매핑하는 방법을 정의 -->
<resultMap type="net.mem.MemDTO" id="rs">
<result column="num" property="num"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
</resultMap>
<update id="UpdateRow" parameterType="memDTO">
update mem
set name=#{name},age=#{age}
where num=#{num}
</update>
<!-- sql문에서 특수문자 <> / 등을 사용해야 하는 경우 -->
<!-- int age 매개변수 -->
<delete id="deleteRow" parameterType="int">
<![CDATA[
delete from mem
where age>=#{age}
]]>
</delete>
<sql id="tablename">
select * from mem
</sql>
<sql id="sort">
order by num desc
</sql>
<select id="search" parameterType="String" resultMap="rs">
<include refid="tablename"></include>
<![CDATA[
where name like '%' || #{name} || '%'
]]>
<include refid="sort"></include>
</select>
<select id="selectRead" parameterType="Integer" resultType="net.mem.MemDTO">
<![CDATA[
select * from mem
where num = #{num}
]]>
</select>
<select id="rowCount" parameterType="hashmap" resultType="int">
<![CDATA[
select count(*)
from mem
]]>
</select>
</mapper>
Maintest
package net.mem;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.javassist.expr.NewArray;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MemMainTest {
public static void main(String[] args) {
try {
//factory 공장
//->어떤 특정 정보를 주면 객체로 생성해 줌
// 객체 생성: new | bean
//1.DB연결 환경 설정 파일 가져오기
String resource="config/jdbc.xml";
InputStream is=Resources.getResourceAsStream(resource);
//2. DB연결하기 위한 팩토리 빈 생성
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build(is);
System.out.println("DB연결 성공");
//3.쿼리문 생성 및 변환
// ->Prepared Statement
SqlSession sql=ssf.openSession(true);
/////////////////////////////////////
//4.쿼리문 실행
//int cnt=sql.insert("mem.insertRow",new MemDTO("김영희",20));
//System.out.println("행추가 결과"+cnt);
////////////////
//수정 "num=3" 수정
//int cnt=sql.update("mem.UpdateRow",new MemDTO(3,"김김김",10));
//System.out.println("행수정 결과"+cnt);
//삭제
// 나이가 50이상~
//int cnt= sql.delete("mem.deleteRow",50);
//System.out.println("행삭제 결과"+cnt);
//목록 조회
/*
List<MemDTO> list=sql.selectList("mem.selectALL");
for(int i=0;i<list.size();i++) {
MemDTO dto=list.get(i);
System.out.print(dto.getNum()+"");
System.out.print(dto.getName()+"");
System.out.print(dto.getAge()+"");
System.out.println();
}
*/
//검색
// 김이라는 사람을 조회
/*List<MemDTO> list=sql.selectList("mem.search","김");
for(int i=0;i<list.size();i++) {
MemDTO dto=list.get(i);
System.out.print(dto.getNum()+"");
System.out.print(dto.getName()+"");
System.out.print(dto.getAge()+"");
System.out.println();
}
*/
//상세보기
// 김김김 상세보기
/*MemDTO dto=sql.selectOne("mem.selectRead",3);
System.out.print(dto.getNum()+"");
System.out.print(dto.getName()+"");
System.out.print(dto.getAge()+"");
System.out.println();
*/
//전체 행 갯수
System.out.println("전체 행 갯수:"+sql.selectOne("mem.rowCount"));
} catch (Exception e) {
System.out.println("실패"+e);
}
}
}
결과는 콘솔창에 출력
Insert-행 추가

Update-행 수정

Delete-행 삭제

List- 목록 조회

List-검색

List-상세보기
