java阶段自我学习(二)

一.最让人头疼的问题:异常          

异常1:Caused by: java.lang.ClassNotFoundException: Cannot find class: 类名

   

直接将异常放到最后会出现这样的异常报错

报错代码

 <update id="teaUpdate" parameterType="Tea">
        update teacher
        <set >
        <if test="t_name!=null">t_name=#{tName,jdbcType=VARCHAR},</if>
       <if test="t_num!=null">t_num=#{tNum,jdbcType=INTEGER},</if>
       <if test="t_class!=null">t_class=#{tClass,jdbcType=VARCHAR},</if>
        <if test="t_pass!=null">
        t_pass=#{tPass,jdbcType=VARCHAR}
        </if>
        </set>
        where id=#{id,jdbcType=INTEGER}
    </update>

我推荐两种解决方案一是:

将第一行代码加上完整的路径名

 <update id="teaUpdate" parameterType="cn.zcbigdata.mybits.entity.Tea">

第二种在: application.yml中解决

找到相应的位置加上这句话。

          异常2:Description:
 Field leavesMapper in cn.zcbigdata.mybitsdemo.service.Impl.LeavesServiceImpl required a bean of type 'cn.zcbigdata.mybitsdemo.mapper.LeavesMapper' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'cn.zcbigdata.mybitsdemo.mapper.LeavesMapper' in your configuration.

这个就是你要是修改了这个包名,记得也把 MybitsDemoApplication启动文件改掉

当然重构的时候也会自动改掉generator.xml里的内容

 <javaModelGenerator targetPackage="cn.zcbigdata.mybits.entity"
                            targetProject="E:\springBoot\mybaits_demo\src\main\java">

当然要是你用了异常一里的第二种方法修改异常一,记得也需要改变包名。

  异常3:Description:
Field filepathService in cn.zcbigdata.mybitsdemo.controller.UploadController required a bean of type 'cn.zcbigdata.mybitsdemo.service.FilepathService' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'cn.zcbigdata.mybitsdemo.service.FilepathService' in your configuration.

这个异常就很简单了,记得你在写代码时候注意不要忘记写相应的注解,否则在调用时候就会报这样的错误,注解如下:

如上图在 StudenServiceImpl加上@Service就可以轻而易举的解决问题。

下一章我会给出调式错误的一般方法,不过在那之前我们还是先来看一下注解

        @Deprecated:若某类或某方法加上该注解之后,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是说,不推荐使用,因为还有更好的方法可以调用。

       @RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

  1. 语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)

  2. required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。

更多注解百度一下spring boot常用注解就好了。

当然学到这里我们也应该不在自己拼写json了。当然除了gson和fastjson外我们也可以自己创建类来实现json ,而且这样的json更符合自己想要的格式

public class LayuiResult {
    /**
     * "[{\"status\":0}, {\"message\": \"鎴愬姛\" }, {\"count\": 1000},{\"rows\":{\"item\":[";
     */
    private int status;
    private String message;
    private int count;
    private Object data;

    public static LayuiResult ok(Object data){
        LayuiResult layuiResult= new LayuiResult();
        layuiResult.setStatus(0);
        layuiResult.setMessage("chenggomh");
        layuiResult.setCount(1000);
        layuiResult.setData(data);
        return layuiResult;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "LayuiResult{" +
                "status=" + status +
                ", message='" + message + '\'' +
                ", count=" + count +
                ", data=" + data +
                '}';
    }
    public static void main(String[] args) {
    	LayuiResult layuiResult = LayuiResult.ok("[{\"姓名\":\"王小明\"}]");
    	System.out.println(layuiResult);
	}
   
}

好了谢谢观看

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值