Mybatis 시리즈 심층 설명 (1)---Mybatis 시작하기
지난 2년 동안 springmvc + mybatis 조합이 꽤 인기가 있었는데, 원본 포스터의 경우 요즘은 시간이 나면 mybatis를 실제로 배워본 적이 없습니다. 이번에는 나의 학습 진행 상황을 바탕으로 마이바티스에 대한 일련의 튜토리얼을 만들고, 나의 학습 과정을 기록하며, 아직 마이바티스를 접하지 못한 친구들을 위해 탐색해 볼 계획입니다. 이 튜토리얼 시리즈는 얕은(사용) 것부터 깊은 것(mybatis 소스 코드 구현 분석)으로 진행하기 위한 것이므로 업데이트를 완료하는 데 며칠이 걸릴 수 있습니다. 자, mybatis 학습 여정을 시작하겠습니다. 이것은 첫 번째 튜토리얼입니다. 간단히 데모를 작성하고 함께 mybatis에 대해 알아봅시다.
편의상 maven을 사용하는데, 사용법에 대해서는 소개하지 않겠습니다. Maven을 사용해 본 적이 없다면 읽기에 영향을 미치지 않습니다.
1. Mybatis 환경 설정 및 간단한 예제
1. 새 웹 프로젝트를 생성하고 종속성 패키지를 추가합니다: mybatis 패키지, 데이터베이스 드라이버 패키지(저는 mysql을 사용합니다) 로그 패키지(저는 log4j를 사용합니다). 저는 maven 프로젝트이기 때문에 종속성 패키지를 추가하는 것은 간단합니다. pom.xml에 직접 종속성을 추가하기만 하면 됩니다.
pom.xml:
<dependencies> <!-- 添加junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- 添加log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <!-- 添加mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.6</version> </dependency> <!-- 添加mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.12</version> </dependency> </dependencies>
2. log4j 구성, mybatis 구성
클래스 경로 log4j에 log4j 구성을 위한 구성 파일을 생성합니다. .properties를 선택한 다음 Mybatis를 구성하기 위한 구성 파일 구성.xml을 만듭니다(파일 이름은 임의로 지정할 수 있음). log4j의 구성에 대해서는 많이 언급하지 않겠습니다. 여기서는 주로configuration.xml:
configuration.xml:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 7 <!-- 指定properties配置文件, 我这里面配置的是数据库相关 --> 8 <properties resource="dbConfig.properties"></properties> 9 10 <!-- 指定Mybatis使用log4j --> 11 <settings> 12 <setting name="logImpl" value="LOG4J"/> 13 </settings> 14 15 <environments default="development"> 16 <environment id="development"> 17 <transactionManager type="JDBC"/> 18 <dataSource type="POOLED"> 19 <!-- 20 如果上面没有指定数据库配置的properties文件,那么此处可以这样直接配置 21 <property name="driver" value="com.mysql.jdbc.Driver"/> 22 <property name="url" value="jdbc:mysql://localhost:3306/test1"/> 23 <property name="username" value="root"/> 24 <property name="password" value="root"/> 25 --> 26 27 <!-- 上面指定了数据库配置文件, 配置文件里面也是对应的这四个属性 --> 28 <property name="driver" value="${driver}"/> 29 <property name="url" value="${url}"/> 30 <property name="username" value="${username}"/> 31 <property name="password" value="${password}"/> 32 33 </dataSource> 34 </environment> 35 </environments> 36 37 <!-- 映射文件,mybatis精髓, 后面才会细讲 --> 38 <mappers> 39 <mapper resource="com/dy/dao/userDao-mapping.xml"/> 40 </mappers> 41 42 </configuration>
3. Demo 작성 시작
먼저 mysql 데이터베이스 test1
에 user:
테이블을 생성한 다음 Java 코드 작성을 시작합니다.
내 프로젝트 구조를 보세요:
먼저 엔터티 클래스를 작성합니다. User: User 클래스는 User 클래스에 해당합니다. 테이블 .
사용자:
1 package com.dy.entity; 2 3 public class User { 4 5 private int id; 6 private String name; 7 private String password; 8 private int age; 9 private int deleteFlag; 10 11 public int getId() { 12 return id; 13 } 14 public void setId(int id) { 15 this.id = id; 16 } 17 public String getName() { 18 return name; 19 } 20 public void setName(String name) { 21 this.name = name; 22 } 23 public String getPassword() { 24 return password; 25 } 26 public void setPassword(String password) { 27 this.password = password; 28 } 29 public int getAge() { 30 return age; 31 } 32 public void setAge(int age) { 33 this.age = age; 34 } 35 public int getDeleteFlag() { 36 return deleteFlag; 37 } 38 public void setDeleteFlag(int deleteFlag) { 39 this.deleteFlag = deleteFlag; 40 } 41 42 }
다른 UserDao 인터페이스 작성:
UserDao:
1 package com.dy.dao; 2 3 import java.util.List; 4 5 import com.dy.entity.User; 6 7 public interface UserDao { 8 9 public void insert(User user); 10 11 public User findUserById (int userId); 12 13 public List<User> findAllUsers(); 14 15 }
다른 userDao-mapping.xml을 작성하세요(원하는 이름으로 지정할 수 있습니다):
userDao-mapping.xml:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" 4 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 5 <mapper namespace="com.dy.dao.UserDao"> 6 7 <select id="findUserById" resultType="com.dy.entity.User" > 8 select * from user where id = #{id} 9 </select> 10 11 </mapper>
userDao-mapping.xml相当于是UserDao的实现, 同时也将User实体类与数据表User成功关联起来。
4. 下面编写junit测试代码UserDaoTest:
UserDaoTest:
1 public class UserDaoTest { 2 3 @Test 4 public void findUserById() { 5 SqlSession sqlSession = getSessionFactory().openSession(); 6 UserDao userMapper = sqlSession.getMapper(UserDao.class); 7 User user = userMapper.findUserById(2); 8 Assert.assertNotNull("没找到数据", user); 9 } 10 11 //Mybatis 通过SqlSessionFactory获取SqlSession, 然后才能通过SqlSession与数据库进行交互12 private static SqlSessionFactory getSessionFactory() { 13 SqlSessionFactory sessionFactory = null; 14 String resource = "configuration.xml"; 15 try { 16 sessionFactory = new SqlSessionFactoryBuilder().build(Resources 17 .getResourceAsReader(resource)); 18 } catch (IOException e) { 19 e.printStackTrace(); 20 } 21 return sessionFactory; 22 } 23 24 }
好啦,这样一个简单的mybatis 的demo就能成功运行啦。通过这个demo, 应该你就也能初步看出mybatis的运行机制,如果不清楚,也没关系。从下一篇文章开始,才开始正式讲解mybatis。
以上就是深入浅出Mybatis系列(一)---Mybatis入门 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 난수 생성기 안내. 여기서는 예제를 통해 Java의 함수와 예제를 통해 두 가지 다른 생성기에 대해 설명합니다.

Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.
