package cn.vaefun.test;
import cn.vaefun.mapper.CategoryMapper;
import cn.vaefun.pojo.Category;
import cn.vaefun.pojo.Order;
import cn.vaefun.pojo.OrderItem;
import cn.vaefun.pojo.Product;
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;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestMybatis {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session=sqlSessionFactory.openSession();
CategoryMapper mapper = session.getMapper(CategoryMapper.class);
//insertCategory(session); //deleteCategory(session); //getCategory(session); //updateCategory(session); //listAll(session);
//listCategoryByName(session); //listCategoryByIdAndName(session);
//listCategory(session); //listProductNTo1(session); //addOrederItem(session); //deleteOrderItem(session); //listOrder(session); //updateProduct(session); //listAllProduct(session); //listProductByName(session);
//addCategory(mapper); //deleteCategory(mapper); updateCategory(mapper);
session.commit();
session.close();
}
/*** 显示所有* @param session*/
public static void listAll(SqlSession session){
List cs=session.selectList("listCategory2");
for (Category c : cs) {
System.out.println(c.getId()+"\t"+c.getName());
}
// List products=session.selectList("listProduct");// for (Product p : products) {// System.out.println(p.getId());// System.out.println(p.getName());// System.out.println(p.getPrice());// } }
/*** 添加* @param session*/
public static void insertCategory(SqlSession session){
Category c = new Category();
c.setName("这是insert的Category");
c.setId(5);
session.insert("addCategory",c);
}
/*** 删除* @param session*/
public static void deleteCategory(SqlSession session){
Category c = new Category();
c.setId(5);
session.delete("deleteCategory",c);
}
/*** 查找* @param session*/
public static void getCategory(SqlSession session){
Category c = session.selectOne("getCategory",3);
System.out.println(c.getName()+c.getId());
}
/*** 修改* @param session*/
public static void updateCategory(SqlSession session){
Category c = session.selectOne("getCategory",4);
c.setName("修改过的Category");
session.update("updateCategory",c);
}
/*** 模糊查找:%cat%* @param session*/
public static void listCategoryByName(SqlSession session){
List categoryList = session.selectList("listCategoryByName","cat");
for (Category c :
categoryList) {
System.out.println(c.getName());
}
}
/*** 多条件查询* @param session*/
public static void listCategoryByIdAndName(SqlSession session){
Map map = new HashMap();
map.put("id",1);
map.put("name","cat");
List categoryList = session.selectList("listCategoryByIdAndName",map);
for (Category c :
categoryList) {
System.out.println(c.getId()+"\t"+c.getName());
}
}
/*** 一对多*/
public static void listCategory(SqlSession session){
List cs = session.selectList("listCategoryP");
for (Category c : cs) {
System.out.println(c);
List ps = c.getProducts();
for (Product p : ps) {
System.out.println("\t"+p);
}
}
}
/*** 多对一查询* @param session*/
public static void listProductNTo1(SqlSession session){
List productList = session.selectList("listProductNTo1");
for (Product p :
productList) {
System.out.println(p+"对应的分类是\t"+p.getCategory());
}
}
/*** 多对多查询* @param session*/
public static void listOrder(SqlSession session){
List orders = session.selectList("listOrder");
for (Order order : orders) {
System.out.println(order.getCode());
List orderItems = order.getOrderItems();
for (OrderItem orderItem : orderItems) {
System.out.format("\t%s\t%f\t%d%n",orderItem.getProduct().getName(),
orderItem.getProduct().getPrice(),orderItem.getNumber());
}
}
}
/*** 添加一个OrderItem* @param session*/
public static void addOrederItem(SqlSession session){
Order order = session.selectOne("getOrder",1);
Product product = session.selectOne("getProduct",6);
OrderItem orderItem = new OrderItem();
orderItem.setProduct(product);
orderItem.setOrder(order);
orderItem.setNumber(109);
session.insert("addOrderItem",orderItem);
}
/*** 删除OrderItem* @param session*/
public static void deleteOrderItem(SqlSession session){
Order order = session.selectOne("getOrder",1);
Product product = session.selectOne("getProduct",6);
OrderItem orderItem = new OrderItem();
orderItem.setOrder(order);
orderItem.setProduct(product);
session.delete("deleteOrderItem",orderItem);
}
/*** 查询所有的Product* @param session*/
public static void listAllProduct(SqlSession session){
List products = session.selectList("listAllProduct");
System.out.println("查询所有的");
for (Product p :
products) {
System.out.println(p);
}
}
/*** 模糊查找* @param session*/
public static void listProductByName(SqlSession session){
Map map = new HashMap<>();
map.put("name","a");
map.put("price",80);
List products = session.selectList("listAllProduct",map);
System.out.println("模糊查找");
for (Product p :
products) {
System.out.println(p);
}
}
/*** 更新商品* @param session*/
public static void updateProduct(SqlSession session){
Product product = session.selectOne("getProduct",3);
//System.out.println(product); product.setName("product d");
product.setPrice((float) 99.99);
//System.out.println(product); session.update("updateProduct",product);
}
/*** 添加一个Category* @param mapper*/
private static void addCategory(CategoryMapper mapper){
Category category = new Category();
category.setName("新增的Category");
mapper.add(category);
listCategory(mapper);
}
/*** 删除一个Category* @param mapper*/
private static void deleteCategory(CategoryMapper mapper){
mapper.delete(4);
listCategory(mapper);
}
/*** 修改category* @param mapper*/
private static void updateCategory(CategoryMapper mapper){
Category category = mapper.get(3);
category.setName("修改过的Category");
mapper.update(category);
listCategory(mapper);
}
/*** 显示所有的Category* @param mapper*/
private static void listCategory(CategoryMapper mapper){
List categoryList = mapper.list();
for (Category c :
categoryList) {
System.out.println(c.getId()+"\t"+c.getName());
}
}
}