- 浏览: 22297 次
- 性别:
- 来自: 北京
文章分类
最新评论
(文章为转载收集整理。。。。。若有不足请指正!!!谢谢。)
1. java.lang.NoClassDefFoundError: org/dom4j/DocumentException 缺少dom4j-1.6.1.jar包
2. java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager 缺少hibernate-commons-annotations-4.0.2.Final.jar包
3. java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger 缺少jboss-logging-3.1.0.GA.jar包,这是由于hibernate4日志机制改了。
4. java.lang.NoClassDefFoundError: javax/transaction/SystemException 缺少jta-1.1.jar包
5. java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 缺少slf4j-api-1.6.1.jar包
6. java.lang.NoClassDefFoundError: javax/persistence/EntityListeners 缺少hibernate-jpa-2.0-api-1.0.1.Final.jar
7. java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap 缺少commons-collections-3.1.jar
8. org.hibernate.HibernateException Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer 缺少javassist-3.12.0.GA.jar
=========!!华丽分割线!!==================
1.net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文
件出现错误。
当出现net.sf.hibernate.MappingException: Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中。
2. net.sf.hibernate.PropertyNotFoundException 当出现net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property
name in class …时,原因一般是因为XML映射文件中的属性与对应的Java类中的属性的getter或setter方法不一致。
3. org.hibernate.id.IdentifierGenerationException 当出现org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():异常时,一般是因为<id>元素配置不正确,<id>元素缺少其子元素<generator></generator>的配置引起。
解决方案:<id>元素映射了相应数据库表的主键字段,对其子元素<generator >,其中class
的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native 。具体可参考2.2.2.1小节。
4. a different object with the same identifier value was already associated with the session 当出现a different object with the same identifier value was already associated with the
session时,一般是因为在hibernate中同一个session里面有了两个相同标识但是是不同实体。
有如下几种解决方案:
(1)使用session.clean(),如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Found two representations of same collection"异常。
(2)使用session.refresh(object),当object不是数据库中已有数据的对象的时候,不能使用
session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。
(3)session.merge(object),Hibernate里面自带的方法,推荐使用。
再次碰到:a different object with the same identifier value was already associated with the
session这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体.
一开始按网上说的用session.merge(Object)报了一个错,可能是没有用好,改用 session.clear();
session.update(user);这样就OK了,
方法为:
package org.springframework.orm.hibernate3.support;
...
public void modifyByMerge(User user) {
Session session = getHibernateTemplate().getSessionFactory().
getCurrentSession();
session.clear();
session.update(user);
}
...
项目用的是spring + hibernate所以得用getHibernateTemplate().getSessionFactory
().getCurrentSession();得当前Session
5. SQL Grammer Exception,Could not execute JDBC batch update 当出现SQL Grammer Exception,Could not execute JDBC batch update异常时,一般是由如下问题
引起:
(1)SQL语句中存在语法错误或是传入的数据有误;
(2)数据库的配置不合法,或者说是配置有误。较容易出现的有数据表的映射文件(,hbm.xml文件)配置有误;Hibernate.cfg.xml文件配置有误;
(3) 当前的数据库用户权限不足,不能操作数据库。以是以Oracle 数据库为例,这种情况下在错误提示中
会显示java.sql.BatchUpdateException: ORA-01031: insufficient privileges这样的信息。
针对上面的各种原因,开发人员可以找出对应的解决方案。
6.net.sf.hibernate.QueryException: undefined alias:我猜想出项这种错误的原因有很多种:可能是大小写问题,还有其他很多种可能
7.net.sf.hibernate.NonUniqueResultException:检索单个对象时,查询结果包含多个对象,但没有调用setMaxResult()方法
8.net.sf.hibernate.QueryException: Not all named parameters have been set
使用setProperties()方法:用于把命名参数与一个对象的属性值绑定时,对象中没有匹配的名字相同的属
性。
文章出处:http://www.diybl.com/course/3_program/java/javashl/2008410/108844_2.html
=========JUnit显示:==================
1 .Caused by: org.dom4j.DocumentException: Invalid byte 2 of 2-byte UTF-8 sequence. Nested
exception: Invalid byte 2 of 2-byte UTF-8 sequence.
如果出现这行错误说明你的XML配置文件有不规范的字符,检查下。
2 .net.sf.hibernate.MappingException: Error reading resource: hibernate/Hello_Bean.hbm.xml
如果出现这行错误说明你的hibernate的XML配置文件有错
3 .net.sf.hibernate.MappingException: Resource: hibernate/Hello_Bean.hbm.xml not found
如果出现这行错误说明hibernate的XML配置文件没有找到,你应该把XML文件放在与你的类文件同个目录下,
本文中是放在hibernate\classes\hibernate\目录下,也就是跟Hello_Bean.class类文件一起。
4 .net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class hibernate.Hello_Bean
如果出现这行错误说明你的xml文件里设置的字段名name的值与Hello_Bean.Java类里的getXXX或setXXX方法不一致。
5 .net.sf.hibernate.HibernateException: JDBC Driver class not found: org.gjt.mm.mysql.Driver
6.The database returned no natively generated identity value 。 主键没有添加增量
===========================
Exception : No form found under 'loginForm' in locale 'en_US'
这个错误完全是我自己给自己找麻烦,我在给loginForm做表单验证时,用了validator,我在写
validation.xml文件时,突然发神经,想写得比较国际化一点,这样写的:
<formset language="zh" country="CN"> <!--这个是zh_CN的-->
开始是一点问题都没有,因为我们大家一般都用中文系统,后来有一天我用linux,当时环境是english,
结果发现页面就报错:No form found under 'loginForm' in locale 'en_US'。
当时,特别郁闷,后来仔细回忆,想起当时只在validation.xml文件里显式的写过国际化相关的东西,后来
就把 language="zh" country="CN" 给删掉了。即:
<formset>。。。。。。</formset>
再用英文系统访问就没有事情了,看来你要是想国际化,就把所有的情况的配置都写全了,不要只指定中文
的配置,英文的不配置,那样,别人用英文系统的人就会出错。所以,建议还是不要制定国际化,看来有的
时候还是偷懒一点比较好!
===========================
Hibernate错误:org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
原因多半是你的mapping文件的主键没有设置对。检查如下:
一:看你的主键类型是什么?如果是long,int等,记得设置unsaved-value="0"
二:如果是string 的话,请设置unsaved-value="null"
注意unsaved-value是个很重要的属性。Hibernate通过这个属性来判断一个对象应该save还是update,如果这个对象的id是unsaved-value的话,那说明这个对象不是 persistence object要save(insert);如果id是非unsaved-value的话,那说明这个对象是persistence object(数据库中已存在),只要update就行了。
你可以Debug跟一下你的代码,看看在 session.update(obj); 的时候,obj的主键的值是不是按你定义的那
样,obj可以被hibernate认为是一个已经持久化在数据库里的对象
===========================================================
java.lang.NoClassDefFoundError: antlr/ANTLRException
原因是:缺少antlr-2.7.5H3.jar
---------------------------------------2--------------------------------------
public class NoSuchMethodError
extends IncompatibleClassChangeError
如果应用程序试图调用一个类的指定方法(无论是静态还是动态),但是该类不再有该方法的定义,则抛出该异常。
通常由编译器检测此错误;如果类定义不允许再作兼容性的改变,那么此错误只可能发生在运行时刻。
----------------------------------3--------------------------------------------------
今天用hibernate3做关系映射,当调用映射类的时候总是报
org.hibernate.LazyInitializationException: could not initialize proxy错误
原因:
hb3对many-to-one的默认处理是lazy = "proxy" 而hb2是false
所以,要这么设置
<many-to-one column="sort_id"
cascade="all" outer-join="true" lazy="false" />
------------------------------------4--------------------------------------------------
java.sql.Timestamp异常
原因:时间date错误
更改时间java.util.Date 为java.lang.String就好了,同时修改配置文件中的内容
------------------------------------5--------------------------------------------------
Cannot find bean in any scope
分类:Struts异常
1.出现这种错误一般是资源文件没找到或是资源文件里没有对应的key值。
2.struts-config.xml里的Action配置里把redirect设置为了true;改成false,
3.在Action里一般会request.setAttribute()一些对象,然后在转向的jsp文件里
(用tag或 request.getAttribute()方法)得到这些对象并显示出来。
这个异常是说jsp要得到一个对象,
但前面的Action里并没有将对象设置到request(也可以是session、servletContext)里。
可能是名字错了,请检查jsp里的tag的一般是name属性,或getAttribute()方法的参数值;
或者是Action逻辑有问题没有执行setAttribute()方法就先转向了。
还有另外一个可能,纯粹是jsp文件的问题,例如<logic:iterate>会指定一个id值,
然后在循环里<bean:write>使用这个值作为name的值,如果这两个值不同,
也会出现此异常。(都是一个道理,request里没有对应的对象。)
4.这个情况比较特殊,应该算没有把STRUTS标记库的机制搞明白,
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
如果没有在头声明这个就用logic:iterate标记,
在bean:write的时候就会出异常!
---------------------------------6----------------------------------------------------
HibernateException: Not able to obtain connection
org.hibernate.HibernateException: Not able to obtain connection
差不多等于没有连接数据库了。要保证Hibernate的Session工厂能正常工作。
这个一般我们的做法是Session工厂设置成静态的。
然后需要进行操作就打开一个会话。所以在设计的时候注意一下。这个Session工厂对象。
最好是放在
static{ }块里。然后用个抽象类去实现它,然后其他的类都实现这个抽象类就搞定了!
---------------------------------7----------------------------------------------------
org.hibernate.MappingException: Error reading resource: XXXX.XML
这个异常出现的报错还有:
Could not configure datastore from input stream
org.dom4j.DocumentException: xxxxx(系统找不到指定的文件。) Nested exception: xxxx
org.hibernate.MappingException: Error reading resource: xxxx
这个异常主要出现的情况有:
(1)没有映射文件,也就是没有xxx.hbm.xml
(2)在xxx.hbm.xml文件中有错误,主要可能是书写错误,或有乱码
(3) 这个问题最恶心,一般人不会注意到,就是要注意配置文件和映射文件都必须用同一个版本的HIBERNATE
,怎么看是否用同一个HIBERNATE呢,你可以查看hibernate.cfg.xml和xxx.hbm.xml开头内容:
例如
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
如果一个是2.0一个是3.0到时候DOM4J就会出异常。解析不了咯!
---------------------------------------8-----------------------------------------------
save the transient instance before flushing
1.
(1)做Hibernate多对一的时候,报错:
org.apache.jasper.JasperException: Error creating bean with name 'sf' defined in ServletContext
resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is
org.hibernate.PropertyNotFoundException: Could not find a getter for person in class
com.accp.vo.Course
因为配置文件中的一个 <many-to-one ../> 中的person属性名称写错了.
还有原因如下:
1)getter()方法写错了,没有按照javaBean的规则写.
2)*.hmb.xml中的属性名和pojo中的是否一致.注意:属性名是否多了空格.
(2).Hibernate多对一报错:
save the transient instance before flushing
具体错误为在one-to-many中,对many进行save时,由于没有加入one的外建,导致错误。
具体解决方法:
(1)、在one的hbm文件中 invest=true
(2)、在many保存前务必要求one的存在
---------------------------------------9-----------------------------------------------
Named query not known
在使用session.getNamedQuery("XXX");执行HQL语句的时候,没有找 XXX语句,这主要是2个原因
1:粗心,把名给写错了
2:XXX的HQL语句所在的.hbm.xml没有在hibernate.cfg.xml里注册过!
---------------------------------------10----------------------------------------------
Expected positional parameter count: X, actual parameters:
org.hibernate.QueryException: Expected positional parameter count: 2, actual parameters: []
[SELECT * from Ad where gr_id = ? and adst_id = ?]
这样的异常主要原因是:
//以下为例子
Query query =session.getNamedQuery("OnlienAd");
query.setParameter(0,gray.getId());
query.setParameter(1,Globals.UPED_STATE);
可以看到query.setParameter()设置了位,也可以理解成他在要执行的HQL语句中占了2个位置。
然后执行的时候会对应HQL里的?中去。
如果你并没有setParameter(),但你的HQL里却有?那么就会出这个异常。
---------------------------------------11---------------------------------------------
org.hibernate.MappingException: Association references:XXX
---------------------------------------12---------------------------------------------
org.hibernate.exception.SQLGrammarException: could not initialize
无法实例集合。
这个是问题在你当前的实体中有一个一对多需实例的对象。但这个对象却无法实例出来,说明一对多那个多
的一方实体有问题,多数情况可能有:
1、数据库该动过但代码没动
2、实体代码有错误
---------------------------------------13---------------------------------------------
org.hibernate.id.IdentifierGenerationException
异常信息:org.hibernate.id.IdentifierGenerationException: ids for this class must be manually
assigned before calling save():
异常原因:
<id>元素配置不正确,
<id>元素缺少其子元素<generator></generator>的配置。
解决方法:<id>元素映射了相应数据库表的主键字段,对其子元素<generator >,其中class的取值
可以为increment、identity、sequence、hilo、native...... 等,更多的可参考hibernate参考文档,一般
取其值为native 。
MySQL:identity,increment,hilo,native.
SQL Server:identity,increment,hilo,native.
Oracle:sequence,seqhilo,increment,native.
跨平台开发:native.
native将字段管理交给数据库自己定义。
---------------------------------------8-----------------------------------------------
not-null property references a null or transient value
此异常出现看开头就个单词就知道啦
的实体约束不能为空却为空造成的,那我在这说一下对于这样的情况我们时常犯的错误。
我们在对实体进行更新操作时最好是在一个会话中将数据从数据库中调出并实例BEAN的对象。
然后再对此对象进行更改后在更新。
这样的好处是:
一、数据是最新鲜的。
二、避免不必要的设置,特别是在一对多和多对多的情况下,比如你现在操作的实体并不是在一个会话中得
到,而是保存在某些容器中,比如jsp的 SESSION中,虽然这样的实体对象中有很多数据,但是如果你想得到
这些实体对应的1对多或多对1的实体时,就会发现会出现session已经关闭的异常。或则在你更新数据时出现
not-null异常等。
---------------------------------------14----------------------------------------------
Remember that ordinal parameters are 1-based!
HQL语句有错误
---------------------------------------15---------------------------------------------
failed to lazily initialize a collection of role: XXXXXXXX no session or
这个异常大致意思是说在多对一的时候(并且lazy="false"),对象的实例失败,多数出现的情况有
1、粗心造成
实例对象类名写错之类的
2、逻辑错误
如之前就已经传递过来一个实体对象,然后调用实体对象的方法时牵涉到1对多的情况,但此时SESSION已经
关闭,所以根本无法进行一对多的操作。
3、设计到跨度的问题:
这样打比方有多个实体对象,他们直接或则间接的有关联。比如有4个实体,分别是广告信息、广告、广告问
答题、广告商:他们之间的关系为:
广告商 1:n 广告
广告 1:n 广告问答题
广告商 1:n 广告商信息
大家可以看到广告和广告商信息是没有直接关系的。但我要添加广告的时候我就必须将广告商的实体做为条
件。那么这么一来广告商信息可能间接的就必须用上。下面看我的操作:
ad(广告),subject(题目)
========================
1、OpenSessionInView模式:
以下有2种方法,第1种是结合SPRING,第2种是采用了拦截器
Spring+Hibernate中,集合映射如果使用lazy="true", 当PO传到View层时, 出现未初始化session已关闭的错误,只能在dao先初始化
parent.getChilds().size();
Spring提供Open Session In View来解决这个问题, 有两种方式
1. Interceptor
<!--</span><span style="COLOR: rgb(0,128,0)"> =========== OpenSession In View pattern
==============</span><span style="COLOR: rgb(0,128,0)">-->
<bean
>
<property ref="sessionFactory"/>
</bean>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property ref="openSessionInViewInterceptor"/>
<property >
<props>
......
</props>
</property>
</bean>
2. Filter
<web-app>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
</web-app>
第2种解决方法:
Hibernate.initialize()强制加载关联对象
---------------------------------------16----------------------------------------------
Hibernate的No CurrentSessionContext configured 解决方案
Hibernate No CurrentSessionContext configured!
当你使用 Hibernate session factory的getCurrentSession() 函数时候,你可能见到过"No
CurrentSessionContext configured!"
出现这个问题,是因为你没有正确配置 Hibernate internal session context management .
你只要在Hibernate.cfg.xml文件中添加下面的配置就可以了:
<property >thread</property>
=========转载收集整理====================
错误1:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
错误原因:
这是一个警告信息,提示说没有找到Log4j的配置信息,不能为Hibernate环境提供日志信息,要求初始化log4j配置文件。
解决方法:
在项目的src下添加log4j.properties文件,该文件是log4j配置信息,内容如下:
错误2:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Level
错误原因:
缺少log4j,因为hibernate框架本身也使用了第三方组件log4j来输出Hibernate环境下执行的信息。
解决方法:
为项目导入log4j-1.2.15.jar包,或其他版本的都可以。
错误3:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
错误原因:
找不到类StaticLoggerBinder,缺少日志接口包slf4j-log4j.jar
解决方法:
导入slf4j-log4j12-1.5.8.jar,这个包与Hibernate3.3.2的版本对应
错误4:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
错误原因:
找不到类LoggerFactory,缺少包slf4j-api.jar
解决方法:
导入slf4j-api-1.5.8.jar,这个包与Hibernate3.3.2的版本对应
错误5:
SLF4J: The requested version 1.6.99 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
错误原因:
这是jar包slf4j-log4j12.jar版本与Hibernate版本不相符引起的
解决方法:
删除原来的版本的jar包,导入slf4j-log4j12-1.5.8.jar这个版本的jar包
错误6:
Exception in thread "main" java.lang.AbstractMethodError: Oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()
错误原因:
在Hibernate下,导入classes12.jar时会报这个错误
解决方法:
删除classes12.jar,导入ojdbc5.jar或ojdbc6.jar来取代
错误7:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:
java.naming.factory.initial
错误原因:
Hibernate是采用JDBC 驱动,在配置文件hibernate.cfg.xml的<session-factory name="test">节点多了一个name属性
解决方法:
删除节点<session-factory>的name属性
1. java.lang.NoClassDefFoundError: org/dom4j/DocumentException 缺少dom4j-1.6.1.jar包
2. java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager 缺少hibernate-commons-annotations-4.0.2.Final.jar包
3. java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger 缺少jboss-logging-3.1.0.GA.jar包,这是由于hibernate4日志机制改了。
4. java.lang.NoClassDefFoundError: javax/transaction/SystemException 缺少jta-1.1.jar包
5. java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 缺少slf4j-api-1.6.1.jar包
6. java.lang.NoClassDefFoundError: javax/persistence/EntityListeners 缺少hibernate-jpa-2.0-api-1.0.1.Final.jar
7. java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap 缺少commons-collections-3.1.jar
8. org.hibernate.HibernateException Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer 缺少javassist-3.12.0.GA.jar
=========!!华丽分割线!!==================
1.net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文
件出现错误。
当出现net.sf.hibernate.MappingException: Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中。
2. net.sf.hibernate.PropertyNotFoundException 当出现net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property
name in class …时,原因一般是因为XML映射文件中的属性与对应的Java类中的属性的getter或setter方法不一致。
3. org.hibernate.id.IdentifierGenerationException 当出现org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():异常时,一般是因为<id>元素配置不正确,<id>元素缺少其子元素<generator></generator>的配置引起。
解决方案:<id>元素映射了相应数据库表的主键字段,对其子元素<generator >,其中class
的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native 。具体可参考2.2.2.1小节。
4. a different object with the same identifier value was already associated with the session 当出现a different object with the same identifier value was already associated with the
session时,一般是因为在hibernate中同一个session里面有了两个相同标识但是是不同实体。
有如下几种解决方案:
(1)使用session.clean(),如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Found two representations of same collection"异常。
(2)使用session.refresh(object),当object不是数据库中已有数据的对象的时候,不能使用
session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。
(3)session.merge(object),Hibernate里面自带的方法,推荐使用。
再次碰到:a different object with the same identifier value was already associated with the
session这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体.
一开始按网上说的用session.merge(Object)报了一个错,可能是没有用好,改用 session.clear();
session.update(user);这样就OK了,
方法为:
package org.springframework.orm.hibernate3.support;
...
public void modifyByMerge(User user) {
Session session = getHibernateTemplate().getSessionFactory().
getCurrentSession();
session.clear();
session.update(user);
}
...
项目用的是spring + hibernate所以得用getHibernateTemplate().getSessionFactory
().getCurrentSession();得当前Session
5. SQL Grammer Exception,Could not execute JDBC batch update 当出现SQL Grammer Exception,Could not execute JDBC batch update异常时,一般是由如下问题
引起:
(1)SQL语句中存在语法错误或是传入的数据有误;
(2)数据库的配置不合法,或者说是配置有误。较容易出现的有数据表的映射文件(,hbm.xml文件)配置有误;Hibernate.cfg.xml文件配置有误;
(3) 当前的数据库用户权限不足,不能操作数据库。以是以Oracle 数据库为例,这种情况下在错误提示中
会显示java.sql.BatchUpdateException: ORA-01031: insufficient privileges这样的信息。
针对上面的各种原因,开发人员可以找出对应的解决方案。
6.net.sf.hibernate.QueryException: undefined alias:我猜想出项这种错误的原因有很多种:可能是大小写问题,还有其他很多种可能
7.net.sf.hibernate.NonUniqueResultException:检索单个对象时,查询结果包含多个对象,但没有调用setMaxResult()方法
8.net.sf.hibernate.QueryException: Not all named parameters have been set
使用setProperties()方法:用于把命名参数与一个对象的属性值绑定时,对象中没有匹配的名字相同的属
性。
文章出处:http://www.diybl.com/course/3_program/java/javashl/2008410/108844_2.html
=========JUnit显示:==================
1 .Caused by: org.dom4j.DocumentException: Invalid byte 2 of 2-byte UTF-8 sequence. Nested
exception: Invalid byte 2 of 2-byte UTF-8 sequence.
如果出现这行错误说明你的XML配置文件有不规范的字符,检查下。
2 .net.sf.hibernate.MappingException: Error reading resource: hibernate/Hello_Bean.hbm.xml
如果出现这行错误说明你的hibernate的XML配置文件有错
3 .net.sf.hibernate.MappingException: Resource: hibernate/Hello_Bean.hbm.xml not found
如果出现这行错误说明hibernate的XML配置文件没有找到,你应该把XML文件放在与你的类文件同个目录下,
本文中是放在hibernate\classes\hibernate\目录下,也就是跟Hello_Bean.class类文件一起。
4 .net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class hibernate.Hello_Bean
如果出现这行错误说明你的xml文件里设置的字段名name的值与Hello_Bean.Java类里的getXXX或setXXX方法不一致。
5 .net.sf.hibernate.HibernateException: JDBC Driver class not found: org.gjt.mm.mysql.Driver
6.The database returned no natively generated identity value 。 主键没有添加增量
===========================
Exception : No form found under 'loginForm' in locale 'en_US'
这个错误完全是我自己给自己找麻烦,我在给loginForm做表单验证时,用了validator,我在写
validation.xml文件时,突然发神经,想写得比较国际化一点,这样写的:
<formset language="zh" country="CN"> <!--这个是zh_CN的-->
开始是一点问题都没有,因为我们大家一般都用中文系统,后来有一天我用linux,当时环境是english,
结果发现页面就报错:No form found under 'loginForm' in locale 'en_US'。
当时,特别郁闷,后来仔细回忆,想起当时只在validation.xml文件里显式的写过国际化相关的东西,后来
就把 language="zh" country="CN" 给删掉了。即:
<formset>。。。。。。</formset>
再用英文系统访问就没有事情了,看来你要是想国际化,就把所有的情况的配置都写全了,不要只指定中文
的配置,英文的不配置,那样,别人用英文系统的人就会出错。所以,建议还是不要制定国际化,看来有的
时候还是偷懒一点比较好!
===========================
Hibernate错误:org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
原因多半是你的mapping文件的主键没有设置对。检查如下:
一:看你的主键类型是什么?如果是long,int等,记得设置unsaved-value="0"
二:如果是string 的话,请设置unsaved-value="null"
注意unsaved-value是个很重要的属性。Hibernate通过这个属性来判断一个对象应该save还是update,如果这个对象的id是unsaved-value的话,那说明这个对象不是 persistence object要save(insert);如果id是非unsaved-value的话,那说明这个对象是persistence object(数据库中已存在),只要update就行了。
你可以Debug跟一下你的代码,看看在 session.update(obj); 的时候,obj的主键的值是不是按你定义的那
样,obj可以被hibernate认为是一个已经持久化在数据库里的对象
===========================================================
java.lang.NoClassDefFoundError: antlr/ANTLRException
原因是:缺少antlr-2.7.5H3.jar
---------------------------------------2--------------------------------------
public class NoSuchMethodError
extends IncompatibleClassChangeError
如果应用程序试图调用一个类的指定方法(无论是静态还是动态),但是该类不再有该方法的定义,则抛出该异常。
通常由编译器检测此错误;如果类定义不允许再作兼容性的改变,那么此错误只可能发生在运行时刻。
----------------------------------3--------------------------------------------------
今天用hibernate3做关系映射,当调用映射类的时候总是报
org.hibernate.LazyInitializationException: could not initialize proxy错误
原因:
hb3对many-to-one的默认处理是lazy = "proxy" 而hb2是false
所以,要这么设置
<many-to-one column="sort_id"
cascade="all" outer-join="true" lazy="false" />
------------------------------------4--------------------------------------------------
java.sql.Timestamp异常
原因:时间date错误
更改时间java.util.Date 为java.lang.String就好了,同时修改配置文件中的内容
------------------------------------5--------------------------------------------------
Cannot find bean in any scope
分类:Struts异常
1.出现这种错误一般是资源文件没找到或是资源文件里没有对应的key值。
2.struts-config.xml里的Action配置里把redirect设置为了true;改成false,
3.在Action里一般会request.setAttribute()一些对象,然后在转向的jsp文件里
(用tag或 request.getAttribute()方法)得到这些对象并显示出来。
这个异常是说jsp要得到一个对象,
但前面的Action里并没有将对象设置到request(也可以是session、servletContext)里。
可能是名字错了,请检查jsp里的tag的一般是name属性,或getAttribute()方法的参数值;
或者是Action逻辑有问题没有执行setAttribute()方法就先转向了。
还有另外一个可能,纯粹是jsp文件的问题,例如<logic:iterate>会指定一个id值,
然后在循环里<bean:write>使用这个值作为name的值,如果这两个值不同,
也会出现此异常。(都是一个道理,request里没有对应的对象。)
4.这个情况比较特殊,应该算没有把STRUTS标记库的机制搞明白,
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
如果没有在头声明这个就用logic:iterate标记,
在bean:write的时候就会出异常!
---------------------------------6----------------------------------------------------
HibernateException: Not able to obtain connection
org.hibernate.HibernateException: Not able to obtain connection
差不多等于没有连接数据库了。要保证Hibernate的Session工厂能正常工作。
这个一般我们的做法是Session工厂设置成静态的。
然后需要进行操作就打开一个会话。所以在设计的时候注意一下。这个Session工厂对象。
最好是放在
static{ }块里。然后用个抽象类去实现它,然后其他的类都实现这个抽象类就搞定了!
---------------------------------7----------------------------------------------------
org.hibernate.MappingException: Error reading resource: XXXX.XML
这个异常出现的报错还有:
Could not configure datastore from input stream
org.dom4j.DocumentException: xxxxx(系统找不到指定的文件。) Nested exception: xxxx
org.hibernate.MappingException: Error reading resource: xxxx
这个异常主要出现的情况有:
(1)没有映射文件,也就是没有xxx.hbm.xml
(2)在xxx.hbm.xml文件中有错误,主要可能是书写错误,或有乱码
(3) 这个问题最恶心,一般人不会注意到,就是要注意配置文件和映射文件都必须用同一个版本的HIBERNATE
,怎么看是否用同一个HIBERNATE呢,你可以查看hibernate.cfg.xml和xxx.hbm.xml开头内容:
例如
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
如果一个是2.0一个是3.0到时候DOM4J就会出异常。解析不了咯!
---------------------------------------8-----------------------------------------------
save the transient instance before flushing
1.
(1)做Hibernate多对一的时候,报错:
org.apache.jasper.JasperException: Error creating bean with name 'sf' defined in ServletContext
resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is
org.hibernate.PropertyNotFoundException: Could not find a getter for person in class
com.accp.vo.Course
因为配置文件中的一个 <many-to-one ../> 中的person属性名称写错了.
还有原因如下:
1)getter()方法写错了,没有按照javaBean的规则写.
2)*.hmb.xml中的属性名和pojo中的是否一致.注意:属性名是否多了空格.
(2).Hibernate多对一报错:
save the transient instance before flushing
具体错误为在one-to-many中,对many进行save时,由于没有加入one的外建,导致错误。
具体解决方法:
(1)、在one的hbm文件中 invest=true
(2)、在many保存前务必要求one的存在
---------------------------------------9-----------------------------------------------
Named query not known
在使用session.getNamedQuery("XXX");执行HQL语句的时候,没有找 XXX语句,这主要是2个原因
1:粗心,把名给写错了
2:XXX的HQL语句所在的.hbm.xml没有在hibernate.cfg.xml里注册过!
---------------------------------------10----------------------------------------------
Expected positional parameter count: X, actual parameters:
org.hibernate.QueryException: Expected positional parameter count: 2, actual parameters: []
[SELECT * from Ad where gr_id = ? and adst_id = ?]
这样的异常主要原因是:
//以下为例子
Query query =session.getNamedQuery("OnlienAd");
query.setParameter(0,gray.getId());
query.setParameter(1,Globals.UPED_STATE);
可以看到query.setParameter()设置了位,也可以理解成他在要执行的HQL语句中占了2个位置。
然后执行的时候会对应HQL里的?中去。
如果你并没有setParameter(),但你的HQL里却有?那么就会出这个异常。
---------------------------------------11---------------------------------------------
org.hibernate.MappingException: Association references:XXX
---------------------------------------12---------------------------------------------
org.hibernate.exception.SQLGrammarException: could not initialize
无法实例集合。
这个是问题在你当前的实体中有一个一对多需实例的对象。但这个对象却无法实例出来,说明一对多那个多
的一方实体有问题,多数情况可能有:
1、数据库该动过但代码没动
2、实体代码有错误
---------------------------------------13---------------------------------------------
org.hibernate.id.IdentifierGenerationException
异常信息:org.hibernate.id.IdentifierGenerationException: ids for this class must be manually
assigned before calling save():
异常原因:
<id>元素配置不正确,
<id>元素缺少其子元素<generator></generator>的配置。
解决方法:<id>元素映射了相应数据库表的主键字段,对其子元素<generator >,其中class的取值
可以为increment、identity、sequence、hilo、native...... 等,更多的可参考hibernate参考文档,一般
取其值为native 。
MySQL:identity,increment,hilo,native.
SQL Server:identity,increment,hilo,native.
Oracle:sequence,seqhilo,increment,native.
跨平台开发:native.
native将字段管理交给数据库自己定义。
---------------------------------------8-----------------------------------------------
not-null property references a null or transient value
此异常出现看开头就个单词就知道啦
的实体约束不能为空却为空造成的,那我在这说一下对于这样的情况我们时常犯的错误。
我们在对实体进行更新操作时最好是在一个会话中将数据从数据库中调出并实例BEAN的对象。
然后再对此对象进行更改后在更新。
这样的好处是:
一、数据是最新鲜的。
二、避免不必要的设置,特别是在一对多和多对多的情况下,比如你现在操作的实体并不是在一个会话中得
到,而是保存在某些容器中,比如jsp的 SESSION中,虽然这样的实体对象中有很多数据,但是如果你想得到
这些实体对应的1对多或多对1的实体时,就会发现会出现session已经关闭的异常。或则在你更新数据时出现
not-null异常等。
---------------------------------------14----------------------------------------------
Remember that ordinal parameters are 1-based!
HQL语句有错误
---------------------------------------15---------------------------------------------
failed to lazily initialize a collection of role: XXXXXXXX no session or
这个异常大致意思是说在多对一的时候(并且lazy="false"),对象的实例失败,多数出现的情况有
1、粗心造成
实例对象类名写错之类的
2、逻辑错误
如之前就已经传递过来一个实体对象,然后调用实体对象的方法时牵涉到1对多的情况,但此时SESSION已经
关闭,所以根本无法进行一对多的操作。
3、设计到跨度的问题:
这样打比方有多个实体对象,他们直接或则间接的有关联。比如有4个实体,分别是广告信息、广告、广告问
答题、广告商:他们之间的关系为:
广告商 1:n 广告
广告 1:n 广告问答题
广告商 1:n 广告商信息
大家可以看到广告和广告商信息是没有直接关系的。但我要添加广告的时候我就必须将广告商的实体做为条
件。那么这么一来广告商信息可能间接的就必须用上。下面看我的操作:
ad(广告),subject(题目)
========================
1、OpenSessionInView模式:
以下有2种方法,第1种是结合SPRING,第2种是采用了拦截器
Spring+Hibernate中,集合映射如果使用lazy="true", 当PO传到View层时, 出现未初始化session已关闭的错误,只能在dao先初始化
parent.getChilds().size();
Spring提供Open Session In View来解决这个问题, 有两种方式
1. Interceptor
<!--</span><span style="COLOR: rgb(0,128,0)"> =========== OpenSession In View pattern
==============</span><span style="COLOR: rgb(0,128,0)">-->
<bean
>
<property ref="sessionFactory"/>
</bean>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property ref="openSessionInViewInterceptor"/>
<property >
<props>
......
</props>
</property>
</bean>
2. Filter
<web-app>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
</web-app>
第2种解决方法:
Hibernate.initialize()强制加载关联对象
---------------------------------------16----------------------------------------------
Hibernate的No CurrentSessionContext configured 解决方案
Hibernate No CurrentSessionContext configured!
当你使用 Hibernate session factory的getCurrentSession() 函数时候,你可能见到过"No
CurrentSessionContext configured!"
出现这个问题,是因为你没有正确配置 Hibernate internal session context management .
你只要在Hibernate.cfg.xml文件中添加下面的配置就可以了:
<property >thread</property>
=========转载收集整理====================
错误1:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
错误原因:
这是一个警告信息,提示说没有找到Log4j的配置信息,不能为Hibernate环境提供日志信息,要求初始化log4j配置文件。
解决方法:
在项目的src下添加log4j.properties文件,该文件是log4j配置信息,内容如下:
错误2:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Level
错误原因:
缺少log4j,因为hibernate框架本身也使用了第三方组件log4j来输出Hibernate环境下执行的信息。
解决方法:
为项目导入log4j-1.2.15.jar包,或其他版本的都可以。
错误3:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
错误原因:
找不到类StaticLoggerBinder,缺少日志接口包slf4j-log4j.jar
解决方法:
导入slf4j-log4j12-1.5.8.jar,这个包与Hibernate3.3.2的版本对应
错误4:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
错误原因:
找不到类LoggerFactory,缺少包slf4j-api.jar
解决方法:
导入slf4j-api-1.5.8.jar,这个包与Hibernate3.3.2的版本对应
错误5:
SLF4J: The requested version 1.6.99 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
错误原因:
这是jar包slf4j-log4j12.jar版本与Hibernate版本不相符引起的
解决方法:
删除原来的版本的jar包,导入slf4j-log4j12-1.5.8.jar这个版本的jar包
错误6:
Exception in thread "main" java.lang.AbstractMethodError: Oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()
错误原因:
在Hibernate下,导入classes12.jar时会报这个错误
解决方法:
删除classes12.jar,导入ojdbc5.jar或ojdbc6.jar来取代
错误7:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:
java.naming.factory.initial
错误原因:
Hibernate是采用JDBC 驱动,在配置文件hibernate.cfg.xml的<session-factory name="test">节点多了一个name属性
解决方法:
删除节点<session-factory>的name属性
发表评论
-
jdk tomcat 环境变量配置
2015-07-09 21:32 445Win7 下如何配置java环境变量 1。准备jdk包,wi ... -
页面有两个frame,怎样点击一个的链接改变另一个的内容
2015-04-07 13:58 1470<a src="地址" targe ... -
java代码怎么实现分页?求指教!!
2015-03-31 14:22 42Java实现分页源码及其思想 -
javaScript (1)
2015-03-24 17:19 586JavaScript 1、运算符 运算符就是完成操作的一 ... -
MyEclipse里部分习惯的更改
2015-03-20 17:30 523继续补充中---------------------- ... -
javaSE javaEE javaME == API下载
2015-03-20 14:06 836oracle下载各种API文档: http://www.ora ... -
spring------>>cvc-elt.1: Cannot find the declaration of element
2015-03-18 16:49 530将-------- <?xml version=&qu ... -
log4j
2015-03-18 16:14 388链接: http://www.blogjava.net/ ... -
PowerDesigner使用教程
2015-03-17 17:09 464链接跳转: http://www.cnblogs.com/la ... -
js乱码
2015-03-17 15:43 460检查你js文件的编码格式(简单的办法就是在dreamweave ... -
hibernate三种 状态
2015-03-16 21:49 475Transient:(瞬时状态)内存中一个对象,没有相对应 的 ... -
ssh整合所需lib包目录
2015-03-16 11:44 578转载于:http://blog.csdn.ne ... -
tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class
2015-03-13 16:05 763这个问题的出现是由于slf4j-log4j12 jar的变化, ... -
< could not insert: [com.hibernate.*.* >
2015-03-11 09:42 521hibernate.cfg.xml文件配置: <!- ... -
log4j
2015-03-05 11:20 467### 设置org.zblog域对应的级别INFO,DEBUG ... -
B/S C/S
2015-03-05 09:27 525<!--文章改写--> C/S结构,即Clie ... -
Swing和AWT
2015-03-05 09:24 526原文出:http://cherry007.iteye.com/ ... -
错误整理。。。。
2015-03-04 17:28 445文件内容截取自:http://www.cnblogs.com/ ... -
MyEclipse 快捷键
2015-03-04 10:51 469MyEclipse 快捷键 自己设置myeclipse快捷键指 ... -
Spring的IOC容器
2015-03-02 21:00 566(本文为自己书写,如有错误,请指正,大家共同进步,谢谢。) ...
相关推荐
这个解决方案在运维和自动化场景中非常有用,例如批量更新系统、部署应用或者收集日志信息。但是,要注意的是,免密登录虽然方便,但也增加了安全风险。确保只在信任的环境中使用,并且妥善保管私钥,以防止未经授权...
这些页面通过Struts2的拦截器和结果类型配置,与Action进行交互,显示或收集用户信息。 总之,"简单ssh2框架程序"是一个基于SSH2的Web应用程序,利用Spring管理业务组件,Struts2处理用户交互,Hibernate处理数据库...
2. **结果收集**:库能够有效地收集所有主机的执行结果,包括标准输出、标准错误以及命令的退出状态码,方便进行后续处理。 3. **错误处理**:如果在执行过程中遇到任何错误(如网络问题或权限问题),`parallel-ssh...
否则,返回错误信息。 6. **安全性**:考虑到网络安全,此项目可能使用了SHA-256或更安全的哈希算法对用户密码进行加密存储,防止明文密码泄露。同时,可能会有防止SQL注入的措施,比如使用预编译的...
本文主要介绍了使用ssh实现Tomcat自动部署的方法,以及解决OutOfMemoryError PermGen space系统错误的方法。 一、配置Tomcat server.xml文件 在Tomcat的conf文件夹下找到server.xml文件,并添加以下代码:虚拟目录...
2. **配置全局设置**:在“系统配置”中找到“Publish over SSH”部分,填写默认的SSH服务器信息,如主机名、端口号、用户名、凭据ID等。这些信息可以被每个具体项目中的配置覆盖。 3. **配置构建任务**:在你想要...
5. **SSH连接设置**:除了数据库连接信息,还需要SSH的凭据,包括SSH服务器的主机名、端口、用户名和私钥文件(如果使用公钥认证)。 6. **代码实现**:在Java程序中,使用JSch库创建SSH隧道,然后通过隧道建立到...
SSH2协议相较于早期的SSH1有诸多优势,包括更强的安全性(如使用更复杂的加密算法)、更好的错误处理和更多的功能。 Ganymed SSH2是一个由Christian Plattner开发的Java实现,它允许Java程序以客户端模式连接到支持...
4. **结果收集与分析**:SSH Sampler会返回命令执行的结果,包括标准输出和错误输出,这些可以在JMeter的监听器中查看,如"View Results Tree"。你可以根据返回结果分析远程服务器的性能状态。 5. **性能测试**:...
在这个项目中,SSH框架被用来实现对系统日志的收集、存储、查询和分析功能,旨在帮助管理员监控和诊断系统运行状态。 Spring框架作为基础架构层,负责管理应用的组件和服务,提供依赖注入(DI)和面向切面编程(AOP...
4. **收集结果**:执行测试后,JMeter会显示命令的输出结果,包括返回码、标准输出和错误输出。这些信息对于验证命令执行是否成功和调试问题至关重要。 5. **整合到测试计划**:将SSH Sampler与其他Samplers(如...
3. **错误处理**:平行SSH会记录每个主机的执行结果,包括成功和失败的信息,便于后期分析和问题定位。 4. **自动重试**:如果某个主机连接失败或命令执行失败,库通常会提供重试机制,以应对网络波动或临时性的...
Node-SSH-Dump 是一个基于JavaScript的实用工具,它允许开发人员通过SSH协议安全地连接到运行Node.js服务的远程服务器,并能够实时收集和分析服务器上的各种信息。这个工具对于监控、调试或者在生产环境中进行问题...
信息管理系统是对各种信息进行收集、存储、处理、分析和传递的软件系统。教务管理信息系统通常包括学生信息管理、课程管理、考试成绩管理、教师信息管理等功能模块。此类系统的目标是提高教育机构的管理效率,减少...
文档指出应用层信息的收集和识别对于性能分析和入侵检测至关重要。应用层信息识别有助于网络安全分析人员更深入地理解网络中传输的数据内容,从而实现更加精确的安全事件检测。在某些情况下,传统的基于流量监控和...
注册功能则涉及创建新用户,这包括收集用户输入的信息,通过Hibernate将新用户对象保存到数据库。 6. **错误处理和安全考虑**:在实现这些功能时,还需要考虑错误处理,如用户名已存在、密码不符合规则等。此外,...
6. **错误处理**:对于任何连接或执行中的问题,`gossh`需要有良好的错误处理机制,以防止因单个主机的问题中断整个任务。 7. **并发执行**:为了提高效率,`gossh`可能会采用并发执行策略,同时处理多个主机的命令...
本工具采用Eclipse插件的形式进行开发,利用传统的窗口形式收集用户的输入信息,并将这些信息保存到变量中。接下来,工具会根据保存的信息生成实体类、ActionForm等所需的文件。具体来说,代码生成可以通过以下两种...
在中小公司环境中,这样的系统能够提高效率,减少手动操作带来的错误,同时减轻运维人员的工作负担。 首先,我们需要理解SSH(Secure Shell)是一种加密网络协议,常用于远程登录和其他安全网络服务,特别是文件...
- 学生信息录入:通过表单收集学生的基本信息,如姓名、学号、性别、专业等,并保存到数据库。 - 学生信息查询:允许管理员根据各种条件(如学号、姓名)快速查找学生信息。 - 学生信息修改与删除:对错误或过时的...