MyBatis 기본 실현 과정
MyBatis 는 맞 춤 형 SQL,저장 프로 세 스,고급 맵 을 지원 하 는 우수한 지구 층 프레임 워 크 입 니 다.
MyBatis 는 거의 모든 JDBC 코드 와 수 동 으로 파 라 메 터 를 설정 하고 결과 집합 을 가 져 오 는 것 을 피 했 습 니 다.
MyBatis 는 간단 한 XML 또는 주 해 를 사용 하여 설정 과 원본 맵 에 사용 할 수 있 으 며 인터페이스 와
JavaPOJO
(Plain Old Java Object,일반 자바 대상)을 데이터베이스 에 기록 할 수 있 습 니 다.MyBatis 역사
원래 Apache 의 오픈 소스 프로젝트 였 던 iBatis 는 2010 년 6 월 Apache Software Foundation 에서 Google Code 로 이전 되 었 으 며,개발 팀 이 Google Code 로 이전 함 에 따라 iBatis 3.x 는 MyBatis 로 정식 명칭 을 바 꾸 었 으 며,코드 는 2013 년 11 월 에 바 뀌 었 다.
Github다운로드 주소로 이전 합 니 다.
iBatis 라 는 단 어 는'인터넷'과'abatis'의 조합 에서 유래 한 것 으로 자바 기반 의 영구적 인 프레임 워 크 입 니 다.iBatis 가 제공 하 는 지구 층 프레임 워 크 는 SQL Maps 와 Data Access Objects(DAO)를 포함한다.
마 이 바 티 스 를 왜 써 요?
MyBatis 는 반자동 화 된 지구 화 층 프레임 워 크 입 니 다.
JDBC
JDBC->
Dbutils(QueryRunner) -> JdbcTemplate
:도구기능 이 간단 하 다.sql 문 구 는 자바 코드 에 작 성 됩 니 다.하 드 코딩 고결 합 방식
Hibernate:전자 동 전체 맵 ORM
Object Relation Mapping
프레임 워 크;sql,HQL 제거 목적희망:sql 문 구 는 개발 자 에 게 맡 기 고 sql 이 유연성 을 잃 지 않 기 를 바 랍 니 다.
MyBatis-HelloWorld
주요 절차
HelloWorld 단순 판 C 테스트 테이블 만 들 기
CREATE TABLE `tbl_employee` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`last_name` varchar(255) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
아이디어 가이드
대응 하 는 javaBean 대상 을 만 들 고 toString 방법 을 다시 써 서 뒤에서 출력 하기 편리 합 니 다.
public class Employee {
private int id;
private String last_name;
private String gender;
private String email;
public Employee() {
}
public Employee(int id, String laseName, String gender, String email) {
this.id = id;
this.last_name = laseName;
this.gender = gender;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLaseName() {
return last_name;
}
public void setLaseName(String laseName) {
this.last_name = laseName;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", laseName='" + last_name + '\'' +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
'}';
}
}
Mapper 인터페이스 만 들 기
import school.xauat.mybatis.bean.Employee;
public interface EmployeeMapper {
public Employee getEmpById(Integer id);
}
MyBatis 전역 프로필 만 들 기C MyBatis 의 전역 프로필 에는 MyBatis 의 행동 에 영향 을 주 는 설정(settings)과 속성(properties)정보,예 를 들 어 데이터베이스 연결 풀 정보 등 이 포함 되 어 있 습 니 다.마 이 바 티 스 의 작업 을 지도하 고 있다.우 리 는 공식 파일 의 설정 예 시 를 참조 할 수 있다.
<?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://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="***"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="EmployeeMapper.xml"/>
</mappers>
</configuration>
SQL 맵 파일 만 들 기맵 파일 의 역할 은 Dao 인터페이스의 실현 클래스 가 어떻게 작 동 하 는 지 정의 하 는 것 과 같다.이것 도 우리 가 MyBatis 를 사용 할 때 가장 많이 작 성 된 파일 입 니 다.
<?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="school.xauat.mybatis.dao.EmployeeMapper">
<!--
namespace: ;
id:
resultType:
#{id}: id
-->
<select id="getEmpById" resultType="school.xauat.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
</mapper>
테스트1.전역 설정 파일 에 따라 SqlSessionFactory Builder 를 이용 하여 SqlSessionFactory 대상 만 들 기
/**
* SqlSessionFactory
* @return
* @throws IOException
*/
public static SqlSessionFactory getSqlSessionFactory() throws IOException{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
2.SqlSession Factory 를 사용 하여 SqlSession 대상,SqlSession 대상 대표 와 데이터 베 이 스 를 가 져 오 는 세 션
public static void test01() throws IOException {
//1、 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//2、 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//3、
// ,
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Employee employee = mapper.getEmpById(1);
System.out.println(mapper.getClass());
System.out.println(employee);
sqlSession.close();
}
테스트 01 호출주의:SqlSession
이 글 은 여기까지 입 니 다.당신 에 게 도움 을 줄 수 있 기 를 바 랍 니 다.또한 당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주 기 를 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MyBatis + SpringBoot로 CRUD 앱 만들기 ※ 불필요한 것은 배 ※ 1/2MyBatis를 사용하여 ToDo 목록을 만듭니다. 할 일 등록 (블랭크를 등록 할 수 없음) 할 일보기 할 일 변경 할 일 지우기 SpringBoot의 CRUD가 가능한 책은 있지만 MyBatis를 사용한 것은 적...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.