순수 맵 모드에서 CRUD 사용을 향상시키기 위해 HasorDB 4.3.2 릴리스

소개하다

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)

추천

출처www.oschina.net/news/190040/hasordb-4-3-2-released