概念性废话不多说,直接开干
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>