Конфигурации динамического источника данных, miniDao и менеджера транзакций
<property name="password" value="${jdbc.password}" />
<property name="initialSize" value="3" />
<property name="minIdle" value="3" />
<property name="maxActive" value="20" />
<property name="maxWait" value="60000" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="filters" value="stat" />
</bean>
<!-- 3. Конфигурация динамического источника данных -->
<bean class="com.mini.core.dynamic.DynamicDataSource">
<property name="defaultTargetDataSource" ref="dataSource"></property>
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry key="key1" value-ref="dataSource" />
</map>
</property>
</bean>
<!-- 3. Конфигурация miniDao -->
<bean id="miniDao" class="com.mini.core.dao.MiniDao" init-method="init">
<property name="dynamicDataSource" ref="dynamicDataSource"></property>
</bean>
<!-- Конфигурация менеджера транзакций -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dynamicDataSource"/>
</bean>
<!-- Использование менеджера транзакций с помощью аннотации @Transactional -->
<tx:annotation-driven transaction-manager="txManager"/>
Описание конфигурации динамического источника данных
defaultTargetDataSource: конфигурация основного источника данных;
targetDataSources: конфигурация источников данных, где ключ — это имя источника данных (любое значение), а значение-ref указывает на источник данных;
entityPackage: пакет, в котором находится сущность, несколько пакетов разделяются запятой.
Конфигурация сканирования
Основная функция — инициализация RowMapper сущности, а также сопоставление таблицы, идентификатора и т. д.;
<!-- Сканирование для автоматического внедрения MiniDao -->
<context:component-scan base-package="com.mini"/>
Если эта конфигурация настроена, то при инициализации информация о сущности будет загружена в память. Если она не настроена, информация будет динамически загружаться в память (для повышения эффективности запуска программы рекомендуется не настраивать её на этапе разработки).
<!-- Сканирование сущностей, которые необходимо настроить -->
<bean id="databaseRouter" class="com.mini.core.DatabaseRouter">
<property name="entityPackage" value="com.mini" />
</bean>
Примеры кода для вставки, обновления и удаления
/**
* Тестирование вставки экземпляра User с сильным типом
*/
public static int testInsert() {
User user = new User();
user.setCreateTime(new Date()) .setName("username") .setType(new Random().nextInt(5));
return dao.insert(user);
}
/**
* Пример кода для тестирования вставки экземпляра Record с сильным типом
*/
public static int testInsert2() {
Record record = new Record("users","id");
record.set("id", new Random().nextInt(100)) .set("name", "username")
.set("type", new Random().nextInt(5)).set("password", "000000");
return dao.insert(record);
}
/**
* Пример кода для обновления экземпляра с сильным типом
* @return
*/
public static int testUpdate() {
User user = new User();
user.setName("hello_update");
return dao.update(user);
}
/**
* Пример кода для обновления записи со слабым типом
* @return
*/
public static int testUpdateRecord() {
Record record = new Record();
record.setTableName("users");
record.setPrimaryKeys("id");
record.set("id", "8").set("name", "record_update");
return dao.update(record);
}
/**
* Пример кода для удаления экземпляра с сильным типом
* @return
*/
public static int testDelete() {
User user = new User();
user.setId("1");
return dao.delete(user);
}
/**
* Пример кода для удаления записи со слабым типом
* @return
*/
public static int testDeleteRecord() {
Record record = new Record();
record.setTableName("users");
record.setPrimaryKeys("id");
record.set("id", "8");
return dao.delete(record);
}
Пример кода для запроса с разбиением на страницы
/**
* Запрос без параметров с использованием сильного типа
*/
public static List<User> testGetPage() {
String sql = "select * from users where id < 8 order by id desc";
List<User> users = dao.paginate(sql, 2, 2, User.class);
return users;
}
/**
* Запрос с параметрами с использованием сильного типа
*/
public static List<User> testGetPage2() {
String sql = "select * from users where id < ? order by id desc";
List<User> users = dao.paginate(sql, 2, 2, User.class, 18);
return users;
}
/**
* Запрос без параметров со слабым типом
*/
public static List<Record> testGetPage3() {
String sql = "select id,name from users where id < 8 order by id desc";
return dao.paginate(sql, 2, 2,Record.class);
}
/**
* Запрос с параметрами со слабым типом
*/
public static List<Record> testGetPage4() {
String sql = "select id,name from users where id < ? order by id desc";
return
``` ```
dao.paginate(sql, 2, 2, Record.class, 88);
}
Перевод:
dao.paginate(sql, 2, 2, Record.класс, 88);
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )