package com.cn.fb.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory = null;
private static final ThreadLocal t = new ThreadLocal<>();
static {
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession openSession() {
SqlSession sqlSession = t.get();
if (sqlSession == null) {
sqlSession = sqlSessionFactory.openSession();
t.set(sqlSession);
}
return sqlSession;
}
public static void closeSqlSession() {
SqlSession sqlSession = t.get();
if (sqlSession != null) {
sqlSession.close();
t.remove();
}
}
public static void commit() {
SqlSession sqlSession = openSession();
sqlSession.commit();
closeSqlSession();
}
public static void rollback() {
SqlSession sqlSession = openSession();
sqlSession.rollback();
closeSqlSession();
}
public static T getMapper(Class clazz) {
SqlSession sqlSession = openSession();
return sqlSession.getMapper(clazz);
}
}
2、实体
UsersEntity
package com.cn.fb.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UsersEntity implements Serializable {
private Integer userId;
private String userName;
private String password;
private String nickName;
private String realName;
private String userImg;
private String userMobile;
private String userEmail;
private String userSex;
private Date userBirth;
private Date userRegisterTime;
private Date userUpdateTime;
private List ordersEntityList;
}
OrdersEntity
package com.cn.fb.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrdersEntity implements Serializable {
private String orderId;
private Integer userId;
private String untitled;
private String receiverName;
private String receiverMobile;
private String receiverAddress;
private BigDecimal totalAmount;
private BigDecimal actualAmount;
private Integer payType;
private String orderRemark;
private Integer status;
private String deliveryType;
private String deliveryNum;
private BigDecimal orderFreight;
private Integer deleteStatus;
private Date createTime;
private Date updateTime;
private Date payTime;
private Date deliveryTime;
private Date finishTime;
private Date cancelTime;
private Integer closeType;
private List ordersDetailsEntityList;
}
OrdersDetailsEntity
package com.cn.fb.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrdersDetailsEntity implements Serializable {
private Integer id;
private String orderId;
private Integer productId;
private String productName;
private String productImg;
private BigDecimal productPrice;
private Integer count;
private BigDecimal totalAmount;
private Date buyTime;
private Integer commentStatus;
}
3、mybatis核心配置文件
mybatis-config.xml
4、配置UsersMapper.xml
SELECT u.user_id, u.username, u.PASSWORD, u.nickname, u.realname, u.user_img, u.user_mobile, u.user_email, u.user_sex, u.user_birth, u.user_regtime, u.user_modtime, o.order_id, o.user_id, o.untitled, o.receiver_name, o.receiver_mobile, o.receiver_address, o.total_amount, o.actual_amount, o.pay_type, o.order_remark, o.STATUS, o.delivery_type, o.delivery_num, o.order_freight, o.delete_status, o.create_time, o.update_time, o.pay_time, o.delivery_time, o.flish_time, o.cancel_time, o.close_type, d.id, d.order_id, d.product_id, d.product_name, d.product_img, d.product_price, d.count, d.total_amount, d.buy_time, d.comment_status FROM users u LEFT JOIN orders o ON u.user_id = o.user_id LEFT JOIN orders_details d ON o.order_id = d.order_id



