- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
JAVA 자료구조 MyBatis 기본 - insert,delete,update
2018.08.22 16:42
1. InsertMain.java
package test.main;
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 test.dto.MembersDTO;
public class InsertMain {
public static void main(String[] args) {
// 마이바티스 환경설정 파일 경로
String res = "orm/mybatis/mybatis-config.xml";
try {
// mybatis 환경설정 파일을 읽어오기 위한 스트림 객체
InputStream is = Resources.getResourceAsStream(res);
// SqlSessionFactory객체 얻어오기
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(is);
// Sql명령어를 실행하기 위한 SqlSession 객체 얻어오기
SqlSession session = factory.openSession();
// insert 명령어 수행하기
MembersDTO dto =
new MembersDTO("sanghoone", "1234", "@nara.co.kr", "010-1234-4567", null);
int n = session.insert("orm.mybatis.MemberMapper.add",dto);
//System.out.println("데이터 추가 성공");
//session.commit();
session.close(); // 세션닫기
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
2. DeleteMain.java
package test.main;
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;
public class DeleteMain {
public static void main(String[] args) {
// 마이바티스 환경설정 파일 경로
String res = "orm/mybatis/mybatis-config.xml";
try {
// mybatis 환경설정 파일을 읽어오기 위한 스트림 객체
InputStream is = Resources.getResourceAsStream(res);
// SqlSessionFactory객체 얻어오기
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(is);
// Sql명령어를 실행하기 위한 SqlSession 객체 얻어오기
SqlSession session = factory.openSession();
// delete 명령어 수행하기
String id ="sanghoone";
session.delete("remove",id);
session.commit();
session.close(); // 세션닫기
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
3. UpdateMain.java
package test.main;
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 test.dto.MembersDTO;
public class UpdateMain {
public static void main(String[] args) {
// 마이바티스 환경설정 파일 경로
String res = "orm/mybatis/mybatis-config.xml";
try {
// mybatis 환경설정 파일을 읽어오기 위한 스트림 객체
InputStream is = Resources.getResourceAsStream(res);
// SqlSessionFactory객체 얻어오기
SqlSessionFactory factory =
new SqlSessionFactoryBuilder().build(is);
// Sql명령어를 실행하기 위한 SqlSession 객체 얻어오기
SqlSession session = factory.openSession();
// update 명령어 수행하기
MembersDTO dto = new MembersDTO("sanghoone1","1234","test@123","010",null);
session.update("orm.mybatis.MemberMapper.update",dto);
session.commit();
session.close(); // 세션닫기
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
4. MemberDTO.java
package test.dto;
import java.sql.Date;
public class MembersDTO {
private String id;
private String pwd;
private String email;
private String phone;
private Date regdate;
public MembersDTO() {
}
public MembersDTO(String id, String pwd, String email, String phone,
Date regdate) {
super();
this.id = id;
this.pwd = pwd;
this.email = email;
this.phone = phone;
this.regdate = regdate;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Date getRegdate() {
return regdate;
}
public void setRegdate(Date regdate) {
this.regdate = regdate;
}
}
5. MembersMapper.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">
<mapper namespace="orm.mybatis.MemberMapper">
<insert id="add" parameterType="test.dto.MembersDTO">
insert into members
values(#{id},#{pwd},#{email},#{phone},sysdate)
</insert>
<delete id="remove" parameterType="String">
delete from members where id=#{id}
</delete>
<update id="update" parameterType="test.dto.MembersDTO">
update members
set pwd = #{pwd},email = #{email},phone = #{phone}
where id = #{id}
</update>
</mapper>
DML 구문이 아주 간단히 구현이 되었다.
DTO 에 값을 set 해주고 DML 시에 파라미터 타입으로 DTO 를 인자로 받으면
마이바티스 내부에서 getter 메서드를 호출해서 값을 가져와서 ? , ? , ? 처럼
바인딩 된 필드에 값을 할당해준다.
이점은 아이바티스와 동일하게 쿼리 수행시 PreparedStatement 를 기본적으로 사용하기 때문이다.
이렇게 되면 불필요한 리소스를 낭비하지 않고 SQL 을 날릴수가있고 SQLInjection 으로 부터 안전 하다 .
출처: http://devsh.tistory.com/entry/MyBatis-기본-insertdeleteupdate [날샘 코딩]
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 6 |
java4autocad Java for Autocad
| 졸리운_곰 | 2017.04.26 | 387 |
| 5 | Java3D and Eclipse | 졸리운_곰 | 2015.08.12 | 317 |
| 4 |
Draw2d Intro
| 졸리운_곰 | 2015.07.29 | 514 |
| 3 |
FreeLayout: A New Java Layout
| 졸리운_곰 | 2015.05.14 | 315 |
| 2 |
XML file to Treeviewer
| 졸리운_곰 | 2015.03.19 | 399 |
| 1 |
Java GUI(AWT) 프로그래밍
| 졸리운_곰 | 2015.03.09 | 938 |

