1.使用idea搭建srpingboot項目
在pom.xml文件中引入如下的依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- swagger文檔相關依賴--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.1.2</version> </dependency> <!-- swagger文檔相關依賴上下2個依賴的版本號必須一致--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.1.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- mybatis相關依賴--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.2</version> </dependency> <!-- 使用阿里的druid數據庫連接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <!-- jdbc相關插件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>1.5.19.RELEASE</version> </dependency> <!-- mysql相關插件--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <!-- 分頁插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> <!-- 用來將對象轉成json和將json轉為對象 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.12</version> </dependency>
spring項目配置文件:application.yml,如果是application.properties,那么建議改成yml格式,配置如下:
server: port: 2300 spring: application: name: run datasource: druid: url: jdbc:mysql://192.168.50.117:23306/shop?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false username: shop password: shop filter: stat: db-type: mysql log-slow-sql: true slow-sql-millis: 3000 enabled: true wall: config: multi-statement-allow: true enabled: true filters: stat,wall #防御SQL注入的filter:wall initial-size: 1 #初始化連接數量 max-active: 10 #最大並發連接數 min-idle: 1 #最小空閑連接數 max-wait: 60000 #配置獲取連接等待超時的時間 time-between-eviction-runs-millis: 60000 #間隔多久才進行一次檢測 min-evictable-idle-time-millis: 300000 #一個連接在池中最小生存的時間 test-on-borrow: false test-on-return: false test-while-idle: true validation-query: SELECT 'lll' # 打開PSCache,並且指定每個連接上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 內置監控頁面的首頁是localhost:2300/druid/index.html 可以登錄sql監控頁 stat-view-servlet: enabled: true url-pattern: /druid/* login-username: flex login-password: flex reset-enable: false
//包結構如下創建:
//其中domain,mapper接口和mapper.xml可以通過mybatis生產工具生成.一般可以在百度下載一個生產工具,然后生成對應的類后就拷貝到項目來:
此處可以參考別人提供的方法:https://www.cnblogs.com/smileberry/p/4145872.html
如下是我下載的一個項目:
接着在主配置類上配上mapper的包掃描路徑:
@SpringBootApplication @MapperScan("com.example.demo.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
//創建service和實現類(具體分頁邏輯后面分析)
public interface IOrderMastService { ShopOrderMast getOrderMastByOrderId(String orderId); PageInfo<ShopOrderMast> selectOrderList(OrderQueryObject queryObject); } @Service public class OrderMastServiceImpl implements IOrderMastService{ private final static Logger logger = LoggerFactory.getLogger(OrderMastServiceImpl.class); @Autowired private ShopOrderMastMapper orderMastMapper; @Override public ShopOrderMast getOrderMastByOrderId(String orderId) { return orderMastMapper.findOrderByOrderId(orderId); } @Override public PageInfo<ShopOrderMast> selectOrderList(OrderQueryObject queryObject) { logger.info("請求參數:{}", JSON.toJSONString(queryObject)); PageHelper.startPage(queryObject.getCurrentNum(),queryObject.getPageSize()); List<ShopOrderMast> list= orderMastMapper.selectOrderList(queryObject); logger.info("返回值:{}", JSON.toJSONString(list)); return new PageInfo<>(list); } }
//mapper接口
@Repository
public interface ShopOrderMastMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int deleteByPrimaryKey(Long codId);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int insert(ShopOrderMast record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int insertSelective(ShopOrderMast record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
ShopOrderMast selectByPrimaryKey(Long codId);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int updateByPrimaryKeySelective(ShopOrderMast record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table shop_order_mast
*
* @mbggenerated
*/
int updateByPrimaryKey(ShopOrderMast record);
ShopOrderMast findOrderByOrderId(String orderId);
List<ShopOrderMast> selectOrderList(OrderQueryObject queryObject);
}
//controller
@Controller
@Api(value ="訂單",description ="訂單相關接口" ) //API注解是用來對類進行描述
public class ShopOrderController {
private final static Logger logger = LoggerFactory.getLogger(ShopOrderController.class);
@Autowired
private IOrderMastService orderMastService;
@RequestMapping(value = "shop/order/{orderId}",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value ="訂單查詢",notes ="通過訂單號查詢對應的訂單",httpMethod ="POST")//對該方法進行說明
public ShopOrderMast findOrderMastByOrderId(@PathVariable("orderId") String orderId){
return orderMastService.getOrderMastByOrderId(orderId);
}
@RequestMapping(value = "shop/order/list",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value ="訂單列表",notes ="訂單列表分頁查詢",httpMethod ="POST")//對該方法進行說明
public PageInfo<ShopOrderMast> findOrderMastByOrderId(@RequestBody OrderQueryObject queryObject){
return orderMastService.selectOrderList(queryObject);
}
}
mapper.xml(提供部分信息)
<select id="findOrderByOrderId" resultMap="BaseResultMap">
select * from shop_order_mast WHERE cod_order_id=#{orderId};
</select>
<select id="selectOrderList" resultMap="BaseResultMap">
select * from shop_order_mast WHERE flg_status_order=#{orderStatu} ORDER by dat_order_submit DESC
</select>
//分頁請求參數對象
public class QueryObject {
@ApiModelProperty("當前頁")
private int currentNum=1;
@ApiModelProperty("總頁數")
private int pageSize=10;
public int getCurrentNum() {
return currentNum;
}
public void setCurrentNum(int currentNum) {
this.currentNum = currentNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
public class OrderQueryObject extends QueryObject {
@ApiModelProperty("訂單狀態")
private int orderStatu;
public int getOrderStatu() {
return orderStatu;
}
public void setOrderStatu(int orderStatu) {
this.orderStatu = orderStatu;
}
}
分頁實現總結:
