config.xml
<?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="developerment">
<environment id="developerment">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/mapper.xml"/>
</mappers>
</configuration>
mapper.xml
<?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">
<!-- Query -->
<mapper namespace="mybatis.mapper">
<!--
<select id="외부에서 접근할 문자열"
parameterType="object" <- String, Object 들어가는 값(object)
resultType="object">
쿼리문
select id, name, email
where id = #{ } #{ 문자열(값) } ${ 숫자 }
</select>
<insert
<delete
<update
-->
<insert id="addmember" parameterType="dto.MemberDto">
insert into member(id, pwd, name, email, auth)
values(#{id}, #{pwd}, #{name}, #{email}, 3)
</insert>
<select id="getMember" parameterType="java.lang.String"
resultType="dto.MemberDto">
select id, pwd, name, email, auth
from member
where id =#{id}
</select>
<select id="allMember" resultType="dto.MemberDto">
select * from member
</select>
<delete id="deleteMember" parameterType="String">
delete from member
where id =#{id}
</delete>
<update id="updateMember" parameterType="dto.MemberDto">
update member
set name=#{name}, email=#{email}
where id=#{id}
</update>
</mapper>
MainClass.java
package main;
import java.io.InputStream;
import java.util.List;
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 dto.MemberDto;
public class MainClass {
public static void main(String[] args) throws Exception {
// 설정파일 read
InputStream is = Resources.getResourceAsStream("mybatis/config.xml");
// SqlsessionFactory 객체를 생성
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
// SqlSession 객체를 취득
SqlSession session = factory.openSession();
// insert
MemberDto dto = new MemberDto("def", "123", "이종석", "def@naver.com", 3);
int count = session.insert("addmember", dto);
if(count > 0) {
session.commit();
System.out.println("추가성공!");
}else {
session.rollback();
System.out.println("추가실패!");
}
// select (1개의 데이터)
String id="abc";
MemberDto dto = session.selectOne("getMember", id);
System.out.println(dto.toString());
// select (다수의 데이터)
List<MemberDto> list = session.selectList("allMember");
for (MemberDto m : list) {
System.out.println(m.toString());
}
// delete
String id = "erte";
int count = session.delete("deleteMember", id);
if(count > 0) {
session.commit();
System.out.println("삭제 성공!");
}else {
session.rollback();
System.out.println("삭제 실패!");
}
// update
MemberDto dto = new MemberDto("abc", null, "무야호", "abc@google.com", 0);
int count1 = session.update("updateMember", dto);
if(count1 > 0) {
session.commit();
System.out.println("수정 성공!");
}else {
session.rollback();
System.out.println("수정 실패!");
}
}
}