소개하다
HasorDB는 객체 매핑, 풍부한 유형 처리, 동적 SQL, 저장 프로시저, 20개 이상의 내장 페이징 언어, 중첩 트랜잭션 지원, 다중 데이터 소스, 조건부 생성자, INSERT 전략, 다중 명령문/ 여러 결과. Spring 및 MyBatis 사용과 호환됩니다. 다른 프레임워크에 의존하지 않으므로 어떤 프레임워크와도 쉽게 통합될 수 있습니다.
특징
-
익숙한 방법
- JdbcTemplate 인터페이스(Spring JDBC와 높은 호환성)
- 매퍼 파일 방식(MyBatis와 높은 호환성)
- LambdaTemplate(MyBatis Plus, jOOQ 및 BeetlSQL과 매우 유사)
- @Insert, @Update, @Delete, @Query, @Callable 주석(JPA와 유사)
-
거래 지원
- 5가지 트랜잭션 격리 수준, 7가지 트랜잭션 전파 동작 지원(Spring tx와 동일)
- TransactionTemplate, TransactionManager 인터페이스 모드 선언적 트랜잭션 제어 기능 제공(Spring과 동일한 사용법)
-
기능 및 장점
- 페이지를 매긴 쿼리를 지원하고 여러 데이터베이스 방언 제공(20개 이상)
- INSERT 전략 지원(INTO, UPDATE, IGNORE)
- 더 풍부한 TypeHandler(MyBatis 40+, HasorDB 60+)
- 매퍼 XML은 여러 명령문과 여러 결과를 지원합니다.
- 동적 SQL을 보다 쉽게 만들기 위한 고유한 규칙 확장 메커니즘 제공
@{xxx, expr , xxxxx }
- 저장 프로시저 지원
- JDBC 4.2 및 Java8에서 시간 유형 지원
- 여러 데이터 소스 지원
릴리스.노드
- 새로운 기능, 순수 Map에 대한 Lambda 지원이 더 친숙하며 LambdaTemplate은 현재 엔터티 없는 방식으로 사용할 수 있습니다.
- 공식 문서 사이트: http://www.hasor.cn , https://www.hasordb.net
가져오기 종속성
지금까지 HasorDB의 최신 버전은 4.3.2 입니다.
- 최신 버전은 https://mvnrepository.com/artifact/net.hasor/hasor-db에서도 찾을 수 있습니다 .
<dependency>
<groupId>net.hasor</groupId>
<artifactId>hasor-db</artifactId>
<version>4.3.2</version>
</dependency>
그런 다음 데이터베이스 드라이버를 소개합니다. MySQL과 Maven을 예로 들어 보겠습니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
데이터베이스 연결 풀에 의존하지 않고 HasorDB를 사용할 수 있지만 데이터베이스 연결 풀은 대부분의 프로젝트에서 표준입니다. 여기서 우리는 Alibaba의 Druid를 사용합니다.
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>
CreateDB.sql
마지막으로 데이터베이스 테이블을 준비하고 일부 데이터( 파일) 를 초기화합니다 .
drop table if exists `test_user`;
create table `test_user` (
`id` int(11) auto_increment,
`name` varchar(255),
`age` int,
`create_time` datetime,
primary key (`id`)
);
insert into `test_user` values (1, 'mali', 26, now());
insert into `test_user` values (2, 'dative', 32, now());
insert into `test_user` values (3, 'jon wes', 41, now());
insert into `test_user` values (4, 'mary', 66, now());
insert into `test_user` values (5, 'matt', 25, now());
SQL을 실행
SQL을 사용하여 데이터를 읽고 PrintUtils
예제 프로젝트에서 두 가지 도구 클래스를 찾을 수 있습니다. DsUtils
// 创建数据源 DataSource dataSource = DsUtils.dsMySql();
LambdaTemplate lambdaTemplate = 새로운 LambdaTemplate(dataSource); Map<String , Object> newValue = new HashMap<>() ; newValue.put( "아이디" , 20 ) ; newValue.put( "이름" , "새 이름" ) ; newValue.put( "나이" , 88 ) ; newValue.put( "create_time" , 새 날짜() ) ; InsertOperation<Map<문자열 , 개체>> 삽입 = lambdaTemplate.lambdaInsert( "test_user" ) ;// 新增
결과 = insert.applyMap(newValue).executeSumResult()// 更新
Map<String , Object> updateValue = new HashMap<>() ; updateValue.put( "이름" , "새 이름" ) ; updateValue.put( "나이" , 88 ) ; MapUpdateOperation 업데이트 = lambdaTemplate.lambdaUpdate( "test_user" ) ; int 결과 = update.eq( "id" , 1 ).updateByMap(updateValue).doUpdate() ;// 查询 List<Map<String, Object>> mapList = jdbcTemplate.queryForList("select * from test_user"); // 打印测试数据 PrintUtils.printMapList(mapList)