怎么查网站的外链数量,wordpress 超级留言板,北京建工招标平台,发明迷网站豆渣做豆腐首先为大家科普一下#xff0c;Mybatis事实上就是Ibatis。它是由Ibatis更名而来。 最近在学Mybatis的知识#xff0c;在讲到为实体类定义别名是有两个小知识与大家共勉。 为实体类定义别名一般有以下几个部分组成 1.在Mybatis的配置#xff08;一般为conf.xml#xff09;文… 首先为大家科普一下Mybatis事实上就是Ibatis。它是由Ibatis更名而来。 最近在学Mybatis的知识在讲到为实体类定义别名是有两个小知识与大家共勉。 为实体类定义别名一般有以下几个部分组成 1.在Mybatis的配置一般为conf.xml文件中添加以下代码 typeAliases !-- typeAlias typezq.mybatis.test1.User alias_User/ -- package namezq.mybatis.test1//typeAliases 细心的朋友会看到代码中备注掉的和没有被注释掉的。没错今天的主题就是这两个key word-------typeAlias pakage (1).typeAlias具有属性 type 和aliastypeAlias typezq.mybatis.test1.User alias_User/ type中的属性值写的是对应实体的全类名。以上为例则表示实体类“User”所在的包路径“zq.mybatis.test1.”两个部分组成。 alias的属性值则是取代type中的属性值 (2).package具有属性name。顾名思义就是所在包的名字。package namezq.mybatis.test1.User/ 2.在对应的映射文件中将使用别名 !-- 插入对象是的传入参数为整个实体类相对应的参数要与实体中属性相同 --insert idinsertUser parameterType_User insert into users(name,age) values(#{name},#{age})/insert !-- 查询所有结果时因为是将一个一个的USer实体添加到list中 所以在指定其返回结果参数只需要指定为返回实体就可以了 --select idgetAllUser resultType_User select * from users/select 很显然以上映射文件中我使用的别名是“typeAlias”定义出来的别名。当使用这种方式定义别名的时候操作起来不会出错。但如果换成“package”定义的时候呢他又没有设置别名使用的时候该怎么使用别名呢此时如果直接使用“_User”则会出现以下错误 java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:195) at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:244) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may exist in zq/mybatis/test2/usermapper.xml### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias _User. Cause: java.lang.ClassNotFoundException: Cannot find class: _User at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:79) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:63) at zq.mybatis.utils.mybitsUtils.getfaFactory(mybitsUtils.java:17) at zq.mybatis.test2.Test2.clinit(Test2.java:13) ... 22 moreCaused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias _User. Cause: java.lang.ClassNotFoundException: Cannot find class: _User at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:105) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:88) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:77) ... 25 moreCaused by: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias _User. Cause: java.lang.ClassNotFoundException: Cannot find class: _User at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:113) at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:88) at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:311) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:103) ... 27 moreCaused by: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias _User. Cause: java.lang.ClassNotFoundException: Cannot find class: _User at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:94) at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:79) at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:128) at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:121) at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:111) ... 30 moreCaused by: org.apache.ibatis.type.TypeException: Could not resolve type alias _User. Cause: java.lang.ClassNotFoundException: Cannot find class: _User at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:109) at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:115) at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:92) ... 34 moreCaused by: java.lang.ClassNotFoundException: Cannot find class: _User at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:188) at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:87) at org.apache.ibatis.io.Resources.classForName(Resources.java:250) at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:105) ... 36 more 使用package设置别名时还使用“typeAlias”定义出来的别名“_User二出现上面的这样的错误”是可以预料到的。那到底使用package设置别名的手该如何运用这个别名呢其实道理很简单我指定了他的包名那这个包下面的所有实体相当于已经被设置了别名而这个别名实际上就是某一个实体自己的实体名。 update idupdateUser parameterTypeUser update users set name#{name},age#{age} where id#{id}/updateselect idgetAllUser resultTypeUser select * from users/select 总的来说就是一个是设置到了具体的实体名TypeAlias而另一个则是只指定到了实体所在的包名(package)。从长远了看来使用后者设置包名在项目开发中更方便更好使 转载于:https://www.cnblogs.com/overtime-zhao/p/5601146.html