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;
}
}
分頁實現總結:

