Конфигурации динамического источника данных, 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);
}
You can comment after Login
Inappropriate content may be displayed here and will not be shown on the page. You can check and modify it through the relevant editing function
If you confirm that the content does not involve inappropriate language/advertisement redirection/violence/vulgar pornography/infringement/piracy/false/insignificant or illegal content related to national laws and regulations, you can click submit to make an appeal, and we will handle it as soon as possible.
Comments ( 0 )