项目学习《第四天》
RedisService
stringToBean
/*将字符串转换成任意类型*/
private <T> T stringToBean(String str, Class<T> clazz){
if(str == null || str.length() <= 0 || clazz == null){
return null;
}
if(clazz == int.class || clazz == Integer.class){
return (T) Integer.valueOf(str);
}else if(clazz == long.class || clazz == Long.class){
return (T) Long.valueOf(str);
}else if(clazz == String.class){
return (T) str;
} else {
return JSON.toJavaObject(JSON.parseObject(str),clazz);
}
}
惯例
使用完连接池后返回连接池
/*返回连接池*/
private void returnToPool(Jedis jedis){
if(jedis != null){
jedis.close();
}
}
以上三个方法是在使用redis服务的时候会用到方法。
下面开始就是一些redis服务操作。
从redis连接池中获取实例
/*从redis连接池中获取实例*/
public <T> T get(KeyPrefix prefix, String key, Class<T> clazz){
Jedis jedis = null;
try{
jedis = jedisPool.getResource(); //获取资源
String realKey = prefix.getPrefix() + key; //对key增加前缀,既可用于分类,也可避免key重复
String str = jedis.get(realKey); //得到键
T t = stringToBean(str,clazz); //转换成任意对象
return t;
}finally {
returnToPool(jedis);
}
}
惯例
存储对象
/*存储对象*/
public <T> Boolean set(KeyPrefix prefix, String key, T value){
Jedis jedis = null;
try {
jedis = jedisPool.getResource(); //获取资源
String str = beanToString(value); //将值转换成字符串
if(str ==null || str.length() <= 0){
return false; //值为空或不存在就返回false
}
String realKey = prefix.getPrefix() + key;
int seconds = prefix.expireSeconds(); //获取过期时间
/*判断是否过期*/
if(seconds <= 0){
jedis.set(realKey, str);
}else {
jedis.setex(realKey, seconds, str);
}
return true;
}finally {
returnToPool(jedis);
}
}
惯例
删除key以及判断key是否存在
/*删除key*/
public boolean del(KeyPrefix prefix, String key){
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
String realKey = prefix.getPrefix() + key;
Long del = jedis.del(realKey);
return del > 0;
}finally {
returnToPool(jedis);
}
}
/*判断key是否存在*/
public boolean exists(KeyPrefix prefix, String key){
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
String realKey = prefix.getPrefix() + key;
return jedis.exists(realKey);
}finally {
returnToPool(jedis);
}
}
惯例
OrderMapper
/*order表SQL语句*/
@Mapper
@Repository
public interface OrderMapper {
@Delete("delete from tb_order where order_ id=#{orderId}")
int deleteByPrimaryKey(String orderId);
@Insert("insert into tb_order(order_id, payment, payment_type,post_fee, status, create_time, update_time, payment_time, consign_time, end_time, close_time, shipping_name, shipping_code, user_id, buyer_message, buyer_nick, buyer_rate) values (#{orderId}, #{payment}, #{paymentType},#{postFee}, #{status}, #{createTime},#{updateTime}, #{paymentTime}, #{consignTime},#{endTime}, #{closeTime}, #{shippingName},#{shippingCode}, #{userId}, #{buyerMessage},#{buyerNick}, #{buyerRate)")
int insert(Order record);
@Select("select order_id, payment, payment_type, post_fee, status, create_time, update_time, payment_time, consign_time, end_time, close_time, shipping_name, shipping_code, user_id,buyer_message, buyer_nick, buyer_rate from tb_order where order_id=#{orderId}")
Order selectByPrimaryKey(String orderId);
@Select("select order_id, payment, payment_type, post_fee, status, create_time, update_time,payment_time, consign_time, end_time, close_time, shipping_name, shipping_code, user_id,buyer_message, buyer_nick, buyer_rate from tb_order where order_id is not null AND payment_type=#{paymentType} AND status = #{status} AND create_time BETWEEN #{minOrderTime} AND #{maxOrderTime}ORDER BY create_time limit #{start},#{end}")
List<Order> list(Order order);
@Select("select order_id, payment, payment_type, post_fee, status, create_time, update_time, payment_time, consign_time, end_time, close_time, shipping_name, shipping_code, user_id,buyer_message, buyer_nick, buyer_rate, refundStatus, refundReason, isRefund from tb_order where isRefund = 1 AND refundStatus = #{refundStatus} limit #{start},#{end}")
List<Order> listRefund(Order order);
@Select("select order_id, payment, payment_type, post_fee, status, create_time, update_time, payment_time, consign_time, end_time, close_time, shipping_name, shipping_code, user_id,buyer_message, buyer_nick, buyer_rate from tb_order")
List<Order> selectAll();
@Select("select count(*) from tb_order where date_format( create_time, '%Y-%m') = date_format(now(), '%Y-%m')")
Integer selectCurOrderNum();
@Select("select count(*) from tb_order where period_diff(date_format(now(),'%Y%m'), date_format(create_time,'%Y%m')) = 1")
Integer selectLastOrderNum();
@Select("SELECT SUM(payment) FROM tb_order where status = 5 AND date_format(create_time, '%Y-%m') = date_format(now(), '%Y-%m')")
Long selectCurPayment();
@Select("SELECT SUM(payment) FROM tb_order where status = 5 AND period_diff(date_format(now(),'%Y%m'), date_format(create_time,'%Y%m')) = 1")
Long selectLastPayment();
@Select("SELECT count(*) FROM tb_order where date_format(update_time, '%Y-%m') = date_format(now(), '%Y-%m') AND refundStatus = 3")
Integer selectCurRefundOrder();
@Select("SELECT count(*) FROM tb_order where period_diff(date_format(now(),'%Y%m'), date_format(update_time,'%Y%m')) = 1 AND refundStatus = 3")
Integer selectLastRefundOrder();
@Select("SELECT sum(payment) FROM tb_order WHERE create_time BETWEEN #{createTime, jdbcType=DATE} AND date_add(#{createTime, jdbcType=DATE}, interval 1 day)")
Integer selectDayOrderSum(Order order);
@Select("SELECT count(*) FROM tb_order WHERE create_time BETWEEN #{createTime, jdbcType=DATE} AND date_add(#{createTime, jdbcType=DATE}, interval 1 day)")
Integer selectDayOrderNum(Order order);
@Update("update tb_order set refundStatus=#{refundStatus where order_id=#{orderId}")
Integer updateByPrimaryKey(Order record);
}
service层就不发出来了(真的觉得写sql语句需要很大的细心和耐心,我是看晕了写晕了还花了很久时间