为工作室搬砖出现的一些错误

刚刚解决的一个错误  

主要是 mybatis 一条insert select update delete 中不能出现两种不同的sql语句 出现就会报错 

看下面  之前我将两条语句写在一起 找了好久好久的错 心累 。。。

     <insert id="insertApplyTime" parameterType="com.zy.website.pojo.ApplyTime">
        insert into applytime (adminName , alterTime , beforeTime , afterTime)
        values ( #{adminName} , #{alterTime} , #{beforeTime} , #{afterTime} )
    </insert>
    <select id="getApplyTime" resultType="com.zy.website.pojo.ApplyTime">
        select * from applytime limit 1;
    </select>

另外关于类型一定要匹配 

1、确定数据库类型一定是 大写的 。而且不是所有的java数据类型都有相应的对应 需要去百度找找 。

2、传入的参数一定要是全称的 否则mybatis反射不到的,还有返回数据类型 一定要是全称 然后需要返回ArrayList HashMap 最好先配置 如下配置 : 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
    </typeAliases>
</configuration>

3、mapper 里面的namespace 对应 dao层的接口   而且下面的sql语句中的 id 要和dao层的方法名对应 。

4、关于代码需要分层设计 ,命名要规范。

common 公共类  一般就是放自己写的一些公共类。

controller  与前台进行对接的一层。

pojo        普通类层  定义实体类的属性 添加get set方法

dao         与mybatis 的 mapper交互的一层  里面写了很多接口 借口对应数据库操作

service     与dao层 controller 进行对接  处于业务需求  但是我一般都是在controller里面处理  本人表示这不规范  应该在service里面处理业务。

mybatis  mapper   就是写sql语句咯,但是自己还是要明白关于mybatis的原理  核心就是对sql语句进行拼接 ,然后将数据库中的表字段和 pojo中的类进行匹配 与dao层的方法对接 获取属性 返回结果。

后台返回ArrayList 自动转json数据    ---------    前端却得到的是 object 并有undefine属性。

      1、 前端是异步请求   异步请求的时候每一个请求都在竞争,所以有可能某个请求还没有得到数据 就有地方需要用到这个属性,那么就会报错这个错误。

       2、因为ArrayList 是可能有多个 转换成json之后,如果访问越界就会发生 访问不到属性的错误。

关于AJAX请求同步异步问题

ajax请求同步     同步的话需要在请求信息里面加上 async : false ,   即可,就是不异步。这中请求 就是会按照代码的顺序一个一个执行 ,相比异步要效率低一点。

ajax请求异步      异步的话那就是以及ajax请求不同步,不需要等其他的请求完毕才发出请求。

关于这两个请求有这样的区分,一般情况下 在页面加载下应该要使用同步请求。保证数据加载完成才展示页面,如果是异步的话就会出现如下情况,这边数据还没有加载出来,那边就开始想要请求结果里面的信息。导致出现undefine属性情况。

一般别的情况就是使用异步请求,提高效率。

错误: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 500错误

一般都是低级错误  比如 xml里面的id 和dao里面的方法名对不上。

反正一般就是找不到可以一个可以执行的该方法的语句,一般都是id对不上,只能骂自己。

错误 : java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

连接数据库的密码错了。

猜你喜欢

转载自blog.csdn.net/qq_40261771/article/details/82924210