diff --git a/mystyle-cloud-file/pom.xml b/mystyle-cloud-file/pom.xml
index b52a4ee..09e2542 100644
--- a/mystyle-cloud-file/pom.xml
+++ b/mystyle-cloud-file/pom.xml
@@ -10,6 +10,18 @@
4.0.0
mystyle-cloud-file
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 7
+ 7
+
+
+
+
@@ -41,5 +53,16 @@
org.springframework.cloud
spring-cloud-sleuth-zipkin
+
+
+ net.oschina.zcx7878
+ fastdfs-client-java
+
+
+
+ com.zhangmeng
+ mystyle-cloud-model
+ 1.0-SNAPSHOT
+
\ No newline at end of file
diff --git a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/FileApplication.java b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/FileApplication.java
index 2234029..0e04346 100644
--- a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/FileApplication.java
+++ b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/FileApplication.java
@@ -4,10 +4,17 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+/**
+ * @author zhangmeng
+ * @date 2021年11月1日11:21:28
+ * @version 1.0
+ */
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
+@ComponentScan(basePackages = {"com.zhangmeng.model","com.zhangmeng.file"})
public class FileApplication {
public static void main(String[] args) {
diff --git a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/controller/FileController.java b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/controller/FileController.java
index 11955cd..b315fa8 100644
--- a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/controller/FileController.java
+++ b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/controller/FileController.java
@@ -1,20 +1,35 @@
package com.zhangmeng.file.controller;
import com.zhangmeng.file.feign.UserFeignService;
+import com.zhangmeng.file.service.FileService;
+import com.zhangmeng.model.base.baseController.BaseController;
+import com.zhangmeng.model.entity.FileInfo;
+import com.zhangmeng.model.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
+/**
+ * @author zhangmeng
+ * @date 2021年11月1日11:21:28
+ * @version 1.0
+ */
@RestController
@RequestMapping("/file")
-public class FileController {
+public class FileController extends BaseController {
@Autowired
private UserFeignService userFeignService;
- @GetMapping("/name")
- public String file_name(String name){
- return this.userFeignService.hi(name);
+ @Autowired
+ private FileService fileService;
+
+ @GetMapping("/list")
+ public Result list(){
+ List all = this.fileService.findAll();
+ return this.success("查询成功",all);
}
}
diff --git a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/dao/FileInfoDao.java b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/dao/FileInfoDao.java
new file mode 100644
index 0000000..d22693e
--- /dev/null
+++ b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/dao/FileInfoDao.java
@@ -0,0 +1,15 @@
+package com.zhangmeng.file.dao;
+
+import com.zhangmeng.model.base.baseDao.AbstractBaseMapper;
+import com.zhangmeng.model.entity.FileInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * @author zhangmeng
+ * @version 1.0
+ * @date 2021年1月8日09:46:19
+ */
+@Mapper
+public interface FileInfoDao extends AbstractBaseMapper {
+}
diff --git a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/service/FileService.java b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/service/FileService.java
new file mode 100644
index 0000000..82da6ff
--- /dev/null
+++ b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/service/FileService.java
@@ -0,0 +1,8 @@
+package com.zhangmeng.file.service;
+
+import com.zhangmeng.model.base.baseService.BaseService;
+import com.zhangmeng.model.dto.File;
+import com.zhangmeng.model.entity.FileInfo;
+
+public interface FileService extends BaseService {
+}
diff --git a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/service/impl/FileServiceImpl.java b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/service/impl/FileServiceImpl.java
new file mode 100644
index 0000000..63f0b71
--- /dev/null
+++ b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/service/impl/FileServiceImpl.java
@@ -0,0 +1,11 @@
+package com.zhangmeng.file.service.impl;
+
+import com.zhangmeng.file.service.FileService;
+import com.zhangmeng.model.base.baseService.impl.AbstractBaseServiceImpl;
+import com.zhangmeng.model.dto.File;
+import com.zhangmeng.model.entity.FileInfo;
+import org.springframework.stereotype.Service;
+
+@Service
+public class FileServiceImpl extends AbstractBaseServiceImpl implements FileService {
+}
diff --git a/mystyle-cloud-file/src/main/java/com/zhangmeng/file/utils/FastDfsClient.java b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/utils/FastDfsClient.java
new file mode 100644
index 0000000..fd117bb
--- /dev/null
+++ b/mystyle-cloud-file/src/main/java/com/zhangmeng/file/utils/FastDfsClient.java
@@ -0,0 +1,195 @@
+package com.zhangmeng.file.utils;
+
+import org.csource.common.NameValuePair;
+import org.csource.fastdfs.*;
+import org.springframework.core.io.ClassPathResource;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class FastDfsClient {
+
+ static {
+ //从classpath下获取文件对象获取路径
+ String path = new ClassPathResource("fastDFS.config").getPath();
+ try {
+ ClientGlobal.init(path);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 图片上传
+ *
+ * @param file
+ * @return
+ */
+ public static String[] upload(com.zhangmeng.model.dto.File file) {
+ try {
+ TrackerClient trackerClient = new TrackerClient();
+ TrackerServer trackerServer = trackerClient.getConnection();
+ StorageClient storageClient = new StorageClient(trackerServer, null);
+ //参数1 字节数组
+ //参数2 扩展名(不带点)
+ //参数3 元数据( 文件的大小,文件的作者,文件的创建时间戳)
+ NameValuePair[] meta_list = new NameValuePair[]{new NameValuePair(file.getAuthor()), new NameValuePair(file.getName())};
+ String[] strings = storageClient.upload_file(file.getContent(), file.getExt(), meta_list);
+ return strings;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+ /**
+ * 图片下载
+ *
+ * @param groupName
+ * @param remoteFileName
+ * @return
+ */
+ public static InputStream downFile(String groupName, String remoteFileName) {
+ ByteArrayInputStream byteArrayInputStream = null;
+ try {
+ //3.创建trackerclient对象
+ TrackerClient trackerClient = new TrackerClient();
+ //4.创建trackerserver 对象
+ TrackerServer trackerServer = trackerClient.getConnection();
+ //5.创建stroageserver 对象
+ //6.创建storageclient 对象
+ StorageClient storageClient = new StorageClient(trackerServer, null);
+ //7.根据组名 和 文件名 下载图片
+
+ //参数1:指定组名
+ //参数2 :指定远程的文件名
+ byte[] bytes = storageClient.download_file(groupName, remoteFileName);
+ byteArrayInputStream = new ByteArrayInputStream(bytes);
+ return byteArrayInputStream;
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (byteArrayInputStream != null) {
+ byteArrayInputStream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * 图片删除
+ *
+ * @param groupName
+ * @param remoteFileName
+ */
+ public static void deleteFile(String groupName, String remoteFileName) {
+ try {
+ //3.创建trackerclient对象
+ TrackerClient trackerClient = new TrackerClient();
+ //4.创建trackerserver 对象
+ TrackerServer trackerServer = trackerClient.getConnection();
+ //5.创建stroageserver 对象
+ //6.创建storageclient 对象
+ StorageClient storageClient = new StorageClient(trackerServer, null);
+ int i = storageClient.delete_file(groupName, remoteFileName);
+ if (i == 0) {
+ System.out.println("删除成功");
+ } else {
+ System.out.println("删除失败");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ //根据组名获取组的信息
+
+ public static StorageServer getStorages(String groupName) {
+ try {
+ TrackerClient trackerClient = new TrackerClient();
+ //4.创建trackerserver 对象
+ TrackerServer trackerServer = trackerClient.getConnection();
+
+ //参数1 指定traqckerserver 对象
+ //参数2 指定组名
+ StorageServer group1 = trackerClient.getStoreStorage(trackerServer, groupName);
+ return group1;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //根据文件名和组名获取文件的信息
+
+ public static FileInfo getFile(String groupName, String remoteFileName) {
+ try {
+ TrackerClient trackerClient = new TrackerClient();
+ //4.创建trackerserver 对象
+ TrackerServer trackerServer = trackerClient.getConnection();
+
+ StorageClient storageClient = new StorageClient(trackerServer, null);
+
+ //参数1 指定组名
+ //参数2 指定文件的路径
+ FileInfo fileInfo = storageClient.get_file_info(groupName, remoteFileName);
+ return fileInfo;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+ /**
+ * 根据文件名和组名 获取组信息的数组信息
+ *
+ * @param groupName
+ * @param remoteFileName
+ * @return ServerInfo[]
+ */
+ public static ServerInfo[] getServerInfo(String groupName, String remoteFileName) {
+ try {
+ //3.创建trackerclient对象
+ TrackerClient trackerClient = new TrackerClient();
+ //4.创建trackerserver 对象
+ TrackerServer trackerServer = trackerClient.getConnection();
+
+ ServerInfo[] group1s = trackerClient.getFetchStorages(trackerServer, groupName, remoteFileName);
+ return group1s;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+
+ }
+
+
+ /**
+ * 获取tracker 的ip和端口的信息
+ *
+ * @return
+ */
+ public static String getTrackerUrl() {
+ try {
+ //3.创建trackerclient对象
+ TrackerClient trackerClient = new TrackerClient();
+ //4.创建trackerserver 对象
+ TrackerServer trackerServer = trackerClient.getConnection();
+ //tracker 的ip的信息
+ String hostString = trackerServer.getInetSocketAddress().getHostString();
+ int g_tracker_http_port = ClientGlobal.getG_tracker_http_port();
+ return "http://" + hostString + ":" + g_tracker_http_port;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/mystyle-cloud-file/src/main/resources/application.yml b/mystyle-cloud-file/src/main/resources/application.yml
index 1abad38..bbee4e4 100644
--- a/mystyle-cloud-file/src/main/resources/application.yml
+++ b/mystyle-cloud-file/src/main/resources/application.yml
@@ -1,9 +1,23 @@
server:
port: 8763
-
spring:
application:
name: mystyle-cloud-file
+ datasource:
+ username: root
+ password: root
+ url: jdbc:mysql://127.0.0.1:3306/mystyle-blog?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ jpa:
+ database: mysql
+ hibernate:
+ ddl-auto: update
+ naming:
+ physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+ show-sql: true
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.MySQL5Dialect
zipkin:
sender:
type: web
@@ -16,4 +30,14 @@ spring:
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
\ No newline at end of file
+ server-addr: 127.0.0.1:8848
+mybatis:
+ type-aliases-package: com.zhangmeng.domain.blog
+ configuration:
+ mapUnderscoreToCamelCase: true
+ default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler
+mapper:
+ style: normal
+ enum-as-simple-type: true
+ identity: MYSQL
+ check-example-entity-class: true
\ No newline at end of file
diff --git a/mystyle-cloud-file/src/main/resources/fastDFS.config b/mystyle-cloud-file/src/main/resources/fastDFS.config
new file mode 100644
index 0000000..0ede43f
--- /dev/null
+++ b/mystyle-cloud-file/src/main/resources/fastDFS.config
@@ -0,0 +1,5 @@
+connect_timeout=60
+network_timeout=60
+charset=UTF-8
+http.tracker_http_port=8081
+tracker_server=192.168.52.165:22122
\ No newline at end of file
diff --git a/mystyle-cloud-model/pom.xml b/mystyle-cloud-model/pom.xml
new file mode 100644
index 0000000..12b453a
--- /dev/null
+++ b/mystyle-cloud-model/pom.xml
@@ -0,0 +1,72 @@
+
+
+
+ mystyle-cloud-parent
+ com.zhangmeng
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ mystyle-cloud-model
+ 实体数据相关
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 6
+ 6
+
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+
+ tk.mybatis
+ mapper-spring-boot-starter
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jdbc
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
\ No newline at end of file
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/BaseController.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/BaseController.java
new file mode 100644
index 0000000..0d927e1
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/BaseController.java
@@ -0,0 +1,31 @@
+package com.zhangmeng.model.base.baseController;
+
+import com.zhangmeng.model.vo.Result;
+import com.zhangmeng.model.vo.StatusCode;
+
+public class BaseController extends ResponseController {
+
+ protected Result success(){
+ return new Result(true, StatusCode.OK,"成功");
+ }
+
+ protected Result success(String message){
+ return new Result(true,StatusCode.OK,message);
+ }
+
+ protected Result success(String message,Object data){
+ return new Result(true,StatusCode.OK,message,data);
+ }
+
+ protected Result failure() {
+ return new Result(false,StatusCode.ERROR,"失败");
+ }
+
+ protected Result failure(String message) {
+ return new Result(false,StatusCode.ERROR,message);
+ }
+
+ protected Result failure(String message,Object data) {
+ return new Result(false,StatusCode.ERROR,message,data);
+ }
+}
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/ResponseController.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/ResponseController.java
new file mode 100644
index 0000000..40601a4
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/ResponseController.java
@@ -0,0 +1,5 @@
+package com.zhangmeng.model.base.baseController;
+
+public class ResponseController extends ResultController{
+
+}
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/ResultController.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/ResultController.java
new file mode 100644
index 0000000..becc277
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseController/ResultController.java
@@ -0,0 +1,59 @@
+package com.zhangmeng.model.base.baseController;
+
+import com.zhangmeng.model.vo.ResultTree;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.util.Map;
+
+public class ResultController {
+
+ protected HttpServletRequest request;
+
+ protected HttpServletResponse response;
+
+ protected HttpSession session;
+
+ @ModelAttribute
+ public void setReqAndRes(HttpServletRequest request, HttpServletResponse response) {
+
+ this.request = request;
+
+ this.response = response;
+
+ this.session = request.getSession();
+ }
+
+ /**
+ * 页面跳转
+ * */
+ protected ModelAndView jumpPage(String path){
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName(path);
+ return modelAndView;
+ }
+
+ /**
+ * 带参数的页面跳转
+ * */
+ public ModelAndView jumpPage(String path, Map params){
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName(path);
+ modelAndView.addAllObjects(params);
+ return modelAndView;
+ }
+
+ /**
+ * Describe: 返回 Tree 数据
+ * Param data
+ * Return Tree数据
+ * */
+ protected static ResultTree dataTree(Object data){
+ ResultTree resuTree = new ResultTree();
+ resuTree.setData(data);
+ return resuTree;
+ }
+}
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseDao/AbstractBaseMapper.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseDao/AbstractBaseMapper.java
new file mode 100644
index 0000000..d90b706
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseDao/AbstractBaseMapper.java
@@ -0,0 +1,19 @@
+package com.zhangmeng.model.base.baseDao;
+
+import com.zhangmeng.model.base.baseEntity.BaseEntity;
+import tk.mybatis.mapper.additional.insert.InsertListMapper;
+import tk.mybatis.mapper.annotation.RegisterMapper;
+import tk.mybatis.mapper.common.BaseMapper;
+import tk.mybatis.mapper.common.ConditionMapper;
+import tk.mybatis.mapper.common.ExampleMapper;
+import tk.mybatis.mapper.common.IdsMapper;
+
+/**
+ * @param
+ * @author zhangmeng
+ * @version 1.0
+ * @date 2020年11月13日09:55:03
+ */
+@RegisterMapper
+public interface AbstractBaseMapper> extends BaseMapper, ConditionMapper, InsertListMapper, IdsMapper, ExampleMapper {
+}
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseDao/JpaDataAccessObject.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseDao/JpaDataAccessObject.java
new file mode 100644
index 0000000..66c516d
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseDao/JpaDataAccessObject.java
@@ -0,0 +1,9 @@
+package com.zhangmeng.model.base.baseDao;
+
+import com.zhangmeng.model.base.baseEntity.BaseEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+//数据访问层
+public interface JpaDataAccessObject > extends JpaRepository, JpaSpecificationExecutor {
+}
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseEntity/BaseEntity.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseEntity/BaseEntity.java
new file mode 100644
index 0000000..b0b0bf3
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseEntity/BaseEntity.java
@@ -0,0 +1,34 @@
+package com.zhangmeng.model.base.baseEntity;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author zhangmeng
+ * @version 1.0
+ * @date 2020年11月13日09:58:11
+ * @param
+ */
+@Data
+@MappedSuperclass
+@JsonIgnoreProperties(ignoreUnknown = true, value = {"hibernateLazyInitializer", "handler", "fieldHandler"})
+public class BaseEntity implements Serializable {
+
+ @Id //主键id
+ @GeneratedValue(strategy= GenerationType.IDENTITY)//主键生成策略
+ @Column(name="id")//数据库字段名
+ private ID id;
+
+ @Column(name = "addTime",length = 0)
+ private Date addTime = new Date();
+
+ @Column(name = "updateTime",length = 0)
+ private Date updateTime = new Date();
+
+ @Column(name = "deleteStatus")
+ private Boolean deleteStatus = false;
+}
diff --git a/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseService/BaseService.java b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseService/BaseService.java
new file mode 100644
index 0000000..71b10a4
--- /dev/null
+++ b/mystyle-cloud-model/src/main/java/com/zhangmeng/model/base/baseService/BaseService.java
@@ -0,0 +1,70 @@
+package com.zhangmeng.model.base.baseService;
+
+import com.github.pagehelper.PageInfo;
+
+import com.zhangmeng.model.base.baseEntity.BaseEntity;
+import com.zhangmeng.model.dto.JpaQueryData;
+import com.zhangmeng.model.dto.QueryParams;
+import com.zhangmeng.model.dto.QueryResult;
+import com.zhangmeng.model.dto.QuerySingleParams;
+import com.zhangmeng.model.vo.Result;
+import org.springframework.lang.NonNull;
+import tk.mybatis.mapper.entity.Condition;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @param
+ * @author zhangmeng
+ * @version 1.0
+ * @date 2020年11月13日09:55:45
+ */
+public interface BaseService> {
+
+ public void save(T model);//持久化
+
+ public void save(List models);//批量持久化
+
+ public void deleteById(Long id);//通过主鍵刪除
+
+ public void deleteByIds(String ids);//批量刪除 eg:ids -> “1,2,3,4”
+
+ public void update(T model);//更新
+
+ public T findById(Long id);//通过ID查找
+
+ public List findByObj(T t);
+
+ public List findByIds(String ids);//通过多个ID查找//eg:ids -> “1,2,3,4”
+
+ public List findByCondition(Condition condition);//根据条件查找
+
+ public List findAll();//获取所有
+
+ public List findAll(QueryParams queryParams);
+
+ public List