免费课程没有源码可以下载的。不过评论区或者笔记可以找找链接,我看到过的,有同学在gitee上分享过整个项目的代码的;
自定义sql的意义,是有一种应用场景,你既想自定义sql(一般多用于多表联查),又想使用条件构造器,可能还想使用分页插件。
你可以自己在select中写固定的列,或者通过if配合其他入参判断。
同学,你这个问题解决了吗?用你那个配置好使吗?
如果放到src/main/java中,想被读到,可以在pom.xml中加入如下配置,试试看看好不好使:
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>
mp执行的sql有的版本有这个括号,有的版本没有,但这个括号应该不影响最终结果,有没有查询出的结果集都一样,你可以试试。
问题解决了就好。一般是要添加如下配置,不然有的ide不会将写在src/main/java中的xml文件编译或打包到编译后的程序或者包中。
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
需要在eclipse安装插件,在eclipse的市场中搜spring tools。然后安装,或者直接使用spring提供的STS,或者使用idea。
同学,从你给的这些信息,我也判断不出来,是哪块出错了。你能不能粘贴出来关键代码,或者方便的话,把你的程序分享出来,传到百度或者码云上,给我链接,我帮你调调。
那个ew.custemSqlSegment,不只是where中的条件,你在条件构造器中依然可以写分组、排序。
这个问题,我跟MP项目组成员沟通过,他的答复是MP只负责注入BaseMapper的sql,你那种只能自己写 as
刚跟MP项目组成员沟通了,他的答复是MP只负责注入BaseMapper的sql,你那种只能自己写 as ,例如:
@Select("select *,name as userName from mp_user ${ew.customSqlSegment}") List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
MP自带的CRUD操作是针对单表操作的,如果要操作多表,可以写自定义sql。
给你举个使用条件构造器的多表sql例子,可以写在xml中或注解中,下面的是用xml的写法:
<select id="mySelectList" resultType="User"> select u.*,r.role_name from user u inner join role r on u.role_id = r.role_id ${ew.customSqlSegment} </select>
对应的Mapper接口中的方法定义:
List<User> mySelectList(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
返回值可以是VO。也可以是实体类,但要要记住,如果用实体类接返回值,实体中非该实体对应表的数据库字段的属性上要标注@TableField(exist = false),如果使用了条件构造器,条件构造器的字段名别忘了带别名。
例如
你好,十分抱歉,网站规定,免费课程不提供源代码。但是有很多同学参考我的课程敲了代码,并分享出来了,你可以去入门篇或者进阶篇课程中的问答评论或者用户评论区去寻找。
有时候,按照我视频那样写正常,有时候不正常,不正常的情况下可以在pom.xml文件中加入如下配置:
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
你说的构造器,应该是指条件构造器吧,不是必须要传的呀,我课程中讲的那个例子,是为了教大家,在MP中既要自定义方法,又要使用条件构造器的话怎么办。
原生的mybatis就支持自定义方法的,你既可以通过注解的方式写,也可以通过xml方式写。
同学找到错误原因了
mybatis-plus:
mapper-locations:
- com/mp/mapper/*
我这配置最后一行,横岗-和com/mp/mapper/* 之间有空格,你没有空格,所以报错了,这是yaml的语法规范。
这种情况,在where中你需要“别名.name”就可以了。我看你的表已经起别名了,例如:条件构造器中的条件可以这样写,wrapper.eq("a.name","某某")