제 2의 MyBatis 프레임 워크 빠른 시작
이전 연구함으로써, 우리는 기초 배운 사용자 정의 프레임의 MyBatis를 구축 할 수 있었다. 이 과정은 우리가 많은 강한이, 기본 기술 시험이지만, 현실은, 우리가 비교의 MyBatis 프레임 워크와 실제의 MyBatis 프레임 워크를 정의 잔인, 또는 작은 것 같다. 업계의 프레임 워크 내 인기는 이제 우리가 배울집니다 MyBatis로.
의 개발을위한 2.1 MyBatis로 준비 프레임 워크
2.1.1 공식 웹 사이트의 MyBatis 프레임 워크를 다운로드
"MyBatis로 다운로드"에서 바이에서 최신 MyBatis로 개발 패키지를 다운로드 할 수 있습니다.
문서의 중국어 버전으로 개발 된 액세스를 선택 인터페이스 언어.
빌드 MyBatis로 2.2 개발 환경
2.2.1 만들기 Maven 프로젝트
创建 mybatis01 的工程,
工程信息如下:
Groupid:com.itheima
ArtifactId:mybatis01
Packing:jar
2.2.2 Mybatis3.4.5의 좌표를 추가
다음과 같이 pom.xml 파일 좌표에 Mybatis3.4.5 추가 :
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
</dependencies>
2.2.3 쓰기 사용자 엔티티 클래스
/**
*
*<p>Title: User</p>
*<p>Description: 用户的实体类</p>
*/
public class User implements Serializable {
private Integer id; private String username; private Date birthday; private String sex;
private String address;public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", birthday=" + birthday
+ ", sex=" + sex + ", address="
+ address + "]";
}
}
2.2.4 IUserDao 인터페이스 지속성 층 쓰기
IUserDao 지속성 인터페이스하는 것은 다음과 같이 우리는 특정 코드를 인터페이스 레이어 (또는 UserDao UserMapper을 기록 할 수 있음) 것입니다 :
public interface IUserDao {
/**
*查询所有用户
*@return
*/
List<User> findAll();
}
2.2.5 쓰기 영속 계층 매핑 파일 인터페이스 IUserDao.xml
요구 사항 :
위치를 만들기 : 영속 계층 인터페이스는 같은 패키지에 있어야합니다.
이름 : 파일 이름이 영속 계층 인터페이스의 이름을 지정해야합니다, 확장 .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="com.itheima.dao.IUserDao">
<!-- 配置查询所有操作 -->
<select id="findAll" resultType="com.itheima.domain.User"> select * from user
</select>
</mapper>
2.2.6 기록 SqlMapConfig.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>
<!-- 配置 mybatis 的环境 -->
<environments default="mysql">
<!-- 配置 mysql 的环境 -->
<environment id="mysql">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置连接数据库的信息:用的是数据源(连接池) -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ee50"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<!-- 告知 mybatis 映射配置的位置 -->
<mappers>
<mapper resource="com/itheima/dao/IUserDao.xml"/>
</mappers>
</configuration>
2.2.7 쓰기 테스트 클래스
public class MybatisTest {
public static void main(String[] args)throws Exception {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建 SqlSessionFactory 的构建者对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3.使用构建者创建工厂对象 SqlSessionFactory SqlSessionFactory factory = builder.build(in);
//4.使用 SqlSessionFactory 生产 SqlSession 对象
SqlSession session = factory.openSession();
//5.使用 SqlSession 创建 dao 接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//6.使用代理对象执行查询所有方法List<User> users = userDao.findAll(); for(User user : users) {
System.out.println(user);
//7.释放资源
session.close(); in.close();
}
}