MyBatis 프로필 작성 및 간단 한 사용
처음에 Apache 는 batis 의 오픈 소스 프로젝트 를 구 글 code 에 두 었 다가 일부 이유 로 github 으로 옮 겼 습 니 다.바로 오늘 의 my Batis 입 니 다.
마 이 바 티 스 가 뭐야?
MyBatis 는 맞 춤 형 SQL,저장 프로 세 스,고급 맵 을 지원 하 는 우수한 지구 층 프레임 워 크 입 니 다.MyBatis 는 거의 모든 JDBC 코드 와 수 동 설정 파라미터,추출 결과 집합 을 피 했다.MyBatis 는 간단 한 XML 또는 주 해 를 사용 하여 기본 체 를 설정 하고 매 핑 하 며 인터페이스 와 자바 의 POJOs(Plain Old Java Objects,일반 자바 대상)를 데이터베이스 에 기록 합 니 다.
MyBatis3.x
여기에 MyBatis 의 소 개 를 간단하게 붙 여 주세요.구체 적 인 사용 방법 은 코드 에 붙 여 집 니 다.
MyBatis 의 전생
마 이 바 티 스 의 전신 은 아이 바 티 스 다.아이 바 티 스 는 클 린 턴 베 긴 이 개발 한 것 이 었 으 나 아파 치 재단 에 기부 해 아이 바 티 스 오픈 소스 프로젝트 를 만 들 었 다.2010 년 5 월 이 프로젝트 는 Apahce 재단 에서 구 글 코드 로 이전 해 MyBatis 로 이름 을 바 꿨 다.
그럼 에 도 불구 하고 가방 구 조 는 ibatis 입 니 다.
www.mybatis.org/
https://github.com/mybatis
MyBatis 소개
MyBatis 는 데이터 지구 층(ORM)프레임 워 크 입 니 다.실체 류 와 SQL 문 구 를 매 핑 관 계 를 구축 하 는 것 은 반자동 화 된 ORM 실현 이다.
MyBatis 의 장점:
1.SQL 문법 을 바탕 으로 간단 하고 배우 기 쉽다.
2.바 텀 조립 과정 을 알 수 있다.
3.SQL 문 구 는 설정 파일 에 봉 하여 통일 적 인 관리 와 유지 에 편리 하고 프로그램의 결합 도 를 낮 춘 다.
4.프로그램 디 버 깅 이 편리 하 다.
모든 sql 문 구 는 xml(제안)에 정의 되 어 있 습 니 다.주해 방식 으로 인터페이스 에서 도 이 루어 질 수 있다.이 맵 파일 들 을 mapper 라 고 합 니 다.
전통 JDBC 와 의 비교
코드 량 이 61%줄 었 습 니 다.
가장 간단 한 지구 화 프레임 워 크
구조 적 성능 강화
SQL 코드 는 프로그램 코드 에서 철저히 분리 되 어 다시 사용 할 수 있 습 니 다.
프로젝트 중의 분업 을 강화 하 였 다.
이식 성 을 증강 시 켰 다
canMyBatisDemo
패키지,클래스 분포 도:
my batis 는 가방 하나 와 데이터베이스 지원 패키지 하나만 있 습 니 다.
my batis-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>
<typeAliases>
<!-- -->
<typeAlias alias="User" type="cn.hncu.domain.User" />
</typeAliases>
<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/mybatis?characterEncoding=UTF-8" />
<property name="username" value="hncu" />
<property name="password" value="1234" />
<property name="poolMaximumActiveConnections" value="5"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/hncu/domain/User.xml"></mapper>
<mapper resource="cn/hncu/domain/User2.xml"></mapper>
</mappers>
</configuration>
SqlSessionUtils.java
package cn.hncu.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
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 com.mysql.jdbc.interceptors.SessionAssociationInterceptor;
public class SqlSessionUtils {
private static SqlSessionFactory sessionFactory=null;//DataSource--pool
static{
try {
InputStream in=Resources.getResourceAsStream("mybatis-config.xml");//
sessionFactory=new SqlSessionFactoryBuilder().build(in);
/*
* Resources ( ClassLoader )
sessionFactory=new SqlSessionFactoryBuilder().build(SqlSessionUtils.class.getClassLoader().getResourceAsStream("mybatis-config.xml"));
*/
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSessionFactory(){
return sessionFactory;
}
public static SqlSession getSqlSession(){
return sessionFactory.openSession();
}
public static void main(String[] args) {
//mybatis
for(int i=0;i<10;i++){
SqlSession s=getSqlSession();
System.out.println(s);
Connection con=s.getConnection();
System.out.println("con: "+con);
}
}
}
User.java
package cn.hncu.domain;
public class User {
private String id;
private String name;
private String pwd;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
}
}
User 의 맵 파일 User.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="users">
<select id="all" resultType="cn.hncu.domain.User">
select * from users
</select>
</mapper>
UserMapper.java(인터페이스,공식 적 으로 인터페이스 방식 사용 권장-더 안전)
package cn.hncu.domain;
import java.util.List;
public interface UserMapper {
public List<User> all();
public List<User> user2(String string);
public List<User> user3(User user);
}
Demo1.java
package cn.hncu.demo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import cn.hncu.domain.User;
import cn.hncu.domain.UserMapper;
import cn.hncu.utils.SqlSessionUtils;
public class Demo1 {
@Test
public void test1(){
// SqlSession
SqlSession s=SqlSessionUtils.getSqlSession();
List<User> list=s.selectList("users.all");// list , id ,<select> <insert> sql
// List<User> list=s.selectList("all");// ---- (id) ,
//System.out.println(list);
for(User u:list){
System.out.println(u);
}
}
<span style="color:#ff0000;">// ( , )
/*
* 1. :UserMapper, <select> id ,
* 2. User2.xml
* 3. ( dao java), "s.getMapper()" , ,
*/</span>
@Test// , : User2.xml
public void test2(){
// SqlSession
SqlSession s=SqlSessionUtils.getSqlSession();
UserMapper m=s.getMapper(UserMapper.class);//
List<User>list=m.all();
System.out.println(list);
}
///////////////test3() , User2.xml///////////////////
@Test//
public void test3_1(){
SqlSession s=SqlSessionUtils.getSqlSession();
// List<User> users=s.selectList("cn.hncu.domain.UserMapper.all");
List<User> users=s.selectList("user2","2");// List ,
System.out.println(users);
}
@Test//
public void test3_2(){
SqlSession s=SqlSessionUtils.getSqlSession();
UserMapper u=s.getMapper(UserMapper.class);
List<User> users=u.user2("3");
System.out.println(users);
}
/////////////////// ( )//////////////
@Test
public void test4(){
SqlSession s=SqlSessionUtils.getSqlSession();
UserMapper u=s.getMapper(UserMapper.class);
User user=new User();
user.setId("4");
user.setName(" ");
List<User> users=u.user3(user);
System.out.println(users);
}
@Test
public void test5(){// map
SqlSession s=SqlSessionUtils.getSqlSession();
System.out.println(s);
List<Map<String,Object>> users=s.selectList("user4");
for(Map<String,Object> user:users){
System.out.println(user);
}
}
@Test// map
public void test6(){
SqlSession s=SqlSessionUtils.getSqlSession();
Map<String, Object> map=new HashMap<String,Object>();
map.put("id", "5");
map.put("name", " ");
List<Map<String,Object>> users=s.selectList("user5",map);
for(Map<String,Object> user:users){
System.out.println(user);
}
}
}
User2.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="cn.hncu.domain.UserMapper">
<select id="all" resultType="cn.hncu.domain.User">
select * from users
</select>
</mapper>
-->
<mapper namespace="cn.hncu.domain.UserMapper">
<!-- -->
<select id="all" resultType="User">
select * from users
</select>
<!-- , sql -->
<select id="user2" resultType="User" parameterType="string">
select * from users where id=#{xx}
</select>
<!-- , sql ( if ) -->
<select id="user3" resultType="User" parameterType="string">
select * from users where id=#{id}
<if test="name!=null">
and name=#{name}
</if>
</select>
<!-- List<Map<>> -->
<select id="user4" resultType="map">
select * from users
</select>
<!-- map -->
<select id="user5" resultType="hashmap" parameterType="hashmap">
select * from users where id=#{id}
<if test="name!=null">
and name=#{name}
</if>
</select>
</mapper>
여 기 는 my batis 를 처음 만 났 을 뿐 어떻게 간단하게 사용 하 는 지 알 게 되 었 습 니 다.구체 적 으로 복잡 한 용법 은 다음 에 붙 입 니 다.위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 MyBatis 프로필 의 작성 방법 과 간단 한 사용 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL/마이바티스 | 동적 쿼리 사용A라는 서비스에 해당하는 테이블을 조인하고 조회하는 데 사용됩니다. 나중에 공통화를 위해 B 및 C 서비스도 추가됩니다. A, B, C 서비스는 모두 단일 쿼리에서 작동할 수 있도록 공통화되어야 합니다. 테이블에 각...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.