이 기사에서는 Mybatis가 무엇인지 소개합니다. 마이바티스 관련 콘텐츠 소개에는 참고할만한 가치가 있습니다. 도움이 필요한 친구들이 참고하시면 좋겠습니다.
MyBatis 소개
MyBatis는 원래 Apache iBatis의 오픈 소스 프로젝트였으며 이 프로젝트는 Apache에서 마이그레이션되었습니다. 소프트웨어 기반을 Google 코드로 변경하고 이름을 MyBatis로 변경했습니다. 2013년 11월 Github로 이전되었습니다.
MyBatis는 맞춤형 SQL, 저장 프로시저 및 고급 매핑을 지원하는 탁월한 지속성 계층 프레임워크입니다. MyBatis는 거의 모든 JDBC 코드와 매개변수 수동 설정 및 결과 세트 검색을 방지합니다. MyBatis는 인터페이스와 Java POJO(Plain Old Java Objects, 일반 Java 객체)를 데이터베이스의 레코드에 매핑하기 위해 구성 및 기본 맵에 간단한 XML 또는 주석을 사용할 수 있습니다.
MyBatis 참조 공식 홈페이지
http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis 다운로드 주소
https://github.com/mybatis/mybatis-3
MyBatis의 장점
#🎜🎜 #
1 필수 jar 패키지를 추가합니다.
create table `tal_employee` ( `id` int (11), `last_name` varchar (360), `email` varchar (300), `gender` char (9) );
INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('1','韩信','hanxin@gemail.com','男'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('2','LiBaihH','libai@gemail.com','男'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('3','孙尚香','sunshangxiang@gemail.com','女'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('4','安琪拉','anqila@gemail.com','女'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('5','Hello','Hello@gemail.com','男'); INSERT INTO `tal_employee` (`id`, `last_name`, `email`, `gender`) VALUES('6','Miya','Miya@gemail.com','男');
3 엔터티 클래스 생성
public class Employee { private Integer id; private String lastName; private String email; private String gender; //此处省略get set toString。。。 }#🎜🎜 #
<?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="EmployeeMapper"> <!-- 定义一个查询方法 resultType 返回值类型--> <select id="findAll" resultType="com.simple.mybatis.entitys.Employee"> select * from tal_employee </select> </mapper>
<?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> <!-- 配置环境 default默认使用环境名字--> <environments default="development"> <!-- 配置一个环境 --> <environment id="development"> <!-- 使用事务JDBC事务管理器 --> <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="root" /> </dataSource> </environment> </environments> <!-- 加载映射 --> <mappers> <mapper resource="com/simple/mybatis/entitys/EmployeeMapper.xml" /> </mappers> </configuration>
private SqlSessionFactory sqlSessionFactory; @Before public void init() throws IOException{ //读取mybatis主配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); /** * 实例化SqlSessionFactory * 如果没有指定默认环境,可以在这里指定使用的环境ID,比如我先在有个DEV环境 * sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream,"DEV"); * 我这里已经使用了默认环境所以我就不用这种方式创建了 */ sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }
데이터베이스에 액세스
SqlSession 개체 가져오기, 데이터베이스와의 대화에 사용됩니다. 데이터베이스와의 대화에서SqlSession session = sqlSessionFactory.openSession();모든 직원 기록 가져오기EmployeeMapper는 엔터티 클래스 매핑 파일의 네임스페이스이고 findAll은 선택 태그의 ID
List<Employee> employees = session.selectList("EmployeeMapper.findAll"); for (Employee employee : employees) { System.out.println(employee); }액세스 결과:
Employee [id=1, lastName=null, email=hanxin@gemail.com, gender=男] Employee [id=2, lastName=null, email=libai@gemail.com, gender=男] Employee [id=3, lastName=null, email=sunshangxiang@gemail.com, gender=女] Employee [id=4, lastName=null, email=anqila@gemail.com, gender=女] Employee [id=5, lastName=null, email=Hello@gemail.com, gender=男] Employee [id=6, lastName=null, email=Miya@gemail.com, gender=男]여기에서 데이터베이스에 액세스하는 것이 정상입니다. 왜 lastName이 비어 있나요?
테이블 필드와 클래스 속성 이름 간의 불일치에 대한 솔루션
이유: 여기서 엔터티 클래스의 속성은 lastName이라고 하며 데이터베이스는 컬럼 last_name 이름이 일치하지 않아 얻은 값이 비어있습니다.해결책 1: 엔터티 클래스 매핑 파일에서 select 태그에 별칭을 지정합니다.
<select id="findAll" resultType="com.simple.mybatis.entitys.Employee"> select id,last_name AS lastName,email,gender from tal_employee </select>해결책 2: 에 mybatis 메인 구성 파일에 카멜 케이스 이름 지정을 먼저 구성해야 합니다. 그렇지 않으면 XML 오류가 보고됩니다.
먼저 mybatis 종속성 패키지를 추가해야 합니다. . 잠깐
MyBatis 구성 파일이전의 간단한 MyBatis 사례를 통해 누구나 MyBatis에 대해 알아야 합니다. 기본 Hibernate와 같은 프레임워크의 구조에는 MyBatis에는 핵심 구성 파일과 매핑 파일이 포함되어 있습니다.
핵심 구성 파일(mybatis-config.xml): 연결 풀 정보, 트랜잭션, 매핑 파일 로드, 매개변수 설정 및 기타 구성을 포함한 Mybatis의 핵심 구성이 포함되어 있습니다. .
매핑 파일(EmployeeMapper.xml): 주로 데이터베이스, 연결, Sql 문 등에 대한 엔터티 개체 매핑을 구현합니다.
일부 외부 속성, 이러한 속성은 대체될 수 있습니다. 🎜#Mybatis의 매우 중요한 조정 설정은 Mybatis의 기본 동작을 변경합니다. | |
---|---|
xml 구성에만 관련된 Java 유형의 별칭을 설정합니다. |
|
Mapper, MyBatis 매핑 파일을 로드합니다. |
|
플러그인인 Mybatis를 사용하면 사용자가 매핑의 특정 지점에서 가로챌 수 있습니다. |
위 내용은 마이바티스란 무엇인가요? 마이바티스 관련 콘텐츠 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!