Browsed by
月份:2018年9月

3.4 定义查询方法

3.4 定义查询方法

3.4. Defining query methods 库代理有两种方法从方法名中提取指定存储的查询。一是可以直接从方法名中提取查询,二是使用手动定义的查询。使用哪一个取决于实际的存储。但必须有一种策略来决定实际创建的查询。接下来看看这两种方法。 The repository proxy has two ways to derive a store-specific query from the method name. It can derive the query from the method name directly, or by using a manually defined query. Available options depend on the actual store. However, there’s got to be a strategy that decides what actual query is created. Let’s have a look at the available options. 3.4.1. 查询策略 3.4.1. Query lookup strategies 库基础设施有下列策略来解决查询问题。你可以通过XML配置中的query-lookup-strategy属性,或者在Java config中的Enable${store}Repositories注解通过queryLookupStrategy属性,在命名空间下配置策略。其中某些策略可…

阅读全文 Read More

3.3 定义库接口

3.3 定义库接口

3.3. Defining repository interfaces 首先你需要定义一个指定域类的库接口。接口必须继承Repository并指定域类和ID的类型。如果你希望暴露CRUD方法,将继承Repository更换为CrudRepository即可。 As a first step you define a domain class-specific repository interface. The interface must extend Repository and be typed to the domain class and an ID type. If you want to expose CRUD methods for that domain type, extend CrudRepository instead of Repository. 3.3.1 微调库定义 3.3.1. Fine-tuning repository definition 一般你的库接口会继承Repository, CrudRepository或者PagingAndSortingRepository。如果你不想继承Spring Data的接口,还有一种做法是将你的库接口注解为@RepositoryDefinition。继承CrudRepository将暴露一系列的操作实体的方法。如果你希望选择性的暴露这些方法,可以将想要暴露的方法从CrudRepository复制到你的域库中。 Typically…

阅读全文 Read More

3.2 查询方法

3.2 查询方法

3.2. Query methods 标准CRUD功能库通常都有各种查询。在Spring Data中,声明这些查询需要四个步骤: Standard CRUD functionality repositories usually have queries on the underlying datastore. With Spring Data, declaring those queries becomes a four-step process: 继承Repository或者它的一个子接口来声明一个接口,并定义其需要处理的域类的类型与ID类型。 Declare an interface extending Repository or one of its subinterfaces and type it to the domain class and ID type that it will handle. interface PersonRepository extends Repository<Person, Long> { … } 在此接口中声明查询方法。 Declare query methods on the interface. interface PersonRepository extends Repository<Person, Long> { List<Person> findByLastname(String lastname); } 设…

阅读全文 Read More

3.1 核心概念

3.1 核心概念

3.1. Core concepts 在Spring Data仓库抽象中的中心接口是Repository。此接口将其id作为参数并使用域类来管理。此接口主要作为一个标记接口来捕获起效的类型并帮助你发现继承此接口的类型。CrudRepository为管理的实体类提供了复杂的CRUD功能。 The central interface in Spring Data repository abstraction is Repository (probably not that much of a surprise). It takes the domain class to manage as well as the id type of the domain class as type arguments. This interface acts primarily as a marker interface to capture the types to work with and to help you to discover interfaces that extend this one. The CrudRepository provides sophisticated CRUD functionality for the entity class that is being managed. 例3:CrudRepository接口 Example 3. CrudRepository interf…

阅读全文 Read More

二分搜索 Binary search

二分搜索 Binary search

二分搜索也是比较常见的,在生活中的应用尤其广泛。比如在酒桌上玩猜数字,一个人坐庄先准备一个在一定范围内的数字,其余每个人轮流猜一次,庄说出是大了还是小了,说中的人喝。这个游戏玩过的人应该不少,其中肯定有许多人都是从中间开始猜,认为这样是比较快的排除方法。是的,这就是二分搜索。 二分搜索对于查找对象有要求,即有序。原理就是取其中间进行判断,如果未找到,则根据顺序关系再分别对两边其中的一个子区进行再次查找,直到找到或者未发现,搜索结束。 public static void main(String[] args) { int[] array = {1, 12, 13, 27, 34, 38, 49, 50, 64, 65, 76, 78, 97}; int target = 50; System.out.println(“result index:” + binarySearch(array, target)); } public static int binarySearch(int[] arr, int target) { int startPosition = 0; // 设置搜索的上下界 int endPosition = arr.length – 1; while (startPosition <= endPosition) { // 在搜索过程中,会逐渐缩小搜索范围 int midPosition = (startPosition + endPosition) / 2; // 确定中间…

阅读全文 Read More

顺序搜索 sequential search

顺序搜索 sequential search

顺序搜索是所有搜索算法中,最简单最无脑的,原理就是穷举,一个一个的比对,直到找到为止。所以对于被搜索的对象也没有任何要求,并不像其他的某些算法那样要求有序等等。 public static void main(String[] args) { int[] array = {49, 38, 65, 97, 76, 13, 27, 50, 78, 34, 12, 64, 1}; int target = 50; System.out.println(“result index:” + sequentialSearch(array, target)); } public static int sequentialSearch(int[] arr, int target) { for (int i = 0; i < arr.length; i++) { // 遍历整个数组 if (arr[i] == target) { // 如果找到,则返回对应的下标 return i; } } return -1; // -1表示未找到 }

创建批量服务

创建批量服务

创建批量服务 Creating a Batch Service 通过此教程你将创建一个基本的批量驱动的解决方案。 This guide walks you through the process of creating a basic batch-driven solution. 将要做什么 What you’ll build 你将创建一个从CSV中导入数据,转为自定义编码后并存入数据库的服务。 You’ll build a service that imports data from a CSV spreadsheet, transforms it with custom code, and stores the final results in a database. pom.xml <?xml version=”1.0″ encoding=”UTF-8″?> <project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”> <modelVersion>4.0.0</modelVersion> <grou…

阅读全文 Read More