ybatis 공통 Mapper 소개 및 사용 상세 정보
범용 매퍼란 무엇입니까?
유니버설 Mapper는 Mybatis를 기반으로 한 플러그인을 해결하기 위한 것입니다.개발자는 SQL을 작성할 필요가 없고 DAO에 방법을 추가할 필요가 없으며 실체류만 잘 쓰면 상응하는 삭제 검사 방법을 지원할 수 있다.
어떻게 사용합니까
ySQL의 경우 다음과 같은 테이블이 있다고 가정합니다.
CREATE TABLE `test_table` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT '',
`create_time` datetime DEFAULT NULL,
`create_user_id` varchar(32) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`update_user_id` varchar(32) DEFAULT NULL,
`is_delete` int(8) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
메인 키는 id입니다.다음은 이 표를 예로 들어 유니버설 매퍼를 어떻게 사용하는지 소개한다.Maven 의존
<!-- Mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>3.3.9</version>
</dependency>
SpringMVC 구성
<!-- Mapper -->
<beanclass="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<propertyname="basePackage"value="cn.com.bluemoon.bd.service.spider.dao"/>
<propertyname="properties">
<value>
mappers=tk.mybatis.mapper.common.Mapper
</value>
</property>
</bean>
이곳에서 사용하도록 주의하세요 tk.mybatis.spring.mapper.MapperScannerConfigure
원래 Mybatis를 바꿉니다org.mybatis.spring.mapper.MapperScannerConfigurer
.어셈블 매개변수 설명:
실체류의 작법
하나의 원칙을 기억하십시오: 실체 클래스의 필드 수량 >= 데이터베이스 테이블에서 조작해야 할 필드 수량.기본적으로 실체 클래스의 모든 필드는 테이블의 필드로 동작합니다. 추가 필드가 있으면 추가해야 합니다
@Transient
주해.
@Table(name = "test_table")
public class TestTableVOimplements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
private Long id;
@Transient
private String userId;
private String name;
private Timestamp createTime;
private String createUserId;
private Timestamp updateTime;
private String updateUserId;
private Integer isDelete;
// get、set...
}
설명:전통적인 Mybatis 쓰기에서 DAO 인터페이스는 Mapper 파일과 연결되어야 한다. 즉, SQL을 작성하여 DAO 인터페이스를 실현하는 방법이 필요하다.범용 Mapper에서 DAO는 하나의 범용 인터페이스만 계승하면 다음과 같은 다양한 방법을 사용할 수 있습니다.
범용 Mapper를 상속하려면 범용을 지정해야 합니다.
public interface TestTableDaoextends Mapper<TestTableVO>{
}
일단 마퍼를 계승하면 계승된 마퍼는 마퍼의 모든 일반적인 방법을 가지게 된다.Select
방법: List
설명: 엔티티의 속성 값에 따라 조회하고 조회 조건은 등호를 사용합니다.
방법: T selectByPrimaryKey(Object key);
설명: 키 필드에 따라 조회합니다. 방법 매개 변수는 완전한 키 속성을 포함해야 합니다. 조회 조건은 등호를 사용합니다.
메서드: List
설명: 모든 결과를 조회하면 select(null) 방법이 같은 효과를 얻을 수 있습니다
방법: T selectOne(T record);
설명: 실체 중의 속성에 따라 조회를 하면 하나의 반환값만 있을 수 있고 여러 가지 결과는 이상을 던지고 조회 조건은 등호를 사용한다
방법: int selectCount(T record);
설명: 엔티티의 속성 조회 총수에 따라 조회 조건에 등호를 사용합니다.
Insert
방법: int insert(T record);
설명: 실체를 저장하면null의 속성도 저장되고 데이터베이스 기본값을 사용하지 않습니다.
방법: int insertSelective(T record);
설명: 실체를 저장하면null의 속성은 저장되지 않고 데이터베이스 기본값을 사용합니다
Update
방법: int updateByPrimaryKey(T record);
설명: 메인 키에 따라 실체의 모든 필드를 업데이트하면null 값이 업데이트됩니다
방법: int updateByPrimaryKeySelective(T record);
설명: 키 업데이트 속성에 따라null이 아닌 값
Delete
방법: int delete(T record);
설명: 엔티티 속성을 기준으로 삭제하고 조회 기준은 등호를 사용합니다.
방법: int deleteByPrimaryKey(Object key),
설명: 키 필드에 따라 삭제합니다. 메소드 매개 변수는 전체 키 속성을 포함해야 합니다.
예제 방법
방법: List
설명: Example 기준 질의
중점: 이 검색은 Example 클래스를 통해 검색 열을 지정하고, selectProperties 방법을 통해 검색 열을 지정합니다.
방법: int selectCountByExample(Object example),
설명: 총 조회 수는 Example 기준
방법: int updateByExample(@Param("record") T record, @Param("example") Object example);
설명: Example 조건에 따라 실체 record에 포함된 모든 속성을 업데이트하면 null 값이 업데이트됩니다.
방법: int updateByExample Selective(@Param("record") T record, @Param("example") Object example);
설명: Example 조건에 따라 실체 record에 포함된 null이 아닌 속성 값을 업데이트합니다.
메서드: int deleteByExample(Object example),
설명: 예제 기준에 따라 데이터 삭제
코드에서 사용
서비스에 dao를 주입하면 사용할 수 있습니다.
@Autowired
private TestTableDao testTableDao;
다음은 대략적인 쓰기 방법을 보여 줍니다.새로 추가됨
TestTableVO vo = new TestTableVO();
// vo ...
int row = testTableDao.insertSelective(vo);
수정하다
TestTableVO vo = new TestTableVO();
// vo ...
int row = testTableDao.updateByPrimaryKeySelective(vo);
단일 질의
TestTableVO vo = new TestTableVO();
vo.setId(123L);
TestTableVO result = testTableDao.selectOne(vo);
조건 조회
// Example
Example example = new Example(TestTableVO.class);
// Criteria
Example.Criteria criteria = example.createCriteria();
//
criteria.andEqualTo("isDelete", 0);
criteria.andLike("name", "%abc123%");
List<TestTableVO> list = testTableDao.selectByExample(example);
총결산유니버설 매퍼의 원리는 반사를 통해 실체류의 정보를 얻고 해당하는 SQL을 구성하는 것이다. 따라서 우리는 실체류를 잘 유지하기만 하면 되고 복잡하고 변화가 많은 수요에 대처하는 데 큰 편의를 제공한다.위에서 서술한 것은 유니버설 마퍼의 간단한 사용법일 뿐이다. 실제 프로젝트에서 업무에 따라 유니버설 마퍼를 바탕으로 입도가 더 크고 유니버설하며 더 좋은 방법을 봉인해야 한다.
Spring Boot 구성 포함
Maven
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.1.4</version>
</dependency>
application.properties 구성
#mapper
#mappers
mapper.mappers=tk.mybatis.mapper.common.Mapper
mapper.not-empty=false
mapper.identity=MYSQL
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringMVC와 Mybatis 집합은 호출 저장 프로세스, 사무 제어 실례를 실현한다SSM 프레임워크에서 호출 데이터베이스의 저장 프로세스와 사무 제어에 자주 사용되는데 다음은 증빙서류를 저장하는 예를 들어 소개한다. 1. Oracle에 저장된 프로세스 코드는 다음과 같습니다(주요 논리는 증빙 서류...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.