DBExecutor
Основные функции:
Этот набор библиотек в основном используется для работы с базами данных Android. Он всегда основан на концепции «один класс — одна таблица». Достаточно создать класс сущности, и можно не беспокоиться о том, как он будет храниться в базе данных, а также не нужно заново писать код для добавления, изменения, удаления и запроса. Основные функции уже реализованы за вас. Добавление, изменение, удаление и запрос данных выполняются одной командой:
boolean isSuccess = db.insert(person);
boolean isSuccess = db.updateById(person);
boolean isSuccess = db.deleteById(Person.class,1);
List<Person> persons = db.findAll(Person.class);
Если у вас есть какие-либо предложения или вопросы, вы можете связаться со мной по электронной почте 794629068@qq.com.
В заключение я хотел бы выразить свою благодарность автору кода XUtils wyouflf. Этот код представляет собой пересмотр и оптимизацию модуля базы данных открытого исходного кода XUtils. Его структура очень разумна, и многие вещи были улучшены на её основе.
Определение простого класса сущности, соответствующего таблице
@Table(name = "Person")
public class Person {
@Id(autoIncrement = true)
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Необходимо, чтобы поле, объявленное с помощью @Id, соответствовало полю id в таблице. autoIncrement = true означает автоинкремент. @Table может быть опущено, если имя таблицы совпадает с именем пакета + именем класса. Поддерживаются базовые типы и их обёртки, а также типы, определённые java.sql.Date. Если вам нужно поддерживать другие типы полей, обратитесь к TestColumnConverter.java в DBLibrary_TestCase.
Основные классы
Он предоставляет основные методы, такие как db.execute(sqls), db.executeQuery(sql) и т. д., которые упрощают добавление, изменение, удаление и запросы. При выполнении SQL не нужно беспокоиться о существовании таблицы. Если таблица не существует, она будет создана автоматически.
sql.setCheckTableExit(checkTableExit); // Устанавливает, проверять ли существование таблицы при выполнении SQL. По умолчанию установлено значение true. Если при проверке обнаруживается, что таблица не существует, она создаётся автоматически. Если установить значение false, проверка не производится. Не стоит бояться сложности, мы можем использовать SqlFactory для создания Sql.
// Запрос Sql sql = SqlFactory.find(Person.class); sql = SqlFactory.find(Person.class).where("name", "=", "试着飞"); sql = SqlFactory.find(Person.class).where("age", "=", 10).or("age", "=", 11); sql = SqlFactory.find(Person.class).where("age", "=", 10).orderBy("name", false); sql = SqlFactory.find(Person.class).where("age", "=", 10).orderBy("name", false).limit(1); sql = SqlFactory.find(Person.class).where("name", like, "%飞"); sql = SqlFactory.find(Person.class).where("name", like, "着"); sql = SqlFactory.find(Person.class).where("age", in, new int[] { 10, 11, 12 }); sql = SqlFactory.find(Person.class).where("name", in, new String[] { "小明", "小红" }); sql = SqlFactory.find(Person.class, "name", "age").where("name", "=", "试着飞"); sql = SqlFactory.find(Person.class, "count(*) as num").where("age", "=", 11); sql = SqlFactory.find(Person.class, "max(age) as maxAge", "min(age) as minAge").where("sex", "=", "男"); sql = SqlFactory.find(Person.class, new MaxFunction("age", "maxAge"), new MinFunction("age", "minAge")).where("sex", "=", "男"); sql = SqlFactory.find(Person.class).where("name=? and age=?", new Object[] { "小明", 11 });
// Удаление sql = SqlFactory.deleteAll(Person.class); sql = SqlFactory.delete(Person.class).where("age", "=", 11); sql = SqlFactory.deleteById(Person.class, 11); sql = SqlFactory.deleteById(Person.class, new int[] { 11, 12 });
// Обновление sql = SqlFactory.update(Person.class, new String[] { "name", "age" }, new Object[] { "小明", 11 }).where("id", "=", 1); sql = SqlFactory.updateById(new Person(1, "小明", 11, "男")); sql = SqlFactory.updateById(new Person(1, "小明", 11, "муж"), "name");
// Если существует запись с id равным 1, то обновить, иначе вставить новую запись sql = SqlFactory.updateOrInsertById(new Person(1,
...
Текст обрывается. ``` "小明", 11, "男"));
// 插入语句 sql = SqlFactory.insert(new Person(1, "小明", 11, "муж"));
// 自拼接sql语句 sql = SqlFactory.makeSql(Person.class, "select * from Person where age = ?", new Object[] { 11 });
**Скрытие конфигурации**
-keepclasseswithmembers class * { @com.shizhefei.db.annotations.Id <fields>; *;}
Подробнее см. в документации проекта.
---
License
=======
Copyright 2014 shizhefei(LuckyJayce)
Licensed under the Apache License, Version 2.0 (the «License»);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an «AS IS» BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )