org.hibernate.exception.SQLGrammarException:无法准备语句

新手上路,请多包涵

我创建了两个实体,并试图在加载后用数据填充其中一个,以将其显示为下拉列表。

我得到了错误

org.hibernate.exception.SQLGrammarException:无法准备语句

Group 必须在下拉列表中的实体是:

 @Entity
@Table(name="GROUP")
public class Group implements Serializable,Lifecycle{

    /**
     *
     */
    private static final long serialVersionUID = 5551707547269388327L;
    @Id
    @Column(name="ID")
    @GeneratedValue
    private int id;
    @Column(name="E_NAME")
    private String eName;
    @Column(name="A_NAME")
    private String aName;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String geteName() {
        return eName;
    }
    public void seteName(String eName) {
        this.eName = eName;
    }
    public String getaName() {
        return aName;
    }
    public void setaName(String aName) {
        this.aName = aName;
    }

    @Override
    public boolean onDelete(Session arg0) throws CallbackException {
        // TODO Auto-generated method stub
        return false;
    }
    @Override
    public void onLoad(Session session, Serializable arg1) {
        // TODO Auto-generated method stub
        Group adminGroup =new Group();
        Group sectionAdminGroup =new Group();
        Group userGroup =new Group();

        adminGroup.seteName("Admin");
        sectionAdminGroup.seteName("Section Admin");
        userGroup.seteName("User");

        adminGroup.setaName("مسشرف عام");
        sectionAdminGroup.setaName("مشرف قطاع");
        userGroup.setaName("مستخدم");

        session.save(adminGroup);
        session.save(sectionAdminGroup);
        session.save(userGroup);
    }
    @Override
    public boolean onSave(Session arg0) throws CallbackException {
        // TODO Auto-generated method stub
        return false;
    }
    @Override
    public boolean onUpdate(Session arg0) throws CallbackException {
        // TODO Auto-generated method stub
        return false;
    }

}

堆栈跟踪是:

由以下原因引起:

org.hibernate.exception.SQLGrammarException:无法在 org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:123) 在 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) 在 org.hibernate.engine.jdbc.internal.StatementPreparerImpl\(StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:196) 在 org.hibernate.engine .jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:160) 在 org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1884) 在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1861) 在org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1838) 在 org.hibernate.loader.Loader.doQuery(Loader.java:909) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)在 org.hi bernate.loader.Loader.doList(Loader.java:2551) 在 org.hibernate.loader.Loader.doList(Loader.java:2537) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367) 在 org .hibernate.loader.Loader.list(Loader.java:2362) 在 org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:126) 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1678) ) 在 org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380) 在 org.gaca.gms.dao.GenericDAOImpl.getAll(GenericDAOImpl.java:56) 在 org.gaca.gms.services.GenericServiceImpl.getAllObjects( GenericServiceImpl.java:61) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java .lang.reflect.Method.invoke(Method.java:483) 在 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) 在 org.springframework.aop.fram ework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)在 org.springframework.transaction.interceptor.TransactionInterceptor\)1.proceedWithInvocation(TransactionInterceptor.java:98 ) 在 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) 在 org.springframework.aop.framework.ReflectiveMethodInvocation。继续(ReflectiveMethodInvocation.java:179)在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)在 com.sun.proxy.\(Proxy39.getAllObjects(未知来源)在 org.gaca.gms.controllers .UsersController.listUsers(UsersController.java:43) 在 org.gaca.gms.controllers.UsersController\)\(FastClassBySpringCGLIB\)\(29260f80.invoke() 在 org.springfra mework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 在 org.springframework.aop.framework.CglibAopProxy\)CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:157) 在 org.springframework.transaction.interceptor.TransactionInterceptor\(1.proceedWithInvocation(TransactionInterceptor.java:98) 在 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) 在 org.springframework。 transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 在 org.springframework.aop.framework.CglibAopProxy\)DynamicAdvisedInterceptor.intercept(CglibAopProxy. java:644) 在 org.gaca.gms.controllers.UsersController$\(EnhancerBySpringCGLIB\)\(de07b585.listUsers() 在 sun.reflect.NativeMethodAccessorImpl.inv oke0(本机方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java.lang.reflect.Method.invoke(Method.java: 483) 在 org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) 在 org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 在 org.springframework.web .servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) 在 org.webspringframework .servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter. java:83) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) 在 org.springframework.web.servlet .FrameworkServlet.processRequest(FrameworkServlet.java:961) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 在 org. springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 在 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 在 org.mortbay.jetty.servlet.SessionHandler .handle(SessionHandler.java:181) 在 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) 在 org.mortbay.jetty.webapp.WebAp pContext.handle(WebAppContext.java:405) 在 org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) 在 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 在 org .mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 在 org.mortbay.jetty.Server.handle(Server.java:324) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) ) 在 org.mortbay.jetty.HttpConnection\)RequestHandler.headerComplete(HttpConnection.java:829) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser. java:211) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 在 org.mortbay.thread.QueuedThreadPool\(PoolThread .run(QueuedThreadPool.java:488) Caused by: org.h2.jdbc.JdbcSQLException: SQL 语句中的语法错误“SELECT THIS_.ID AS ID1_0_0_, THIS_.A_NAME AS A_NAME2_0_0 _, THIS_.E_NAME AS E_NAME3_0_0_ FROM GROUP\[\*\] THIS_ ";预期的“标识符”; SQL语句:select this_.ID as ID1_0_0_, this_.A_NAME as A_NAME2_0_0_, this_.E_NAME as E_NAME3_0_0_ from GROUP this_ \[42001-178\] at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) at org.h2 .message.DbException.getSyntaxError(DbException.java:204) 在 org.h2.command.Parser.readIdentifierWithSchema(Parser.java:3024) 在 org.h2.command.Parser.readTableFilter(Parser.java:1185) 在 org. h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1859) 在 org.h2.command.Parser.parseSelectSimple(Parser.java:1968) 在 org.h2.command.Parser.parseSelectSub(Parser.java:1853) 在 org .h2.command.Parser.parseSelectUnion(Parser.java:1674) 在 org.h2.command.Parser.parseSelect(Parser.java:1662) 在 org.h2.command.Parser.parsePrepared(Parser.java:434) org.h2.command.Parser.parse(Parser.java:306) 在 org.h2.command.Parser.parse(Parser.java:278) 在 org.h2.command.Parser.prepareCommand(Parser.java:243)在 org.h2.engine.Session.prepareLocal(Session.java:442) 在 org.h2.engine.Session.prepareCo命令(Session.java:384)在 org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188)在 org.h2.jdbc.JdbcPreparedStatement。(JdbcPreparedStatement.java:73)在 org.h2.jdbc.JdbcConnection。 org.apache.commons.dbcp.DelegatingConnection.prepareStatement(JdbcConnection.java:276) 在 org.apache.commons.dbcp.PoolingDataSource\)PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313) 在 org .hibernate.engine.jdbc.internal.StatementPreparerImpl\(5.doPrepare(StatementPreparerImpl.java:162) 在 org.hibernate.engine.jdbc.internal.StatementPreparerImpl\)StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186) … 73 更多

由以下原因引起:

org.h2.jdbc.JdbcSQLException:SQL 语句中的语法错误“SELECT THIS_.ID AS ID1_0_0_,THIS_.A_NAME AS A_NAME2_0_0_,THIS_.E_NAME AS E_NAME3_0_0_ FROM GROUP[*] THIS_”;预期的“标识符”; SQL语句:select this_.ID as ID1_0_0_, this_.A_NAME as A_NAME2_0_0_, this_.E_NAME as E_NAME3_0_0_ from GROUP this_ [42001-178] at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) at org.h2 .message.DbException.getSyntaxError(DbException.java:204) 在 org.h2.command.Parser.readIdentifierWithSchema(Parser.java:3024) 在 org.h2.command.Parser.readTableFilter(Parser.java:1185) 在 org. h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1859) 在 org.h2.command.Parser.parseSelectSimple(Parser.java:1968) 在 org.h2.command.Parser.parseSelectSub(Parser.java:1853) 在 org .h2.command.Parser.parseSelectUnion(Parser.java:1674) 在 org.h2.command.Parser.parseSelect(Parser.java:1662) 在 org.h2.command.Parser.parsePrepared(Parser.java:434) org.h2.command.Parser.parse(Parser.java:306) 在 org.h2.command.Parser.parse(Parser.java:278) 在 org.h2.command.Parser.prepareCommand(Parser.java:243)在 org.h2.engine.Session.prepareLocal(Session.java:442) 在 org.h2.engine.Session.prepareCo命令(Session.java:384)在 org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188)在 org.h2.jdbc.JdbcPreparedStatement。(JdbcPreparedStatement.java:73)在 org.h2.jdbc.JdbcConnection。 org.apache.commons.dbcp.DelegatingConnection.prepareStatement(JdbcConnection.java:276) 在 org.apache.commons.dbcp.PoolingDataSource\(PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313) 在 org .hibernate.engine.jdbc.internal.StatementPreparerImpl\)5.doPrepare(StatementPreparerImpl.java:162) 在 org.hibernate.engine.jdbc.internal.StatementPreparerImpl\(StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186) 在 org.hibernate.engine。 jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:160) 在 org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1884) 在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1861) 在 org .hibernate.loader.Loader.executeQueryStatement( Loader.java:1838) 在 org.hibernate.loader.Loader.doQuery(Loader.java:909) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354) 在 org.hibernate.loader.Loader.doList (Loader.java:2551) 在 org.hibernate.loader.Loader.doList(Loader.java:2537) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2367) 在 org.hibernate.loader.Loader。列表(Loader.java:2362)在 org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:126)在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1678)在 org.hibernate.internal .CriteriaImpl.list(CriteriaImpl.java:380) 在 org.gaca.gms.dao.GenericDAOImpl.getAll(GenericDAOImpl.java:56) 在 org.gaca.gms.services.GenericServiceImpl.getAllObjects(GenericServiceImpl.java:61) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在 java .lang.reflect.Method.invoke(Method.java:483) 在 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java :190) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 在 org.springframework.transaction.interceptor.TransactionInterceptor\)1.proceedWithInvocation(TransactionInterceptor.java:98) 在 org.springframework.transaction.interceptor .TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) 在 com.sun.proxy.\(Proxy39.getAllObjects(Unknown Source) 在 org.gaca。 gms.controllers.UsersController.listUsers(UsersController.java:43) 在 org.gaca.gms.controllers.UsersController\)\(FastClassBySpringCGLIB\)\(29260f80.invoke() 在 org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java :204) 在 org.springframework.aop.framework.CglibAopProxy\)CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 在 org.springframework.transaction。 interceptor.TransactionInterceptor\(1.proceedWithInvocation(TransactionInterceptor.java:98) 在 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) ) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 在 org.springframework.aop.framework.CglibAopProxy\)DynamicAdvisedIntercep tor.intercept(CglibAopProxy.java:644) 在 org.gaca.gms.controllers.UsersController$\(EnhancerBySpringCGLIB\)\(de07b585.listUsers() 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:483) 在 org.springframework.web.method.support。 InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)在 org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)在 org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:104) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAda pter.handleInternal(RequestMappingHandlerAdapter.java:689) 在 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java: 938)在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) .doGet(FrameworkServlet.java:852) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 在 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 在 javax.servlet。 http.HttpServlet.service(HttpServlet.java:820) 在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)在 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 在 org.mortbay。 jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 在 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) 在 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) 在 org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) 在 org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 在 org.mortbay.jetty.handler.HandlerWrapper .handle(HandlerWrapper.java:152) 在 org.mortbay.jetty.Server.handle(Server.java:324) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 在 org.mortbay.jetty。 HttpConnection\)RequestHandler.headerComplete(HttpConnection.java:829) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 在 org.mortbay .jetty.HttpConnection.handle(HttpConnection.java:380) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 在 org.mortbay.thread.QueuedThreadPool$ PoolThread.run(QueuedThreadPool.java:488)

这是我的 Spring 控制器:

 @SuppressWarnings("unchecked")
        @RequestMapping(method=RequestMethod.GET)
          public String listUsers(Map<String, Object> map) {

            map.put("user", new User());
            map.put("usersList", usersService.getAllObjects(User.class));
            map.put("groupsList", usersService.getAllObjects(Group.class));
            return "index";
        }

这是我的 JSP 页面:

 <tr>
                  <td>groups</td>
                  <td><form:select path="selectedGroup">
                  <form:options items="${groupsList}"/>
                  </form:select></td>
                  </tr>

我是新来的。有人可以帮忙吗?

原文由 Dunken 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您使用的表名 GROUP 是 h2 数据库的保留关键字。使用类似 ADMIN_GROUP 的名称重命名您的表。

这是 h2 文档 的摘录:

关键字/保留字

有一个关键字列表不能用作标识符(表名、列名等),除非它们被引用(用双引号引起来)。目前名单如下:

CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DISTINCT, EXCEPT, EXISTS, FALSE, FOR, FROM, FULL, GROUP, HAVING, INNER, INTERSECT, IS, JOIN, LIKE, LIMIT, MINUS, NATURAL, NOT, NULL, ON, ORDER, PRIMARY, ROWNUM, SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP, TODAY, TRUE, UNION, UNIQUE, WHERE

此列表中的某些词是关键字,因为它们是可以在没有“()”的情况下使用以实现兼容性的函数,例如 CURRENT_TIMESTAMP

原文由 Sajan Chandran 发布,翻译遵循 CC BY-SA 4.0 许可协议

大约 40 分钟后,我发现 usercurrentUser 也不应该被使用

//this cause error
@Column()
private String user;

这导致: could not prepare statement; SQL [insert into table_progress (id, created, user, progress, updated, xdip) values (default, ?, ?, ?, ?, ?)]

 //changed to this and works
@Column()
private String userP;

原文由 Philippe 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题