DAO-Service-Controller

DAO

package com.changgou.goods.dao;
import com.changgou.goods.pojo.Brand;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface BrandMapper extends Mapper<Brand> {

    @Select(value="select tb.* from tb_brand tb ,tb_category_brand tbc where tb.id = tbc.brand_id and tbc.category_id=#{categoryid}")
    List<Brand> findByCategory(Integer categoryid);
}

Service

import com.changgou.goods.service.AlbumService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import tk.mybatis.mapper.entity.Example;
import java.util.List;

@Service
public class AlbumServiceImpl implements AlbumService {

    @Autowired
    private AlbumMapper albumMapper;
    @Override
    public PageInfo<Album> findPage(Album album, int page, int size){
        //分页
        PageHelper.startPage(page,size);
        //搜索条件构建
        Example example = createExample(album);
        //执行搜索
        return new PageInfo<Album>(albumMapper.selectByExample(example));
    }
     @Override
    public Album findById(Long id){
        return  albumMapper.selectByPrimaryKey(id);
    }

Controller

package com.changgou.goods.controller;
import com.changgou.goods.pojo.Album;
import com.changgou.goods.service.AlbumService;
import com.github.pagehelper.PageInfo;
import entity.Result;
import entity.StatusCode;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;


@RestController
@RequestMapping("/album")
@CrossOrigin
public class AlbumController {

    @Autowired
    private AlbumService albumService;
    
    @PostMapping(value = "/search/{page}/{size}" )
    public Result<PageInfo> findPage(@RequestBody(required = false)  Album album, @PathVariable  int page, @PathVariable  int size){
        //调用AlbumService实现分页条件查询Album
        PageInfo<Album> pageInfo = albumService.findPage(album, page, size);
        return new Result(true,StatusCode.OK,"查询成功",pageInfo);
    }
    
    @GetMapping(value = "/search/{page}/{size}" )
    public Result<PageInfo> findPage(@PathVariable  int page, @PathVariable  int size){
        //调用AlbumService实现分页查询Album
        PageInfo<Album> pageInfo = albumService.findPage(page, size);
        return new Result<PageInfo>(true,StatusCode.OK,"查询成功",pageInfo);
    }
<think>好的,用户想查找关于DAOService、Entity、ServiceImpl和JRES部署相关的信息或解决方案。我需要先理解这些组件的定义和它们在项目中的角色,然后结合提供的引用内容来整理结构。 首先,根据引用4,Entity层对应数据库中的表结构,通常用类表示。DAO层负责数据库操作,比如增删改查。Service层定义业务逻辑接口,ServiceImpl则是具体实现,调用DAO的方法。例如引用1中的UserServiceImpl继承了ServiceImpl,并实现UserService接口,这里可以添加自定义业务方法。 接下来是JRES部署,用户可能指的是Java企业级应用的部署环境,比如使用Tomcat、Spring Boot内嵌容器等。需要说明打包方式(如WAR或JAR),配置数据库连接,以及可能的依赖管理。 需要确保各部分的分层清晰,比如Entity对应数据模型,DAO处理数据访问,Service处理业务逻辑,ServiceImpl实现服务接口,Controller处理请求。引用3提到开发顺序:先写Entity,再Service接口,复制到DAOServiceImpl调用DAO,最后配置映射文件。这可能涉及MyBatis的XML配置,如引用3中的map文件。 最后,生成的相关问题需要涵盖各层的作用、交互方式、常见框架以及部署步骤。例如如何设计Entity类,DAOServiceImpl如何协作,JRES部署的具体步骤等。</think>### DAOService、Entity、ServiceImpl与JRES部署实现指南 #### 1. **分层架构定义** - **Entity层**:对应数据库表结构的Java类,用于封装数据对象。例如: ```java public class User { private Long id; private String name; // getter/setter } ``` - **DAO层(Data Access Object)**:负责数据库操作,直接与数据库交互。常用框架如MyBatis、JPA[^4]。 - **Service层**:定义业务逻辑接口,如引用2中的`HlsCusRptRimProjectDetailService`声明了方法`rptRimProjectDetailQuery`[^2]。 - **ServiceImpl层**:实现Service接口,调用DAO方法完成业务逻辑。如引用1中的`UserServiceImpl`继承`ServiceImpl`并实现自定义方法[^1]。 - **Controller层**:处理HTTP请求,调用Service方法返回结果。 #### 2. **具体实现步骤** 1. **编写Entity类**:根据数据库表结构定义字段和关联关系。 2. **定义Service接口**:声明业务方法(如查询、更新),如引用3中先编写Service接口[^3]。 3. **实现DAO层**: - 使用MyBatis时,编写Mapper接口及XML映射文件(SQL语句)。 - 如引用3所述,将Service接口方法复制到DAO层,并在XML中配置对应SQL[^3]。 4. **实现ServiceImpl**: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Autowired private UserMapper userMapper; // 调用DAO方法 @Override public List<User> findActiveUsers() { return userMapper.selectByStatus(1); } } ``` 5. **Controller调用Service**: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public List<User> getUsers() { return userService.findActiveUsers(); } } ``` #### 3. **JRES部署实现** - **打包方式**:使用Maven/Gradle构建为JAR或WAR文件。 - **依赖配置**:确保`pom.xml`中包含Spring Boot、MyBatis-Plus等依赖(如引用1中的`mybatis-plus-extension`)[^1]。 - **数据库连接**:在`application.yml`中配置数据源: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/db username: root password: 123456 ``` - **部署到JRES**:若使用Spring Boot内嵌Tomcat,直接通过`java -jar app.jar`启动;传统WAR包需部署到外部Tomcat。 #### 4. **常见问题与优化** - **事务管理**:在Service方法添加`@Transactional`注解。 - **性能优化**:DAO层使用批量操作,Service层缓存高频数据。 - **日志监控**:集成Log4j2或SLF4J记录运行日志。 --- 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值