spring-boot-mybatis-demo
spring-boot 는 orm 이 JPA 를 사용 하 는 것 을 권장 합 니 다.jpa 는 spring-boot 에 부합 되 기 때문에 설정 이념 을 간소화 합 니 다.하지만 최근 jpa 를 사용 하 는 과정 에서 여러 가지 불쾌 감 을 느 꼈 습 니 다.특히 여러 표 가 공동으로 조회 할 때 제 가 jpa 에 대해 깊이 파고 들 지 않 았 을 수도 있 습 니 다.개인 적 인 경험 으로 인해 my batis 는 많이 사용 되 기 때문에 현재 spring-boot 와 my batis 를 통합 합 니 다.약속 에 따 르 면,사실 spring-boot 통합 my batis 는 매우 간단 합 니 다.
의존 패키지 도입
pom.xml
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>${mysql-connector.version}version>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>${mybatis-spring-boot.version}version>
dependency 설정 추가
application.properties
mybatis.mapper-locations=classpath:mapper/*.xml 이 설정 은 my batis 의 xml 맵 파일 위 치 를 표시 합 니 다.
mapper 주석 추가
@Mapper
@Mapper
public interface CityBeanMapper {
long countByExample(CityBeanExample example);
int deleteByExample(CityBeanExample example);
int deleteByPrimaryKey(Short cityId);
int insert(CityBean record);
int insertSelective(CityBean record);
List selectByExample(CityBeanExample example);
CityBean selectByPrimaryKey(Short cityId);
int updateByExampleSelective(@Param("record") CityBean record, @Param("example") CityBeanExample example);
int updateByExample(@Param("record") CityBean record, @Param("example") CityBeanExample example);
int updateByPrimaryKeySelective(CityBean record);
int updateByPrimaryKey(CityBean record);
} my batis 인터페이스 층 에@Mapper 주 해 를 추가 하여 spring 의 컨 텍스트 관리자 에 게 이 인 터 페 이 스 를 자동 으로 예화 시 키 고 spring 컨 텍스트 관리자 에 포함 시 키 면 나중에 사용 할 때 필요 한 클래스 에 자동 으로 주입 할 수 있 습 니 다.
서버 계층 사용
@Service(value = "cityService")
public class CityServiceImpl implements CityService {
@Autowired
private CityBeanMapper cityBeanMapper;
@Transactional
public Boolean save(CityBean cityBean) {
if (null == cityBean.getCityId()) {
return cityBeanMapper.insert(cityBean)>0?true:false;
}else{
return cityBeanMapper.updateByPrimaryKey(cityBean)>0?true:false;
}
}
public CityBean findById(Short id) {
return cityBeanMapper.selectByPrimaryKey(i);
}
} 자동 생 성
my batis 를 사용 할 때 my batis-generator 를 통 해 mapper.xml,인터페이스,model 을 자동 으로 생 성 하 는 경우 가 많 습 니 다.예시 공사 에 관련 설정 이 추가 되 었 으 니 참고 하 시기 바 랍 니 다.
<generatorConfiguration>
<properties resource="application.properties"/>
<classPathEntry location="D:\\Java\\maven\\repository\\mysql\\mysql-connector-java\\5.1.39\\mysql-connector-java-5.1.39.jar" />
<context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">
<commentGenerator>
<property name="suppressAllComments" value="true" />
commentGenerator>
<jdbcConnection driverClass="${spring.datasource.driverClassName}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
jdbcConnection>
<javaModelGenerator targetPackage="com.itclj.model" targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<javaClientGenerator targetPackage="com.itclj.dao" targetProject="src/main/java" type="XMLMAPPER"/>
<table schema="sakila" tableName="city" domainObjectName="CityBean">table>
context>
generatorConfiguration> 프로젝트 주소:https://github.com/clj198606061111/spring-boot-mybatis-demo 원본 주소:http://www.itclj.com/blog/58c62d9f47508f786718d4f5
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
텍스트 입력 필드가 있는 TimePicker에서 초 숨기기Vue.js에서 Bootstrap의 TimePicker를 이용할 때의 이야기입니다. 샘플 코드는 Vue.js 전제이지만, 논의하고 있는 기능으로서는 Bootstrap 자체의 이야기입니다. TimePicker에서 "초...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.