mybatis分页查询之sql server–mysql[通俗易懂]

mybatis分页查询之sql server–mysql[通俗易懂]freemarker.beansKey”location”wasnotfoundoninstanceoforg.springframework.jdbc.UncategorizedSQLException.freemarker.beansKey”location”wasnotfoundoninstanceofcom.microsoft.sqlserver.jdbc.SQLServerException.sqlserver使用mybatis中分页查询时出现故障

大家好,又见面了,我是你们的朋友全栈君。

         在习惯了使用mysql进行数据操作后,突然转到sql server,虽然说两者在mybatis中的语法基本相同,很容易替换,但是,这也是最容易出问题的地方,因为往往我们会被这些些微的“不同”坑害。

         今天这里就分享一下mysql和sql server在分页查询中的区别以及这里的“坑”。

首先看一下mysql中分页查询的代码:

select * from sys_dormitoryBuilding limit 1,2;

这句sql语句执行的效果是选择第一行后的两行作为结果,也就是选择2、3两行,从这个例子,我们就可以写出如下的xml语句了:

<select id="selectByOptions" parameterType="com.huan.common.SearchCondition" resultMap="BuildingResult">
		select * from sys_dormitoryBuilding 
		<where>
		    1=1
			<if test="searchBean.buildingNum != null and searchBean.buildingNum != ''">
				and building_number like CONCAT('%',#{searchBean.buildingNum,jdbcType=VARCHAR},'%')
			</if>
			<if test="searchBean.name != null and searchBean.name != ''">
				and name like CONCAT('%',#{searchBean.name,jdbcType=VARCHAR},'%')
			</if>
			<if test="searchBean.address != null and searchBean.address != ''">
				and address like CONCAT('%',#{searchBean.address,jdbcType=INTEGER},'%')
			</if>
		</where>
		limit #{searchBean.start},#{searchBean.rows};
	</select>

      解释一下上面的语句,parameterType中的值是一个类,SearchCondition存放的是查询的参数,where里面的我们也就不看了,这是根据参数进行信息筛选的,limit #{searchBean.start},#{searchBean.rows},这句话我们重点看一下,这就是我们mysql里的分页查询方法,可以使用limit进行查询,#{searchBean.start}代表起始位置,#{searchBean.rows}代表每页的数据行数。

       看到这里,一切都是没问题的。对于limit,可以说是很好用了,但是sql server中并没有提供limit这样的操作,所以想要直接进行分页是不可能的。下面我们来看一下sql server中top使用的一种情况:

select top 2 * from staffInfo
where cardNum not in (
  select top 1 cardNum from staffInfo
)

在上面的sql语句中,就可以实现mysql中同样的功能了,选取的是2、3行的数据,这个语句很好理解,当然,效率上是有点小小的瑕疵。

<select id="selectByOptions" parameterType="com.huan.common.SearchCondition" resultMap="StaffResult">
		select top #{searchBean.rows} * from staffInfo
		<where>
		    1=1
			<if test="searchBean.cardNum != null and searchBean.cardNum != ''">
				and cardNum like CONCAT('%',#{searchBean.cardNum,jdbcType=VARCHAR},'%')
			</if>
			<if test="searchBean.realname != null and searchBean.realname != ''">
				and realname like CONCAT('%',#{searchBean.realname,jdbcType=VARCHAR},'%')
			</if>
			<if test="searchBean.department != null and searchBean.department != ''">
				and department like CONCAT('%',#{searchBean.department,jdbcType=VARCHAR},'%')
			</if>
			<if test="searchBean.job != null and searchBean.job != ''">
				and job like CONCAT('%',#{searchBean.job,jdbcType=VARCHAR},'%')
			</if>
			<if test="searchBean.available != null and searchBean.available != ''">
				and available like CONCAT('%',#{searchBean.sssssavailable,jdbcType=VARCHAR},'%')
			</if>
			and cardNum not in (
               select top #{searchBean.start} cardNum from staffInfo
             )
		</where>
	</select>

        对于上面的代码,我们对照下sql server中的语法,感觉是不是没毛病?那应该就是可以运行的了。可是,现实是残酷的,这个代码是会报错的。特别是对于xml封装的sql语句,我们找错就更加难了。

错误的提示信息如下(信息有点多我,我就截取一部分):

mybatis分页查询之sql server--mysql[通俗易懂]

         从上面我们可以看出,对于输出的sql语句部分,用“?”代替的,我们是看不见的,这就是问题的关键(说实话,处于mysql这个用多了,我排除了好多的原因,找到这个真不容易),这个问题就在于我们这里使用的“#”,这就会导致我们的查询语句出现了问题,#在mysql中的用法和sql server中确实有了差别,在sql server中,#括起来的变量在使用中会自动添加引号,这就是强制把我们的变量变成了字符串了啊,而我们这里显然要用的是整数值,这明显就是错误的,所以知道这个错误的我内心也是。。。,这里只需要将“#”替换为“$”就行了。

下面是我从网上搜到的关于“#”和“$”符号的解释:

1、#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by “id”,这当然会报错。 
2、$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id, 这就对了。 
3、#方式能够很大程度防止sql注入。 
4、$方式无法防止sql注入。 
5、$方式一般用于传入数据库对象,例如传入表名。 
6、一般能用#的就别用$。

        好了,这次就分享这么多,下面贴上错误的完整信息,以便于别人查询。

[ssmTest] 2017-10-26 11:51:45 freemarker.beans Key “location” was not found on instance of org.springframework.jdbc.UncategorizedSQLException. Introspection information for the class is: {getClass=public final native java.lang.Class java.lang.Object.getClass(), SQLException=java.beans.PropertyDescriptor[name=SQLException; propertyType=class java.sql.SQLException; readMethod=public java.sql.SQLException org.springframework.jdbc.UncategorizedSQLException.getSQLException()], getLocalizedMessage=public java.lang.String java.lang.Throwable.getLocalizedMessage(), cause=java.beans.PropertyDescriptor[name=cause; propertyType=class java.lang.Throwable; readMethod=public synchronized java.lang.Throwable java.lang.Throwable.getCause()], getCause=public synchronized java.lang.Throwable java.lang.Throwable.getCause(), sql=java.beans.PropertyDescriptor[name=sql; propertyType=class java.lang.String; readMethod=public java.lang.String org.springframework.jdbc.UncategorizedSQLException.getSql()], getSql=public java.lang.String org.springframework.jdbc.UncategorizedSQLException.getSql(), getStackTrace=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace(), addSuppressed=public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable), hashCode=public native int java.lang.Object.hashCode(), rootCause=java.beans.PropertyDescriptor[name=rootCause; propertyType=class java.lang.Throwable; readMethod=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getRootCause()], getSuppressed=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed(), suppressed=java.beans.PropertyDescriptor[name=suppressed; propertyType=class [Ljava.lang.Throwable;; readMethod=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()], stackTrace=java.beans.PropertyDescriptor[name=stackTrace; propertyType=class [Ljava.lang.StackTraceElement;; readMethod=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()], getRootCause=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getRootCause(), class=java.beans.PropertyDescriptor[name=class; propertyType=class java.lang.Class; readMethod=public final native java.lang.Class java.lang.Object.getClass()], localizedMessage=java.beans.PropertyDescriptor[name=localizedMessage; propertyType=class java.lang.String; readMethod=public java.lang.String java.lang.Throwable.getLocalizedMessage()], printStackTrace=freemarker.ext.beans.OverloadedMethods@729c3d8a, initCause=public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable), mostSpecificCause=java.beans.PropertyDescriptor[name=mostSpecificCause; propertyType=class java.lang.Throwable; readMethod=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getMostSpecificCause()], getMessage=public java.lang.String org.springframework.core.NestedRuntimeException.getMessage(), message=java.beans.PropertyDescriptor[name=message; propertyType=class java.lang.String; readMethod=public java.lang.String org.springframework.core.NestedRuntimeException.getMessage()], getMostSpecificCause=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getMostSpecificCause(), java.lang.Object@1642994=freemarker.ext.beans.SimpleMethod@26f627bb, contains=public boolean org.springframework.core.NestedRuntimeException.contains(java.lang.Class), setStackTrace=public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[]), java.lang.Object@492ab35d={public java.lang.String java.lang.Throwable.getLocalizedMessage()=[Ljava.lang.Class;@72f2cc03, public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable)=[Ljava.lang.Class;@608ea13e, public java.lang.String org.springframework.core.NestedRuntimeException.getMessage()=[Ljava.lang.Class;@73eda0c8, public native int java.lang.Object.hashCode()=[Ljava.lang.Class;@64318af1, public boolean java.lang.Object.equals(java.lang.Object)=[Ljava.lang.Class;@c7d0a0, public java.lang.Throwable org.springframework.core.NestedRuntimeException.getMostSpecificCause()=[Ljava.lang.Class;@15d516d7, public synchronized java.lang.Throwable java.lang.Throwable.getCause()=[Ljava.lang.Class;@ba01f45, public boolean org.springframework.core.NestedRuntimeException.contains(java.lang.Class)=[Ljava.lang.Class;@63ae6ac2, public java.sql.SQLException org.springframework.jdbc.UncategorizedSQLException.getSQLException()=[Ljava.lang.Class;@5d52e4c7, public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[])=[Ljava.lang.Class;@608c2214, public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()=[Ljava.lang.Class;@6b5d5377, public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable)=[Ljava.lang.Class;@7b35dca4, public java.lang.String org.springframework.jdbc.UncategorizedSQLException.getSql()=[Ljava.lang.Class;@318b6bd9, public java.lang.String java.lang.Throwable.toString()=[Ljava.lang.Class;@3096737e, public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()=[Ljava.lang.Class;@31d148f0, public final native java.lang.Class java.lang.Object.getClass()=[Ljava.lang.Class;@64546292, public java.lang.Throwable org.springframework.core.NestedRuntimeException.getRootCause()=[Ljava.lang.Class;@eeb1862, public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()=[Ljava.lang.Class;@de59742}, equals=public boolean java.lang.Object.equals(java.lang.Object), toString=public java.lang.String java.lang.Throwable.toString(), getSQLException=public java.sql.SQLException org.springframework.jdbc.UncategorizedSQLException.getSQLException(), fillInStackTrace=public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()}
[ssmTest] 2017-10-26 11:51:45 freemarker.beans Key “location” was not found on instance of org.springframework.jdbc.UncategorizedSQLException. Introspection information for the class is: {getClass=public final native java.lang.Class java.lang.Object.getClass(), SQLException=java.beans.PropertyDescriptor[name=SQLException; propertyType=class java.sql.SQLException; readMethod=public java.sql.SQLException org.springframework.jdbc.UncategorizedSQLException.getSQLException()], getLocalizedMessage=public java.lang.String java.lang.Throwable.getLocalizedMessage(), cause=java.beans.PropertyDescriptor[name=cause; propertyType=class java.lang.Throwable; readMethod=public synchronized java.lang.Throwable java.lang.Throwable.getCause()], getCause=public synchronized java.lang.Throwable java.lang.Throwable.getCause(), sql=java.beans.PropertyDescriptor[name=sql; propertyType=class java.lang.String; readMethod=public java.lang.String org.springframework.jdbc.UncategorizedSQLException.getSql()], getSql=public java.lang.String org.springframework.jdbc.UncategorizedSQLException.getSql(), getStackTrace=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace(), addSuppressed=public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable), hashCode=public native int java.lang.Object.hashCode(), rootCause=java.beans.PropertyDescriptor[name=rootCause; propertyType=class java.lang.Throwable; readMethod=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getRootCause()], getSuppressed=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed(), suppressed=java.beans.PropertyDescriptor[name=suppressed; propertyType=class [Ljava.lang.Throwable;; readMethod=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()], stackTrace=java.beans.PropertyDescriptor[name=stackTrace; propertyType=class [Ljava.lang.StackTraceElement;; readMethod=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()], getRootCause=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getRootCause(), class=java.beans.PropertyDescriptor[name=class; propertyType=class java.lang.Class; readMethod=public final native java.lang.Class java.lang.Object.getClass()], localizedMessage=java.beans.PropertyDescriptor[name=localizedMessage; propertyType=class java.lang.String; readMethod=public java.lang.String java.lang.Throwable.getLocalizedMessage()], printStackTrace=freemarker.ext.beans.OverloadedMethods@729c3d8a, initCause=public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable), mostSpecificCause=java.beans.PropertyDescriptor[name=mostSpecificCause; propertyType=class java.lang.Throwable; readMethod=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getMostSpecificCause()], getMessage=public java.lang.String org.springframework.core.NestedRuntimeException.getMessage(), message=java.beans.PropertyDescriptor[name=message; propertyType=class java.lang.String; readMethod=public java.lang.String org.springframework.core.NestedRuntimeException.getMessage()], getMostSpecificCause=public java.lang.Throwable org.springframework.core.NestedRuntimeException.getMostSpecificCause(), java.lang.Object@1642994=freemarker.ext.beans.SimpleMethod@26f627bb, contains=public boolean org.springframework.core.NestedRuntimeException.contains(java.lang.Class), setStackTrace=public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[]), java.lang.Object@492ab35d={public java.lang.String java.lang.Throwable.getLocalizedMessage()=[Ljava.lang.Class;@72f2cc03, public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable)=[Ljava.lang.Class;@608ea13e, public java.lang.String org.springframework.core.NestedRuntimeException.getMessage()=[Ljava.lang.Class;@73eda0c8, public native int java.lang.Object.hashCode()=[Ljava.lang.Class;@64318af1, public boolean java.lang.Object.equals(java.lang.Object)=[Ljava.lang.Class;@c7d0a0, public java.lang.Throwable org.springframework.core.NestedRuntimeException.getMostSpecificCause()=[Ljava.lang.Class;@15d516d7, public synchronized java.lang.Throwable java.lang.Throwable.getCause()=[Ljava.lang.Class;@ba01f45, public boolean org.springframework.core.NestedRuntimeException.contains(java.lang.Class)=[Ljava.lang.Class;@63ae6ac2, public java.sql.SQLException org.springframework.jdbc.UncategorizedSQLException.getSQLException()=[Ljava.lang.Class;@5d52e4c7, public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[])=[Ljava.lang.Class;@608c2214, public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()=[Ljava.lang.Class;@6b5d5377, public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable)=[Ljava.lang.Class;@7b35dca4, public java.lang.String org.springframework.jdbc.UncategorizedSQLException.getSql()=[Ljava.lang.Class;@318b6bd9, public java.lang.String java.lang.Throwable.toString()=[Ljava.lang.Class;@3096737e, public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()=[Ljava.lang.Class;@31d148f0, public final native java.lang.Class java.lang.Object.getClass()=[Ljava.lang.Class;@64546292, public java.lang.Throwable org.springframework.core.NestedRuntimeException.getRootCause()=[Ljava.lang.Class;@eeb1862, public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()=[Ljava.lang.Class;@de59742}, equals=public boolean java.lang.Object.equals(java.lang.Object), toString=public java.lang.String java.lang.Throwable.toString(), getSQLException=public java.sql.SQLException org.springframework.jdbc.UncategorizedSQLException.getSQLException(), fillInStackTrace=public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()}
[ssmTest] 2017-10-26 11:51:45 freemarker.beans Key “location” was not found on instance of com.microsoft.sqlserver.jdbc.SQLServerException. Introspection information for the class is: {getClass=public final native java.lang.Class java.lang.Object.getClass(), getLocalizedMessage=public java.lang.String java.lang.Throwable.getLocalizedMessage(), errorCode=java.beans.PropertyDescriptor[name=errorCode; propertyType=int; readMethod=public int java.sql.SQLException.getErrorCode()], cause=java.beans.PropertyDescriptor[name=cause; propertyType=class java.lang.Throwable; readMethod=public synchronized java.lang.Throwable java.lang.Throwable.getCause()], getSQLState=public java.lang.String java.sql.SQLException.getSQLState(), setNextException=public void java.sql.SQLException.setNextException(java.sql.SQLException), getCause=public synchronized java.lang.Throwable java.lang.Throwable.getCause(), SQLState=java.beans.PropertyDescriptor[name=SQLState; propertyType=class java.lang.String; readMethod=public java.lang.String java.sql.SQLException.getSQLState()], iterator=public java.util.Iterator java.sql.SQLException.iterator(), getStackTrace=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace(), addSuppressed=public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable), getErrorCode=public int java.sql.SQLException.getErrorCode(), hashCode=public native int java.lang.Object.hashCode(), getNextException=public java.sql.SQLException java.sql.SQLException.getNextException(), getSuppressed=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed(), suppressed=java.beans.PropertyDescriptor[name=suppressed; propertyType=class [Ljava.lang.Throwable;; readMethod=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()], stackTrace=java.beans.PropertyDescriptor[name=stackTrace; propertyType=class [Ljava.lang.StackTraceElement;; readMethod=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()], class=java.beans.PropertyDescriptor[name=class; propertyType=class java.lang.Class; readMethod=public final native java.lang.Class java.lang.Object.getClass()], localizedMessage=java.beans.PropertyDescriptor[name=localizedMessage; propertyType=class java.lang.String; readMethod=public java.lang.String java.lang.Throwable.getLocalizedMessage()], printStackTrace=freemarker.ext.beans.OverloadedMethods@7631e8e8, initCause=public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable), getMessage=public java.lang.String java.lang.Throwable.getMessage(), message=java.beans.PropertyDescriptor[name=message; propertyType=class java.lang.String; readMethod=public java.lang.String java.lang.Throwable.getMessage()], setStackTrace=public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[]), java.lang.Object@492ab35d={public java.util.Iterator java.sql.SQLException.iterator()=[Ljava.lang.Class;@7c174ec5, public java.lang.String java.lang.Throwable.getLocalizedMessage()=[Ljava.lang.Class;@519ad3d9, public int java.sql.SQLException.getErrorCode()=[Ljava.lang.Class;@2b5f0093, public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable)=[Ljava.lang.Class;@5250dbb8, public java.lang.String java.lang.Throwable.getMessage()=[Ljava.lang.Class;@1477d651, public java.sql.SQLException java.sql.SQLException.getNextException()=[Ljava.lang.Class;@13f4cb1d, public native int java.lang.Object.hashCode()=[Ljava.lang.Class;@407c1a68, public boolean java.lang.Object.equals(java.lang.Object)=[Ljava.lang.Class;@142584c4, public synchronized java.lang.Throwable java.lang.Throwable.getCause()=[Ljava.lang.Class;@3e4a0d4f, public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[])=[Ljava.lang.Class;@bd385b8, public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()=[Ljava.lang.Class;@2bdc71f0, public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable)=[Ljava.lang.Class;@1367c3eb, public java.lang.String java.sql.SQLException.getSQLState()=[Ljava.lang.Class;@7d2994bd, public java.lang.String java.lang.Throwable.toString()=[Ljava.lang.Class;@6a4020e5, public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()=[Ljava.lang.Class;@225b9fac, public final native java.lang.Class java.lang.Object.getClass()=[Ljava.lang.Class;@f0e6897, public void java.sql.SQLException.setNextException(java.sql.SQLException)=[Ljava.lang.Class;@3eb389b7, public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()=[Ljava.lang.Class;@551fd18c}, equals=public boolean java.lang.Object.equals(java.lang.Object), toString=public java.lang.String java.lang.Throwable.toString(), nextException=java.beans.PropertyDescriptor[name=nextException; propertyType=class java.sql.SQLException; readMethod=public java.sql.SQLException java.sql.SQLException.getNextException()], fillInStackTrace=public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()}
[ssmTest] 2017-10-26 11:51:45 freemarker.beans Key “location” was not found on instance of com.microsoft.sqlserver.jdbc.SQLServerException. Introspection information for the class is: {getClass=public final native java.lang.Class java.lang.Object.getClass(), getLocalizedMessage=public java.lang.String java.lang.Throwable.getLocalizedMessage(), errorCode=java.beans.PropertyDescriptor[name=errorCode; propertyType=int; readMethod=public int java.sql.SQLException.getErrorCode()], cause=java.beans.PropertyDescriptor[name=cause; propertyType=class java.lang.Throwable; readMethod=public synchronized java.lang.Throwable java.lang.Throwable.getCause()], getSQLState=public java.lang.String java.sql.SQLException.getSQLState(), setNextException=public void java.sql.SQLException.setNextException(java.sql.SQLException), getCause=public synchronized java.lang.Throwable java.lang.Throwable.getCause(), SQLState=java.beans.PropertyDescriptor[name=SQLState; propertyType=class java.lang.String; readMethod=public java.lang.String java.sql.SQLException.getSQLState()], iterator=public java.util.Iterator java.sql.SQLException.iterator(), getStackTrace=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace(), addSuppressed=public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable), getErrorCode=public int java.sql.SQLException.getErrorCode(), hashCode=public native int java.lang.Object.hashCode(), getNextException=public java.sql.SQLException java.sql.SQLException.getNextException(), getSuppressed=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed(), suppressed=java.beans.PropertyDescriptor[name=suppressed; propertyType=class [Ljava.lang.Throwable;; readMethod=public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()], stackTrace=java.beans.PropertyDescriptor[name=stackTrace; propertyType=class [Ljava.lang.StackTraceElement;; readMethod=public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()], class=java.beans.PropertyDescriptor[name=class; propertyType=class java.lang.Class; readMethod=public final native java.lang.Class java.lang.Object.getClass()], localizedMessage=java.beans.PropertyDescriptor[name=localizedMessage; propertyType=class java.lang.String; readMethod=public java.lang.String java.lang.Throwable.getLocalizedMessage()], printStackTrace=freemarker.ext.beans.OverloadedMethods@7631e8e8, initCause=public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable), getMessage=public java.lang.String java.lang.Throwable.getMessage(), message=java.beans.PropertyDescriptor[name=message; propertyType=class java.lang.String; readMethod=public java.lang.String java.lang.Throwable.getMessage()], setStackTrace=public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[]), java.lang.Object@492ab35d={public java.util.Iterator java.sql.SQLException.iterator()=[Ljava.lang.Class;@7c174ec5, public java.lang.String java.lang.Throwable.getLocalizedMessage()=[Ljava.lang.Class;@519ad3d9, public int java.sql.SQLException.getErrorCode()=[Ljava.lang.Class;@2b5f0093, public synchronized java.lang.Throwable java.lang.Throwable.initCause(java.lang.Throwable)=[Ljava.lang.Class;@5250dbb8, public java.lang.String java.lang.Throwable.getMessage()=[Ljava.lang.Class;@1477d651, public java.sql.SQLException java.sql.SQLException.getNextException()=[Ljava.lang.Class;@13f4cb1d, public native int java.lang.Object.hashCode()=[Ljava.lang.Class;@407c1a68, public boolean java.lang.Object.equals(java.lang.Object)=[Ljava.lang.Class;@142584c4, public synchronized java.lang.Throwable java.lang.Throwable.getCause()=[Ljava.lang.Class;@3e4a0d4f, public void java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[])=[Ljava.lang.Class;@bd385b8, public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace()=[Ljava.lang.Class;@2bdc71f0, public final synchronized void java.lang.Throwable.addSuppressed(java.lang.Throwable)=[Ljava.lang.Class;@1367c3eb, public java.lang.String java.sql.SQLException.getSQLState()=[Ljava.lang.Class;@7d2994bd, public java.lang.String java.lang.Throwable.toString()=[Ljava.lang.Class;@6a4020e5, public final synchronized java.lang.Throwable[] java.lang.Throwable.getSuppressed()=[Ljava.lang.Class;@225b9fac, public final native java.lang.Class java.lang.Object.getClass()=[Ljava.lang.Class;@f0e6897, public void java.sql.SQLException.setNextException(java.sql.SQLException)=[Ljava.lang.Class;@3eb389b7, public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()=[Ljava.lang.Class;@551fd18c}, equals=public boolean java.lang.Object.equals(java.lang.Object), toString=public java.lang.String java.lang.Throwable.toString(), nextException=java.beans.PropertyDescriptor[name=nextException; propertyType=class java.sql.SQLException; readMethod=public java.sql.SQLException java.sql.SQLException.getNextException()], fillInStackTrace=public synchronized java.lang.Throwable java.lang.Throwable.fillInStackTrace()}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144791.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • navicat for mac激活码【中文破解版】

    (navicat for mac激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 深入解析HashMap和currentHashMap源码以及实现原理「建议收藏」

    深入解析HashMap和currentHashMap源码以及实现原理「建议收藏」深入解析HashMap和ConcurrentHashMapy源码以及底层原理前言HashMap和ConcurrentHashMap,这两个相信大家都不陌生,在面试中基本上是必问的,以及在实际开发过程中也是比用的,那么看了这篇文章,无论在面试还是在实际开发中都可以顺手拈来,得心应手了。HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并

  • spring boot框架搭建_springboot工作原理

    spring boot框架搭建_springboot工作原理公司大部分的应用程序都使用springboot开发,作为测试人员,学习了解该框架也势在必行。此外作为想成长为测试开发的同学来说,使用springboot开发后端服务也是一项基本的技能。

  • c# 键盘钩子

    c# 键盘钩子usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Text;namespaceKeyboardHookPro{publicclassScanerHook{publicdelegatevoidScanerDelegate(ScanerCodescodes)

  • mac 版本 idea 2021.4激活码免费【在线破解激活】[通俗易懂]

    mac 版本 idea 2021.4激活码免费【在线破解激活】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 解决:java.lang.UnsupportedClassVersionError「建议收藏」

    解决:java.lang.UnsupportedClassVersionError「建议收藏」问题: java.lang.UnsupportedClassVersionError: xxxxx Unsupported major.minor version 52.0启动Tomcat时出现这种错误。造成这种错误的原因是你的Tomcat运行的JDK版本与支持application运行的JDK版本不一致导致的。解决方法: 1、Window—&gt…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号