1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/drinkjava2-jsqlbox

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_ENG.md 7.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 06:21 5b1e2f4

jSqlBox — инструмент для работы с базами данных на Java

jSqlBox представляет собой инструмент для сохранения объектов Java в базе данных. Он основан на Apache-commons-DbUtils и предлагает ряд преимуществ:

  • Отличная архитектура: модульная архитектура, каждый модуль можно использовать отдельно от jSqlBox.
  • Поддержка кросс-баз данных: поддержка более 70 видов баз данных благодаря jDialects.
  • Небольшой размер: все зависимые пакеты составляют около 500 килобайт.
  • Совместимость с DbUtils: проекты, основанные на DbUtils, могут быть легко обновлены до jSqlBox.
  • Множество методов SQL: встроенные методы, шаблонные методы, DataMapper, ActiveRecord, цепочки, запросы и т. д.
  • Ряд технических инноваций: встроенное написание, поддержка многострочного текста, NoSQL-запросы, соответствие ActiveRecord и SqlMapper.
  • Динамическая конфигурация: помимо поддержки конфигурации аннотаций, jSqlBox также поддерживает динамические изменения конфигурации во время выполнения.
  • Без сеансов: действительно лёгкий инструмент.
  • Поставляется с декларативной транзакцией: основана на независимом инструменте декларативных транзакций jTransactions и может быть настроена как Spring-транзакция.
  • Простая кривая обучения: модульное обучение, понимание различных подмодулей, чтобы освоить jSqlBox, нужно изучить только ~30 классов основного тела jSqlBox.

Документация

На китайском языке | Руководство пользователя на английском языке | JavaDoc

Загрузка

Сайт Maven.

<dependency>
   <groupId>com.github.drinkjava2</groupId>
   <artifactId>jsqlbox</artifactId>
   <version>5.0.13.jre8</version> <!-- Или новейшая версия -->
</dependency> 

Первый пример

pom.xml:
    <dependency>
      <groupId>com.github.drinkjava2</groupId>
       <artifactId>jsqlbox</artifactId> 
       <version>5.0.13.jre8</version> <!-- Java8 -->
    </dependency>

    <dependency>
      <groupId>com.h2database</groupId> <!--H2 database->
      <artifactId>h2</artifactId>  
      <version>1.3.176</version>
    </dependency>

And create below java file in Eclipse or Idea:

import javax.sql.DataSource;
import org.h2.jdbcx.JdbcConnectionPool;
import static com.github.drinkjava2.jsqlbox.DB.*;
import com.github.drinkjava2.jdialects.annotation.jdia.UUID25;
import com.github.drinkjava2.jdialects.annotation.jpa.Id;
import com.github.drinkjava2.jsqlbox.ActiveEntity;
import com.github.drinkjava2.jsqlbox.DB;
import com.github.drinkjava2.jsqlbox.DbContext;

public class HelloWorld implements ActiveEntity<HelloWorld> {
  @Id
  @UUID25
  private String id;
  private String name;
  public String getId() {return id;}
  public void setId(String id) {this.id = id;}
  public String getName() {return name;}
  public HelloWorld setName(String name) {this.name = name;return this;}

    public static void main(String[] args) {
     DataSource ds = JdbcConnectionPool  
                     .create("jdbc:h2:mem:demo;MODE=MYSQL;TRACE_LEVEL_SYSTEM_OUT=0", "sa", "");
     DbContext ctx = new DbContext(ds);
     ctx.setAllowShowSQL(true); 
     DbContext.setGlobalDbContext(ctx);  
     ctx.quiteExecute(ctx.toDropAndCreateDDL(HelloWorld.class));  
     ctx.tx(() -> { 
        HelloWorld h = new HelloWorld().setName("Foo").insert().putField("name", "Hello jSqlBox").update();
        System.out.println(DB.qryString("select name from HelloWorld where name like"));
``` **que("H%"), "or name=", que("1"), "or name =", que("2"))**

h.delete(); 
});
ctx.executeDDL(ctx.toDropDDL(HelloWorld.class)); 
}

Ниже представлен вывод журнала:

SQL: drop table HelloWorld if exists
PAR: []
SQL: create table HelloWorld ( id varchar(250),name varchar(250), primary key (id))
PAR: []
SQL: insert into HelloWorld (name, id)  values(?,?)
PAR: [Foo, emeai4bfdsciufuuteb9a7nmo]
SQL: update HelloWorld set name=?  where id=?
PAR: [Hello jSqlBox, emeai4bfdsciufuuteb9a7nmo]
SQL: select name from HelloWorld where name like? or name=? or name =?
PAR: [H%, 1, 2]
SQL: delete from HelloWorld where id=? 
PAR: [emeai4bfdsciufuuteb9a7nmo]
SQL: drop table HelloWorld if exists
PAR: []

Дополнительные документы см. в wiki.

Демо

  • jBooox (https://gitee.com/drinkjava2/jBooox) — микро-MVC веб-демо на основе jBeanBox + jSqlBox + jWebBox.
  • jsqlbox-beetl (../../tree/master/demo/jsqlbox-beetlsql) — демо показывает, как использовать Beetl в качестве SqlTemplateEngine.
  • jsqlbox-actframework (../../tree/master/demo/jsqlbox-actframework) — показывает, как использовать jSqlBox в ActFramework и использовать TinyTx + Guice AOP для достижения декларативной транзакции.
  • jsqlbox-jfinal (../../tree/master/demo/jsqlbox-jfinal) — показывает использование jSqlBox в jFinal.
  • jSqlBox-Spring (../../tree/master/demo/jsqlbox-spring) — показывает использование jSqlBox в Spring + Tomcat.
  • jsqlbox-springboot (../../tree/master/demo/jsqlbox-springboot) — показывает использование jSqlBox в SpringBoot.
  • jsqlbox-springboot-mybatis (../../tree/master/demo/jsqlbox-springboot-mybatis) — демонстрирует смешанное использование jSqlBox и MyBatis в SpringBoot.
  • jsqlbox-java (../../tree/master/demo/jsqlbox-java8) — показывает версию использования jSqlBox-Java8 и использование Lambda для написания SQL.
  • jsqlbox-atomikos (../../tree/master/demo/jsqlbox-atomikos) — показывает функцию сегментирования в jSqlBox при использовании XA-транзакции, реализованной Atomikos.

Связанные проекты

Будущее

Приглашаем к обсуждению проблем или отправке PR, чтобы помочь улучшить jSqlBox.

Лицензия

Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0).

Обо мне

Github (https://github.com/drinkjava2), 码云 (https://gitee.com/drinkjava2).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/drinkjava2-jsqlbox.git
git@api.gitlife.ru:oschina-mirror/drinkjava2-jsqlbox.git
oschina-mirror
drinkjava2-jsqlbox
drinkjava2-jsqlbox
master