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
    评论
SSM框架中的MyBatis升级到MyBatis-Plus是可行的,可以实现共存。SSM框架由Spring、Spring MVC和MyBatis组成,而MyBatis-Plus是对MyBatis的增强扩展。下面将介绍如何将它们共存。 首先,需要将MyBatis升级到MyBatis-Plus。可以将MyBatis-Plus的依赖项添加到项目的pom.xml文件中,替换原有的MyBatis依赖。然后,需要对原有的MyBatis配置文件进行修改。MyBatis-Plus提供了一些方便的功能和特性,如自动填充、逻辑删除等,可以根据项目需求选择开启或关闭。 在SSM框架中,MyBatis-Plus可以与原有的Spring框架和Spring MVC框架完美共存。Spring框架负责管理和配置各种Bean,MyBatis-Plus可以与Spring框架一起使用,将其作为DAO层的组件进行管理。在Spring的配置文件中,可以将MyBatis-Plus的配置文件加入到配置中。 在Spring MVC框架中,可以继续使用原有的控制器、服务和视图解析器等组件。MyBatis-Plus可以与Spring MVC框架无缝集成,通过Spring MVC接收请求,然后调用MyBatis-Plus进行数据访问和处理。 在具体开发过程中,可以利用MyBatis-Plus提供的一些特性简化开发工作。例如,可以使用MyBatis-Plus的代码生成器来自动生成DAO、实体类和Mapper等代码,减少手动编写的工作量。 总结来说,将SSM框架中的MyBatis升级到MyBatis-Plus是完全可以实现的,它们可以共存并完美集成。通过使用MyBatis-Plus,我们可以更加便捷地开发和管理数据库操作,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值