作业1、2、3、4 2019/10/23

 

 

 

使用注解模式:

接口:

复制代码
package com.test;

import com.pojo.Goods;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface IgoodsMapper {

    /**
     * 需求: 通过商品名称 (模糊查询)、供应商(供应商id)、是否付款
     * 查询到 订单编码,商品名称,供应商名称,账单,金额,是否付款,创建时间
     */
    @Select("SELECT g.goodsCode,g.goodsName,p.provider_name,g.money, g.payState,g.timeStart FROM goods g,provider p WHERE g.goodsName LIKE concat('%',#{goods_Name},'%') AND p.provider_id = #{provider_id} AND g.payState = #{goods_payState} AND g.goods_id = p.goods_id")
    List<Goods> getGoodsList(Map<String,String> map);



}
IgoodsMapper
复制代码

 

 

测试类:

复制代码
package com.demo.test;

import com.pojo.Demo;
import com.pojo.Goods;
import com.pojo.Grade;
import com.test.DemoMapper;
import com.test.IgoodsMapper;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test01 {


    @Test
    public void test03() throws IOException {
        //1、读取配置文件
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        //2、创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3、创建 SqlSession对象
        SqlSession sqlSession = factory.openSession();
        //4、实现方法
        IgoodsMapper mapper = sqlSession.getMapper(IgoodsMapper.class);
        Map<String,String> map = new HashMap<String, String>();
        map.put("goods_Name","机");
        map.put("provider_id","10086");
        map.put("goods_payState","1");
        List<Goods> list = mapper.getGoodsList(map);
        System.out.println("---------------------------");
        for (Goods goods:list){

            System.out.println(goods.getGoodsCode()+" "+goods.getGoodsName()+" "+goods.getProvider_name()+
                    " "+goods.getMoney()+" "+
                    goods.getPayState()+" "+goods.getTimeStart());
        }
        System.out.println("------------------------");
        //5、释放资源
        sqlSession.close();
        in.close();

    }
}
test01.java
复制代码

 

 

 

 

------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

这里我以添加商品库存数量为例:

 

 

goods_id为主键    goods_num为库存数量

实现思路:

1、为实体类添加 这两个属性

 

接口代码:添加这些

    @Insert("UPDATE provider SET goods_num = goods_num+#{goods_num} WHERE goods_id = #{goods_id}")
    int addGoods_num(Map<String,Integer> map);

 

测试类:

复制代码
package com.demo.test;

import com.pojo.Demo;
import com.pojo.Goods;
import com.pojo.Grade;
import com.test.DemoMapper;
import com.test.IgoodsMapper;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test01 {
    public static void main(String[] args) throws IOException {
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        //2、创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3、创建 SqlSession对象
        SqlSession sqlSession = factory.openSession();
        //4、实现方法
        IgoodsMapper mapper = sqlSession.getMapper(IgoodsMapper.class);

        Map<String,Integer> map = new HashMap<String, Integer>();
        map.put("goods_id",1);
        map.put("goods_num",2);
        int i = sqlSession.insert("addGoods_num", map);

        if(i>0){
            sqlSession.commit();
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }
        //5、释放资源
        sqlSession.close();
        in.close();

    }

}
test01.java
复制代码

 

测试结果:

添加前的的数据库数据

 

 

:重点看 goods_ id = 1;

goods_num是否添加 我们测试类写的2 

变成8

结果:

 

 

 

 

 

 

 

------------------------------------------------------------------------------------------------------------------------

 

 

把provider里的供应商名称修改名称:

 

 

 把goods_id = 1的provider_name的小米修改成腾讯

代码如下:

接口添加代码:

 @Insert("UPDATE provider p SET p.provider_name = #{provider_name} WHERE goods_id = #{goods_id}")
    int update_provider_name(Map<String,String> map);

测试类:

复制代码
package com.demo.test;

import com.pojo.Demo;
import com.pojo.Goods;
import com.pojo.Grade;
import com.test.DemoMapper;
import com.test.IgoodsMapper;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test01 {
    public static void main(String[] args) throws IOException {
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        //2、创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3、创建 SqlSession对象
        SqlSession sqlSession = factory.openSession();
        //4、实现方法
        IgoodsMapper mapper = sqlSession.getMapper(IgoodsMapper.class);

        Map<String,String > map = new HashMap<String, String >();
        map.put("goods_id","1");
        map.put("provider_name","腾讯");
        int i = sqlSession.update("update_provider_name", map);

        if(i>0){
            sqlSession.commit();
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }
        //5、释放资源
        sqlSession.close();
        in.close();

    }

}
test01.java
复制代码

 

结果:

 

 

 

 

 

 

 

 

--------------------------------------------------------------------------------------

 

 

 

实现思路:

使用goods_id主键

 

效果:

 

 把goods_id =4;删除

 

 

 

 

 

 

 

 

代码如下:

IgoodsMapper接口

    @Delete("DELETE FROM provider WHERE goods_id = #{goods_id}")
    int delectBy_provider_id(Map<String ,Integer> map);

 

测试类:

复制代码
test01
package com.demo.test;

import com.pojo.Demo;
import com.pojo.Goods;
import com.pojo.Grade;
import com.test.DemoMapper;
import com.test.IgoodsMapper;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test01 {
    public static void main(String[] args) throws IOException {
        InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
        //2、创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3、创建 SqlSession对象
        SqlSession sqlSession = factory.openSession();
        //4、实现方法
        IgoodsMapper mapper = sqlSession.getMapper(IgoodsMapper.class);

        Map<String,Integer > map = new HashMap<String, Integer>();
        map.put("goods_id",4);
        int i = sqlSession.delete("delectBy_provider_id", map);

        if(i>0){
            sqlSession.commit();
            System.out.println("删除成功");
        }else{
            System.out.println("删除失败");
        }
        //5、释放资源
        sqlSession.close();
        in.close();

    }

}

复制代码

 

本文作者:AxeBurner

本文链接:https://www.cnblogs.com/bichen-01/p/11724033.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   AxeBurner  阅读(212)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.