ssm框架将mybatis改为mybatis-plus 并使用

概念性废话不多说,直接开干

1.首先,mybatis和mybatis-plus的依赖不同 将依赖改了

<!--spring整合mybatis坐标-->
    <!--<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>-->
    <!--mybatis-->
    <!--<dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>-->

    <!-- MyBatis Plus的依赖-->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>3.3.2</version>
    </dependency>

将上面的mybatis的依赖注释掉改为下面mybatis-plus的依赖,注:如果mybatis-plus的版本太低,无法使用QueryWrapper,2.*只能使用EntityWrapper,如果版本太高,可能会出现冲突的情况报错。

2.修改applicationContext.xml配置文件

 <!--<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">     
-->
    <bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">

mybatis和mybatis-plus的sqlSessionFactoryBean不同

3.修改实体类(取一个举例)

@TableName(value = "good")
public class Good implements Serializable {
  @TableId(value = "Id",type = IdType.AUTO)
  private Integer id;
  private String name;
  private Integer price;
  private Integer count;
  private String describe;
  private String img;

 (1)@TableName注解:这个就是将实体类与数据库表映射,value值就是数据库中的表名

 (2)@TableId注解:被标注的属性是表中的主键,这个注解有两个属性,value是将字段名与属性名进行映射,可以看出我的字段名和属性名不一致,故加上这个属性。type是属性自增。

3.修改dao层

public interface GoodsMapper extends BaseMapper<Good> {
}

将dao层继承BaseMapper<>,就可以使用mybatis-plus的方法了

public interface BaseMapper<T> {
    Integer insert(T var1);

    Integer insertAllColumn(T var1);

    Integer deleteById(Serializable var1);

    Integer deleteByMap(@Param("cm") Map<String, Object> var1);

    Integer delete(@Param("ew") Wrapper<T> var1);

    Integer deleteBatchIds(@Param("coll") Collection<? extends Serializable> var1);

    Integer updateById(@Param("et") T var1);

    Integer updateAllColumnById(@Param("et") T var1);

    Integer update(@Param("et") T var1, @Param("ew") Wrapper<T> var2);

    Integer updateForSet(@Param("setStr") String var1, @Param("ew") Wrapper<T> var2);

    T selectById(Serializable var1);

    List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> var1);

    List<T> selectByMap(@Param("cm") Map<String, Object> var1);

    T selectOne(@Param("ew") T var1);

    Integer selectCount(@Param("ew") Wrapper<T> var1);

    List<T> selectList(@Param("ew") Wrapper<T> var1);

    List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> var1);

    List<Object> selectObjs(@Param("ew") Wrapper<T> var1);

    List<T> selectPage(RowBounds var1, @Param("ew") Wrapper<T> var2);

    List<Map<String, Object>> selectMapsPage(RowBounds var1, @Param("ew") Wrapper<T> var2);
}

在项目中用到的方法在此补充说明,没有用到的如果以后用到了,再做补充(另:一般来说应该是service写业务,但是因为某些原因就写在了一起,以后慢慢修改):

  1. Integer insert(T var1);

@PostMapping("/addGoods")
    public String addGoods(Good good){
        goodsMapper.insert(good);

        //goodsService.addGoods(good);

        return "redirect:/goods/all";
    }

2. Integer deleteById(Serializable var1);

@GetMapping("/delete/{id}")
    public String Delete(@PathVariable(value = "id") int id){
        goodsMapper.deleteById(id);

        //goodsService.Delete(id);

        return "redirect:/goods/all";
    }

3.List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);

@PostMapping("/login")
    public String login(User user,Model model,@PathVariable(value = "id",required = false) Integer id){
        if(id!=null){
            List<User> users = userService.selectById(id);
        }
        Map<String, Object> stringStringHashMap = new HashMap<>();
        stringStringHashMap.put("username",user.getUsername());
        stringStringHashMap.put("password",user.getPassword());
        List<User> users = userMapper.selectByMap(stringStringHashMap);
        //List<User> users = userService.login(user);
        model.addAttribute("user",users);
        return "indexafter";
    }

4. T selectById(Serializable var1);

 @GetMapping("/selectbyid/{gid}/{uid}/{modelid}")
    public String selectbyId(Model model,@PathVariable(value = "gid") int gid,@PathVariable(value = "uid") int uid,@PathVariable(value = "modelid") int modelid){
        List<Guke> gukes = gukeMapper.selectById(uid);
        List<Good> goods = goodsMapper.selectbyId(gid);
        /*List<Guke> gukes = gukeService.selectById(uid);
        List<Good> goods = goodsService.selectbyId(gid);*/
        model.addAttribute("guke",gukes);
        model.addAttribute("goods",goods);
        if(modelid==1){
            return "purchase";
        }else {
            return "gouwuche";
        }
    }

5.Integer updateById(@Param("et") T var1);

 @PostMapping("/update")
    public String UpDate(Good good){
        goodsMapper.updateById(good);
        //goodsService.UpDate(good);
        return "redirect:/goods/all";
    }

6. List<T> selectList(@Param("ew") Wrapper<T> var1);

 public List<Orders> selectByName(String name){
        QueryWrapper<Orders> wrapper = new QueryWrapper<>();
        wrapper.eq("name",name);
        List<Orders> orders = orderMapper.selectList(wrapper);
        /*Orders orders = new Orders();
        orders.setName(name);*/
        //return orderMapper.selectByName(orders);
        return orders;
    }

7.List<T> selectPage(RowBounds var1, @Param("ew") Wrapper<T> var2);

  这里想使用分页 需要进行配置(mybatis-coonfig.xml)

 @Resource
    private GoodsMapper goodsMapper;
    public List<Good> SelectAll() {
        Page<Good> goodPage = goodsMapper.selectPage(new Page<Good>(2, 2), null);
        List<Good> goods = goodPage.getRecords();
        //return goodsMapper.SelectAll();
        return goods;
    }
<plugins>
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"></plugin>
    </plugins>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值