1. MyBatis 소개
1.1 개요
MyBatis는 맞춤형 SQL, 저장 프로시저 및 고급 매핑을 지원하는 뛰어난 지속성 계층 프레임워크입니다.
MyBatis는 거의 모든 JDBC 코드와 매개변수 수동 설정 및 결과 세트 검색을 방지합니다.
MyBatis는 인터페이스와 Java POJO(Plain Old Java Objects, 일반 Java 개체)를 데이터베이스의 레코드에 매핑하기 위해 구성 및 기본 맵에 간단한 XML 또는 주석을 사용할 수 있습니다.
1.2, ORM
ORM 도구의 기본 개념
hibernate를 사용해 보든 mybatis를 사용해 보든 공통점이 하나 있습니다.
1. 구성 파일 (일반적으로 XML 구성 파일에 있음) sessionfactory를 가져옵니다.
2. sessionfactory에서 세션 생성
3. 세션에서 데이터 추가, 삭제, 수정 및 확인 및 트랜잭션 제출을 완료합니다.
4 . 사용 세션 후 닫습니다.
5. Java 개체와 데이터베이스 사이에는 일반적으로 xml 파일인 매핑 구성 파일이 있습니다.
2. 환경설정
2.1. 필수 Jar 패키지
MyBatis를 사용하려면 클래스패스에 mybatis-x.x.x.jar 파일을 넣으면 됩니다. .
2.2. 데이터베이스 구축 및 데이터 삽입
MySQL 데이터베이스는
CREATE TABLE `mybatis`.`user` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `name` VARCHAR(45) NOT NULL DEFAULT '无名氏' COMMENT '用户名', `age` TINYINT(3) NOT NULL DEFAULT 21 COMMENT '用户年龄', `birthday` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '用户生日', `address` VARCHAR(256) NOT NULL DEFAULT '北京' COMMENT '用户地址', PRIMARY KEY (`id`) COMMENT '') COMMENT = '用户表';
사용자(id,name)에 삽입합니다. , 나이,생일,주소)values(1,'장산',23,'1990-01-23 20:24:21','상하이'),(2,'리시',18,'1986-12 - 23 12:13:11','Guangzhou'),(3,'
2.3. 웹 프로젝트를 생성하고 프로젝트에 Jar 패키지를 도입합니다
3. 구성 파일, 엔터티 클래스 및 인터페이스 설정
3.1 엔터티 클래스 설정
/*** @Title: User.java
* @Package com.pb.mybatis.po
* @Description: TODO(사용자 클래스)
* @author Liu Nan
* @date 2015-10-26 오후 5:42:13
* @version V1.0
*/package com.pb.mybatis.po;import java.util.Date;/**
* @ClassName: 사용자
* @Description: TODO(사용자 클래스)
* @author Liu Nan
* @date 2015-10-26 오후 5시 :42:13
**/public class User {
/**
* id (사용자 ID)*/
비공개 int ID; /**
* 이름(사용자 이름)*/
개인 문자열 이름; /**
*연령(사용자 연령)*/
private int age; /**
* 생일(사용자의 생일)*/
비공개 날짜 생일; /**
* 주소(사용자 주소)*/
개인 문자열 주소; /**
* @ID를 반환 */
public int getId() { return id;
} /**
* @param id 설정할 ID */
public void setId(int id) { this.id = id;
} /**
* @return 이름 */
public String getName() { return name;
} /**
* @param name 설정할 이름 */
public void setName(문자열 이름) { this.name = name;
} /**
* @나이 반환 */
public int getAge() { return age;
} /**
* @param age 설정할 나이 */
public void setAge(int age) { this .age = age;
} /**
* @return the brithday */
public Date getBirthday() { return brithday;
} /**
* @param brithday 설정할 생일 */
public void setBirthday(날짜 생일 ) { this.birthday = 생일;
} /**
* @return 주소 */
public String getAddress() { 반품 주소;
} /**
* @param address 설정할 주소 */
public void setAddress (문자열 주소) { this.address = 주소;
}
}
3.2、写实体类接口
/*** @Title: UserMapper.java
* @Package com.pb.mybatis.dao
* @Description: TODO(이 파일의 기능을 한 문장으로 설명)
* @author Liu Nan
* @date 2015-10-26 오후 5:45:13
* @version V1.0
*/package com.pb.mybatis.dao;import com.pb.mybatis.po.User;/**
* @ClassName: UserMapper
* @Description: TODO(사용자 클래스 데이터 액세스 인터페이스)
* @author Liu Nan
* @date 2015-10- 26 오후 5:45:13
**/공용 인터페이스 UserMapper { /* *
*
* @Title: selectUserById
* @Description: TODO(사용자 ID 기반 쿼리)
* @param id
* @return User*/
공용 사용자 selectUserById(int id);
}
3.3、与db.properties
db.properties
#数据库基本配置
#驱动
driver=com.mysql.jdbc.Driver
#连接url
url=jdbc:mysql://localhost: 3306/mybatis?characterEncoding=utf8#사용 이름
username=root
#密码
passWord=root
3.4、建立映射文件与configuration.xml配置
UserMapper.xml
br/> PUBLIC "-//mybatis.org//DTD 매퍼 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
configuration.xml
< ;!DOCTYPE 구성
PUBLIC " -//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">< ;구성>
3.5.ID 기반 단순 쿼리
/*** @Title: Test1.java
* @Package com.pb.mybatis.test
* @Description: TODO(이 파일의 기능을 한 문장으로 설명)
* @author Liu Nan
* @date 2015-10-26 오후 5:55:54
* @version V1.0
*/package com.pb.mybatis.test;import java.io.IOException;import java.io.Reader;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.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User; /**
* @ClassName: Test1
* @Description: TODO(테스트 클래스)
* @author Liu Nan
* @date 2015-10-26 오후 5시 :55:54
**/public class Test1 { //Session工厂
static SqlSessionFactory sqlSessionFactory=null; //세션
static SqlSession 세션=null; //字符流
static Reader reader=null;
public static void main(String[] args) {
selectById();
} /**
*
* @Title: selectById
* @Description: TODO(ID를 기준으로 사용자 찾기)
void*/
public static void selectById(){ //加载配置文件
시도해 보세요 {
reader=Resources.getResourceAsReader("configuration.xml"); //建立SqlSessionFactory
sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); //打开Session
session=sqlSessionFactory.openSession(); //获取用户接口对象
UserMapper userMapper=session.getMapper(UserMapper.class); //사용 방법
사용자 user=userMapper.selectUserById(1);
System.out.println(user.getName()+"..."+user.getAge()+"..." +user.getBirthday().toLocaleString()+"..."+user.getAddress());
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.6、使용别명
更改mapper.xml中的User类的路径 为别name
br/> PUBLIC "-//mybatis.org//DTD 매퍼 3.0//EN"
"http://mybatis.org/dtd /mybatis-3-mapper.dtd">
여기서 id=#{id}
여기서 id=#{id}
4.3, 테스트 클래스
/**
* @Title: Test1.java
* @Package com.pb.mybatis.test
* @Description: TODO(이 파일의 기능을 한 문장으로 설명)
* @author Liu Nan
* @date 2015-10-26 오후 5:55:54
* @version V1.0
*/package com.pb.mybatis.test;import java.io.IOException;import java.io.Reader;import java.text.ParseException;import java.text.SimpleDateFormat;import java .util.Date;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 com.pb.mybatis.dao.UserMapper;import com.pb.mybatis.po.User;/**
* @ClassName: Test1
*
* @Description: TODO(테스트 클래스)
*
* @author Liu Nan
*
* @date 2015-10- 26 오후 5:55:54
*
*
*/public class Test1 { // Session工厂
static SqlSessionFactory sqlSessionFactory = 널; // 세션
static SqlSession 세션 = null; // 字符流
static Reader reader = null; public static void main(String[] args) {
} /**
*
* @Title: selectById
*
* @Description: TODO (ID를 기준으로 사용자 찾기) void*/
public static void selectById() { // 加载配置文件
시도 {
reader = Resources.getResourceAsReader("configuration.xml"); // 建立SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 打开Session
session = sqlSessionFactory.openSession(); // 获取用户接口对象
UserMapper userMapper = session.getMapper(UserMapper.class); // 사용 방법
User user = userMapper.selectUserById(1);
System.out.println(user.getName() + "..." + user.getAge() + "..."
+ user.getBirthday().toLocaleString() + "..."
+ user.getAddress());
} catch (IOException e) {
e.printStackTrace();
}
} /**
*
* @Title: selectLikeName
*
* @Description: TODO(사용자 이름 기반 퍼지 쿼리) void*/
public static void selectLikeName() { // 加载配置文件
시도해 보세요 {
reader = Resources.getResourceAsReader("configuration. xml"); // 建立SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 打开Session
session = sqlSessionFactory.openSession(); // 获取用户接口对象
UserMapper userMapper = session.getMapper(UserMapper.class); // 调用查询方法
List
System.out.println(user.getName() + "..." + user.getAge() + "..." + user.getBirthday().toLocaleString() + "..."
+ user.getAddress());
}
} catch (IOException e) {
e.printStackTrace();
}
} /**
*
* @Title: addUser
* @Description: TODO(사용자 추가)
void*/
public static void addUser() { //구성 파일 로드
try {
reader = Resources.getResourceAsReader("configuration.xml"); // SqlSessionFactory
생성 qlSessionFactory = new SqlSessionFactoryBuilder().build( 독자) ; 사용 사용 사용 사용 사용 User();
user.setName("Hehe"); SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
날짜 date=sdf.parse(d);
user.setBirthday(date); 위치 확인");
userMapper.addUser(user);
System.out.println("ID 삽입"+ user.getId()); //트랜잭션 커밋 session.commit();
}
} /**
*
* @Title: updateUser
* @Description: TODO(사용자 수정)
void*/
public static void updateUser() { // 구성 로드 파일
시도 {
// SqlSessionFactory 빌드
= new SqlSessionFactoryBuilder().build(reader); // 사용자 인터페이스 개체 가져오기
~ 사용자 인터페이스 개체 클래스 가져오기) ; );
}
} public static void detleUser() { // 구성 파일 로드
try {
reader = Resources.getResourceAsReader("configuration.xml") // SqlSessionFactory 생성
sqlSessionFactory = new SqlSessionFactoryBuilder().build( Reader); // 세션 열기
session = sqlSessionFactory.Opension (); // 사용자 인터페이스 객체 가져오기
UserMapper UserMapper = Session.getMapper (UserMapper.Class) ; > //
삭제 UserMapper.deleteUser(6); 사용e.printStackTrace();
}
}
위는 MyBatis에 대한 소개입니다(1)---기본 사용법 내용, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!