2009-03-24

本文介绍了如何在Struts2框架中使用Hibernate进行数据库操作,包括配置文件详解、常用属性说明及Session使用方法。同时,还讲解了Struts2中Session的使用方式及框架内置的多个拦截器的功能。

 关键字:SqlServer  Hibernate属性 struts2的session  struts2的Interceptor  自定义一个拦截器
1.SqlServer2005
用的Jar包,可以向下兼容(通俗来说就是:现在用sqlserver2005做的项目完全移植在sqlserver2000上时,什么都不用改就能用)。
hibernate.cfg.xml中主要代码如下:

2.总结一下用过的几个hibernate属性的用法:
①hibernate.show_sql------值有true or false。
说明:hibernate.show_sql?控制台输出sql语句:控制台不输出sql语句;
②hibernate.hbm2ddl.auto------用过的值有create or update。
说明:前提是数据库里已有该数据库,hibernate.hbm2ddl.auto值为create时,无论该数据库是否有内容,重新生成;
值为update时,就是更新该数据库中的内容了。

3.struts2中使用session的方法:
在继承了ActionSupport的类里,通过“ServletActionContext.getRequest().getSession().setAttribute("username", "peixian");”
将内容放进去。在页面里用“${sessionScope.username }”就可以得到了。

4.struts2框架中给我们提供了很多实用的Interceptor,它的定义上面已经给出,它的具体功能如下:

          timer:记录Action执行的时间,并做为日志信息输出;

          logger:在日志信息中输出要执行的Action信息;

          chain:将前一个执行结束的Action属性设置到当前的Action中。它被用在ResultType为“chain”指定结果的Action中,该结果Action对象会从OgnlValueStack中获得前一个Action对应的属性,它实现Action链之间的数据传递;

          static-params:将xwork.xml配置文件里定义的Action参数,设置到对应的Action中。Action参数使用<param />标签,是<action />标签的直接子元素。我们这里定义的Action类必需实现com.opensymphony.xwork.config.entities. Parameterizable接口;

          params:将Request请求的参数设置到相应Action对象的属性中,用户注册例子用到过这个拦截器;

          model-driven:如果Action实现ModelDriven接口,它将getModel()取得的模型对象存入OgnlValueStack中;

          component:激活组件功能支持,让注册过的组件在当前Action中可用,即为Action提供IoC(依赖倒转控制)框架的支持;

          token:核对当前Action请求(request)的有效标识,防止重复提交Action请求(request)。

          token-session:功能同上,但是当提交无效的Action请求标识时,它会将请求数据保存到session中。

          validation:实现使用xml配置文件({Action}-validation.xml)对Action属性值进行验证,详细请看后面介绍的验证框架。

          workflow:调用Action类的验证功能,假设Action使用ValidationAware实现验证(ActionSupport提供此功能),如果验证没有通过,workflow会将请求返回到input视图(Action的<result />中定义的)。

          servlet-config:提供Action直接对HttpServletRequest或HttpServletResponse等JavaServlet api的访问,Action要实现相应的接口,例如:ServletRequestAware或ServletResponseAware等。如果必需要提供对JavaServlet api的访问,我们建议使用ServletActionContext,在前面ActionContext章节中有介绍。

          prepare:在Action执行之前调用Action的prepare()方法,这个方法是用来准备Action执行之前要做的工作。它要求我们的Action必需实现com.opensymphony.xwork. Preparable接口

conversionError:用来处理框架进行类型转化(Type Conversion)时的出错信息。它将存储在ActionContext中的类型转化(Type Conversion)错误信息转化成相应的Action字段的错误信息,保存在堆栈中。根据需要,可以将这些错误信息在视图中显示出来。

5.如何自定义一个拦截器?
自定义一个拦截器需要三步:
1 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。
2 在struts.xml中注册上一步中定义的拦截器。
3 在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。
Interceptor接口声明了三个方法:

Init方法在拦截器类被创建之后,在对Action镜像拦截之前调用,相当于一个post-constructor方法,使用这个方法可以给拦截器类做必要的初始化操作。
Destroy方法在拦截器被垃圾回收之前调用,用来回收init方法初始化的资源。
Intercept是拦截器的主要拦截方法,如果需要调用后续的Action或者拦截器,只需要在该方法中调用invocation.invoke()方法即可,在该方法调用的前后可以插入Action调用前后拦截器需要做的方法。如果不需要调用后续的方法,则返回一个String类型的对象即可,例如Action.SUCCESS。

另外AbstractInterceptor提供了一个简单的Interceptor的实现,这个实现为:

在不需要编写init和destroy方法的时候,只需要从AbstractInterceptor继承而来,实现intercept方法即可。

 

 

 

 

 

 

 

--------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 --------------- ------------------------ 1.0/2.7 MB 56.9 kB/s eta 0:00:29 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ------------------- -------------------- 1.3/2.7 MB 46.2 kB/s eta 0:00:30 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 ----------------------- ---------------- 1.6/2.7 MB 28.1 kB/s eta 0:00:40 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 --------------------------- ------------ 1.8/2.7 MB 22.6 kB/s eta 0:00:39 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ------------------------------- -------- 2.1/2.7 MB 25.1 kB/s eta 0:00:24 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 ----------------------------------- ---- 2.4/2.7 MB 27.0 kB/s eta 0:00:13 -------------------------------------- - 2.6/2.7 MB 31.8 kB/s eta 0:00:03 -------------------------------------- - 2.6/2.7 MB 31.8 kB/s eta 0:00:03 -------------------------------------- - 2.6/2.7 MB 31.8 kB/s eta 0:00:03 -------------------------------------- - 2.6/2.7 MB 31.8 kB/s eta 0:00:03 -------------------------------------- - 2.6/2.7 MB 31.8 kB/s eta 0:00:03 -------------------------------------- - 2.6/2.7 MB 31.8 kB/s eta 0:00:03 ---------------------------------------- 2.7/2.7 MB 32.9 kB/s 0:01:13 Installing collected packages: h5py, anndata Attempting uninstall: h5py Found existing installation: h5py 3.14.0 Uninstalling h5py-3.14.0: Successfully uninstalled h5py-3.14.0 ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] ---------------------------------------- 0/2 [h5py] Attempting uninstall: anndata ---------------------------------------- 0/2 [h5py] Found existing installation: anndata 0.10.8 ---------------------------------------- 0/2 [h5py] -------------------- ------------------- 1/2 [anndata] Uninstalling anndata-0.10.8: -------------------- ------------------- 1/2 [anndata] -------------------- ------------------- 1/2 [anndata] -------------------- ------------------- 1/2 [anndata] Successfully uninstalled anndata-0.10.8 -------------------- ------------------- 1/2 [anndata] -------------------- ------------------- 1/2 [anndata] -------------------- ------------------- 1/2 [anndata] -------------------- ------------------- 1/2 [anndata] -------------------- ------------------- 1/2 [anndata] ---------------------------------------- 2/2 [anndata] Successfully installed anndata-0.10.3 h5py-3.10.0 Note: you may need to restart the kernel to use updated packages. WARNING: Ignoring invalid distribution -orch (d:\academic\pyhthon\aoncaonda\envs\tangram-env\lib\site-packages) WARNING: Ignoring invalid distribution -orch (d:\academic\pyhthon\aoncaonda\envs\tangram-env\lib\site-packages) WARNING: Failed to remove contents in a temporary directory 'C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\~5py'. You can safely remove it manually. WARNING: Ignoring invalid distribution -orch (d:\academic\pyhthon\aoncaonda\envs\tangram-env\lib\site-packages) adata_st.write("1.h5ad") [autoreload of anndata.utils failed: Traceback (most recent call last): File "D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\IPython\extensions\autoreload.py", line 276, in check superreload(m, reload, self.old_objects) File "D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\IPython\extensions\autoreload.py", line 500, in superreload update_generic(old_obj, new_obj) File "D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\IPython\extensions\autoreload.py", line 397, in update_generic update(a, b) File "D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\IPython\extensions\autoreload.py", line 365, in update_class update_instances(old, new) File "D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\IPython\extensions\autoreload.py", line 323, in update_instances object.__setattr__(ref, "__class__", new) TypeError: can't apply this __setattr__ to DeprecationMixinMeta object ] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[57], line 1 ----> 1 adata_st.write("1.h5ad") File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_core\anndata.py:2008, in AnnData.write_h5ad(self, filename, compression, compression_opts, as_dense) 2005 if filename is None: 2006 filename = self.filename -> 2008 write_h5ad( 2009 Path(filename), 2010 self, 2011 compression=compression, 2012 compression_opts=compression_opts, 2013 as_dense=as_dense, 2014 ) 2016 if self.isbacked: 2017 self.file.filename = filename File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\h5ad.py:105, in write_h5ad(filepath, adata, as_dense, dataset_kwargs, **kwargs) 103 write_elem(f, "obs", adata.obs, dataset_kwargs=dataset_kwargs) 104 write_elem(f, "var", adata.var, dataset_kwargs=dataset_kwargs) --> 105 write_elem(f, "obsm", dict(adata.obsm), dataset_kwargs=dataset_kwargs) 106 write_elem(f, "varm", dict(adata.varm), dataset_kwargs=dataset_kwargs) 107 write_elem(f, "obsp", dict(adata.obsp), dataset_kwargs=dataset_kwargs) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:368, in write_elem(store, k, elem, dataset_kwargs) 344 def write_elem( 345 store: GroupStorageType, 346 k: str, (...) 349 dataset_kwargs: Mapping = MappingProxyType({}), 350 ) -> None: 351 """ 352 Write an element to a storage group using anndata encoding. 353 (...) 366 E.g. for zarr this would be `chunks`, `compressor`. 367 """ --> 368 Writer(_REGISTRY).write_elem(store, k, elem, dataset_kwargs=dataset_kwargs) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\utils.py:239, in report_write_key_on_error.<locals>.func_wrapper(*args, **kwargs) 237 break 238 try: --> 239 return func(*args, **kwargs) 240 except Exception as e: 241 add_key_note(e, elem, key, "writ") File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:326, in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers) 317 return self.callback( 318 write_func, 319 store, (...) 323 iospec=self.registry.get_spec(elem), 324 ) 325 else: --> 326 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:54, in write_spec.<locals>.decorator.<locals>.wrapper(g, k, *args, **kwargs) 52 @wraps(func) 53 def wrapper(g, k, *args, **kwargs): ---> 54 result = func(g, k, *args, **kwargs) 55 g[k].attrs.setdefault("encoding-type", spec.encoding_type) 56 g[k].attrs.setdefault("encoding-version", spec.encoding_version) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\methods.py:312, in write_mapping(f, k, v, _writer, dataset_kwargs) 310 g = f.require_group(k) 311 for sub_k, sub_v in v.items(): --> 312 _writer.write_elem(g, sub_k, sub_v, dataset_kwargs=dataset_kwargs) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\utils.py:239, in report_write_key_on_error.<locals>.func_wrapper(*args, **kwargs) 237 break 238 try: --> 239 return func(*args, **kwargs) 240 except Exception as e: 241 add_key_note(e, elem, key, "writ") File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:326, in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers) 317 return self.callback( 318 write_func, 319 store, (...) 323 iospec=self.registry.get_spec(elem), 324 ) 325 else: --> 326 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:54, in write_spec.<locals>.decorator.<locals>.wrapper(g, k, *args, **kwargs) 52 @wraps(func) 53 def wrapper(g, k, *args, **kwargs): ---> 54 result = func(g, k, *args, **kwargs) 55 g[k].attrs.setdefault("encoding-type", spec.encoding_type) 56 g[k].attrs.setdefault("encoding-version", spec.encoding_version) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\methods.py:683, in write_dataframe(f, key, df, _writer, dataset_kwargs) 678 _writer.write_elem( 679 group, index_name, df.index._values, dataset_kwargs=dataset_kwargs 680 ) 681 for colname, series in df.items(): 682 # TODO: this should write the "true" representation of the series (i.e. the underlying array or ndarray depending) --> 683 _writer.write_elem( 684 group, colname, series._values, dataset_kwargs=dataset_kwargs 685 ) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\utils.py:239, in report_write_key_on_error.<locals>.func_wrapper(*args, **kwargs) 237 break 238 try: --> 239 return func(*args, **kwargs) 240 except Exception as e: 241 add_key_note(e, elem, key, "writ") File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:326, in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers) 317 return self.callback( 318 write_func, 319 store, (...) 323 iospec=self.registry.get_spec(elem), 324 ) 325 else: --> 326 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\registry.py:54, in write_spec.<locals>.decorator.<locals>.wrapper(g, k, *args, **kwargs) 52 @wraps(func) 53 def wrapper(g, k, *args, **kwargs): ---> 54 result = func(g, k, *args, **kwargs) 55 g[k].attrs.setdefault("encoding-type", spec.encoding_type) 56 g[k].attrs.setdefault("encoding-version", spec.encoding_version) File D:\Academic\Pyhthon\Aoncaonda\envs\tangram-env\lib\site-packages\anndata\_io\specs\methods.py:339, in write_basic(f, k, elem, _writer, dataset_kwargs) 328 @_REGISTRY.register_write(H5Group, views.ArrayView, IOSpec("array", "0.2.0")) 329 @_REGISTRY.register_write(H5Group, np.ndarray, IOSpec("array", "0.2.0")) 330 @_REGISTRY.register_write(H5Group, h5py.Dataset, IOSpec("array", "0.2.0")) (...) 336 @_REGISTRY.register_write(ZarrGroup, ZarrArray, IOSpec("array", "0.2.0")) 337 def write_basic(f, k, elem, _writer, dataset_kwargs=MappingProxyType({})): 338 """Write methods which underlying library handles natively.""" --> 339 f.create_dataset(k, data=elem, **dataset_kwargs) File ~\AppData\Roaming\Python\Python310\site-packages\h5py\_hl\group.py:184, in Group.create_dataset(self, name, shape, dtype, data, **kwds) 182 if b'/' in name.lstrip(b'/'): 183 parent_path, name = name.rsplit(b'/', 1) --> 184 group = self.require_group(parent_path) 186 dsid = dataset.make_new_dset(group, shape, dtype, data, name, **kwds) 187 dset = dataset.Dataset(dsid) File ~\AppData\Roaming\Python\Python310\site-packages\h5py\_hl\group.py:348, in Group.require_group(self, name) 346 grp = self[name] 347 if not isinstance(grp, Group): --> 348 raise TypeError("Incompatible object (%s) already exists" % grp.__class__.__name__) 349 return grp TypeError: Incompatible object (Dataset) already exists Error raised while writing key 'AT1/AT2' of <class 'h5py._hl.group.Group'> to /
10-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值