Hibernate基础学习记录文本

Hibernate基础学习记录文本
Hibernate基础学习记录文本

一、第一个应用实例

1.搭建环境:新建一个名为HibernateDemo的java工程,并导入Hibernate的jar包,特别要注意除了导入lib下的jar包还需导入hibernate3.jar核心jar包。由于涉及数据库操作,还应导入mysql驱动包。

说明,如果使用最新的hibernate,hibernate开发的基本jar包(7个) 来源:hibernate-distribution-3.3.2.GA.zip

hibernate3.jar

lib\required下的所有jar包

2.简述Hibernate的作用:ORM:Object Relational Mapping,对象关系映射。将java 程序中的对象自动持久化到关系数据库中。而Hibernate的作用好比就是在java对象与关系数据库之间的一座桥梁,它主要负责两者之间的映射。在Hibernate内部封装了JDBC 技术(但只是一个轻量级的封装,因而可以让程序设计人员更方便的以面向对象的思想操纵数据库),并向外提供API接口。

3.建新一个名为User.java的类,即是上面所说的java对象。我们以后称这种类为实体类(或是持久化类),它的对象为实体对象(或是持久化对象)。User.java内容如下:package com.asm.hibernate.domain;

import java.util.Date;

public class User {

private int id;

private String name;

private Date date;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/777296310.html, = name;

}

public Date getDate() {

return date;

}

public void setDate(Date date) {

this.date = date;

}

}

4.编写配置文件:User.hbm.xml。它和User.java放在同一个包下。内容如下:

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"https://www.360docs.net/doc/777296310.html,/hibernate-mapping-3.0.dtd">

package="com.asm.hibernate.domain">

此配置文件,是用来为User.java进行配置的,我们以后称这种文件为实体配置文件(或是持久化类映射文件)用来关联一个java类,注意在前面的根元素下有一个package属性,这样结合这个package和class标签下所指定的类名,就共同关联映射了一个java类。其实可以这样理解,每一个包下都有实体配置文件,而这个配置文件开始的根元素package指定了此文件所处的位置(或是说它所关联的包),根元素下可以有多个标签(查阅dtd文件),它们可以分别来关联包下的java类文件。

标签,一般建议至少有两个属性:name属性用来关联一个java类,比如这里关联了User类;table属性用来指定这个类所对应的表文件,如果不指定,系统会自动name 指定的类文件进行关联(比如上面实际是:

标签下的子标签:

子标签实际就是用来映射主键,下的name就是用来指java类中的id属性,

而它可以有一个column属性用来指定表中的主键。同时注意在此标签下有一个

标签,它是用来指定主键的生成方式。

子标签,就是用来指定java类的属性映射到表中的一个字段,默认下此

标签没有指定column属性,即是说它会把name所关联的属性名作为字段名。如

果不想java类中的某些属性映射到表中,只要不用这个标签来关联这些属性即可。 总结:上面的的name属性都分别指定了java类,java类的属性。而table,column是用来指定表,字段名

配置文件:hibernate.cfg.xml。它放在当前的项目的根目录下。内容如下:

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"https://www.360docs.net/doc/777296310.html,/hibernate-configuration-3.0.dtd">

name="hibernate.connection.driver_class">com.mysql.jdbc.Driver

name="hibernate.connection.url">jdbc:mysql://localhost:3306/test root

123456

name="hibernate.dialect">org.hibernate.dialect.MySQLDialect create

主配置文件,完成了驱动注册,数据库连接,并关联了相应的java对象配置文件。

说明:具体指定了关联的所有实体配置文件,关于它的作用可以注释掉此属性看效果。另通过

name="hibernate.hbm2ddl.auto">create指定了根据实体配置文件来自动生成表,其中包括:create/create-drop/update/validate四种可选方式。

5.编写测试类:UserTest.java 内容如下:

package com.asm.hibernate.test;

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import https://www.360docs.net/doc/777296310.html,er;

public class UserTest {

public static void main(String []args){

Configuration cf=new Configuration();

cf.configure();

SessionFactory sf=cf.buildSessionFactory();

Session s=sf.openSession();

Transaction ts=s.beginTransaction(); //事务

User user=new User();

user.setName("jack");

user.setDate(new Date());

s.save(user);

https://www.360docs.net/doc/777296310.html,mit(); //提交事务

s.close();

System.out.println("done");

}

}

6.分析流程:首先抛开Transaction tx=s.beginTransaction()和https://www.360docs.net/doc/777296310.html,mit(),因为它们是提交事务得。支持提交事务意味着支持数据回滚。说明,通常情况下,很多数据库都默认支持提交事务,所以加这两句代码非常必要。下面具体谈流程:

第一步:获取SessionFactory对象,它会首先构建一个Configuration对象,此对象调用可以调用configure()和configure(String resource)这两种方法:这两种方法在Configuration中的源代码如下:

public Configuration configure() throws HibernateException {

configure( "/hibernate.cfg.xml" );

return this;

}

public Configuration configure(String resource) throws HibernateException { https://www.360docs.net/doc/777296310.html,( "configuring from resource: " + resource );

InputStream stream = getConfigurationInputStream( resource );

return doConfigure( stream, resource );

}

分析这两个源代码可以知道:无参调用最终也是调用这个有参数的方法,所以我们也可以

直接传参数调用。现在的重点是读配置文件,这个配置文件我们一般放在eclipse的scr根目录下,而当eclipse编译时会自动把这个目录下的文件编译到bin目录下,而这个bin目录下是被配置成classpath环境变量,而configure方法就是在classpath环境变量下查找配置文件。再来分析,无参调用configure方法时,默认的是传递的hibernate.cfg.xml配置文件,所以只有取名为这个的配置文件,才可以调用无参的configure方法,如果是其它名字的配置文件,则调用含参的配置文件,并且这个参数名应为这个配置文件的名字。当读取配置文件后的Configuration对象,才是一个真正意义上可操控的实例对象。然后,再用这个对象来构建一个SessionFactory对象。强调说明,这一步整个操作最好是放在类的静态代码块中,因为它只在该类被加载时执行一次。

第二步:得到一个Session实例,以进行数据库CRUD操作

第三步:实例化一个java类

第四步:持久化操作

第五步:后续操作:主要是关闭连接

7.实体类定义规则:

Domain object(java对象)必须要有构造方法,同时建议有一个id属性,为了赖加载,这个java类的声明最好不用final。

8.开发流程:

官方推荐:先Domain object 再mapping,最后是DB。常用开发方式:DB开始,由工具来生成mapping和Domain object。

9.总结基本步骤:

环境搭建(导入相关包等) —>实体类及配置文件—>主配置文件(完成了数据库的配置及通过设置属性创建了相应的表)—>得到Session测试应用。

二、优化代码

1.为会么要优化

在前面我们已经知道,获取SessionFactory对象是一个重复的过程。因此我们可以把这个操作写成一Util类。下面我们把这一步写成工具类HibernateUtil,内容如下:package com.asm.hibernate.utils;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateUtil {

private static SessionFactory sf;

private HibernateUtil() {

}

static {

Configuration cf = new Configuration();

cf.configure();

sf = cf.buildSessionFactory();

}

public static SessionFactory getSessionFactory() {

return sf;

}

public static Session getSession() {

return sf.openSession();

}

}

2.优化测试类

下面复制UserTest.java代码改为UserTest2.java并进行修改修改后的内容如下:package com.asm.hibernate.test;

import java.util.Date;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.Transaction;

import https://www.360docs.net/doc/777296310.html,er;

import com.asm.hibernate.utils.HibernateUtil;

public class UserTest2 {

static void addUser(User user) {

Session s = null;

Transaction ts = null;

try {

s = HibernateUtil.getSession();

ts = s.beginTransaction();

s.save(user);

https://www.360docs.net/doc/777296310.html,mit();

} catch (HibernateException e) {

if (ts != null)

ts.rollback();

throw e;

} finally {

if (s != null)

s.close();

}

}

public static void main(String[] args) {

User user = new User();

user.setName("richie");

user.setDate(new Date());

addUser(user);

}

}

说明,在addUser方法中其实也可以不用catch语句捕获。因为关键的关闭连接已在finally实现。上面的例子可以作为以后Hibenate操作的一个典型模板,只需要修改主方法中的内容即可。

3.get方法:可以在UserTest2.java中增加这个方法:

static User getUser(int id) {

Session s = null;

try {

s = HibernateUtil.getSession();

return (User) s.get(User.class, id);

/*

* User user=(User) s.load(User.class,id);

* System.out.println("----load----"+user);

* System.out.println(user.getName());

* //load只是准备连接到数据库,当增加上面一句操作时表示有真正的数据库操作,这时它才会去连接数据库return user;

*/

} finally {

if (s != null)

s.close();

}

}

以上的代码,实现了数据库的查询操作,这里的get()方法需要传递两个参数,理解传递的参数:由于Session可以管理多个数据库所对应的多个实体对象,如果只是传递id将不能正确定位表,因而必须传递这个实体对象,get方法才能去查找这个实体对象所对应的数据库中的表。用这个方法得到User对象后,便可以用此对象的方法来得到相关属性(也就是数据库表中的字段)

4.load()方法,懒加载。

它的特点是:只有实际操作才会被加载,且它是生成的这个User.java的子类,可以从打印结果看出。也正因此,所以前面建议实例类不使用final。强调:如果是懒加载,即使数据库中查不到数据,上面的user对象永远不会为空,因为它的内部实现实际上是new了一个User(子)类对象。

下面再在main方法中测试,增加语句如下:

User u = getUser(1);

System.out.println("id=" + u.getId() + "\t name=" + u.getName());

5.控制台显示:

true在总配置文件中增加这个属性将会在控制台显示数据库操作的“数据库语言”。称这个属性为数据库语言显示。

三、Session中的主要方法

1.保存数据:save,presist 说明:这两种方法的主要区别主要体现在未开启事务时。save 方法如果是没开启事务,会执行相关sql语句,随后再回滚。而presist根本就不执行这些sql语句。

2.删除对象:delete

3.更新数据:update 说明,如果数据库中没有记录将会出现异常

4.查找数据:get,立刻访问数据库load,返回的是代理,不会立即访问数据库。5.选择操作:saveOrUpdate,merge,根据id和version的值来确定是save还是update。saveOrUpdate方法的主要作用:可以把瞬时对象或脱管对象转成持久对象,而不需要具体判断对象是处在瞬时态或是脱管态来选择save或update来让对象变成持久态。只要调用此方法就能由id和version来灵活选择是保存或更新。而merge方法一个对象后,对象仍是脱管态。

5.持久对象:lock,把对象变成持久对象,但不会同步对象的状态。

四、对象三种状态

1.瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来的且与Session无关系的对象。

2.脱管-游离(detached):数据库中有数据与之对应,但当前没有Session与之关联:脱管对象状态发生改变,Hibernate不能检测到。

3.持久(persistent):数据库有数据与之对应,当前与Session有关联,并且相关联的Session没有关闭,事务没有提交:持久对象状态发生改变时,在事务提交时会影响到数据库。

理解:与Session是否关联,数据库是否有数据与之对应是判断三种对象状态的依据。比

如,瞬时状态跟它们均无关;脱管,只是数据库有数据与之对应,失去了Session对它的管理;而持久与两者者有关。

从过程中理解三种对象状态:结合前面的实例,当我们User user=new User()一个对象时,它表示创建一个瞬时对象,当调用save(user)方法时,这个对象成为持久对象,直到事务提交,数据库连接关闭。在这期间,如果我们user.setXXX()时,会对这个持久对象产生影响,最终它也会被提交到数据库,它的最终提交是在提交事务时。比如save(user)方法后,跟user.setName("new name");和user.setPassword("new password");这两句,这样它会在提交时务时,采取对数据库的更新操作,也就是说数据库连接关闭后,数据库存的是“new name”和“new password”而如果开启了“数据库语言显示”可以发现执行两次操作:一次是save方法的插入操作,一次是setXXX后提交事务时的更新作(特别说明,持久对象在发生改变时,比如setXXX方法改变对象内容时,会在最后,即提交事务时统一进行更新操作,而并非每一次改变就执行一次更新,这样可以保证与数据库的交互更高效合理)。当执行完save方法后,我们关闭数据库连接时,这时的user对象就是脱管状态,因为它在数据库有数据与之对应而脱管状态的最好例子是当我们用get方法得到一个对象并关闭连接时

补充说明:既然我们已经知道了持久对象可以被Hibernate检测到进行更新操作,那么update是否还有用了?有,比如脱管对象就可以调用update来更新数据库中的数据,而调用update()方法后的脱管对象又变成了持久对象。下面是三种对象状态相互转换的图例

再谈saveOrUpdate方法:此方法兼具了save和update两种方法。它根据传递的参数来选择执行其中的一种方法。如果参数对象是瞬时态,则执行save方法,而如果参数对象是脱管态,则执行update方法。最终都是把传递的参数对象转成持久态。如何判

断对象的状态?主要依据是看:实体对象id(或者version)取值与实体配置文件中元素的unsaved-value属性值的匹配情况。只要满足下面的任一情况则可以说明对象处在瞬时态:情况一,实体对象(持久化对象)的id取值为null形式(比如int型为0,字串为null)。情况二,实体对象(持久化对象)的id取值与预设的unsaved-value属性值不同。情况三,实体对象(持久化对象)的具有的versionn属性,并且为null。情况四,实体对象(持久化对象)的version取值与预设的unsaved-value属性值不同。

五、完善工具类及HQL QBC初步相关

1.无聊的讨论:

在前面我们写了一个工具类:HibernateUtil。其实我们还可以把CRUD操作封装到这个工具类中,并把它们都做成静态的,这样这个工具类就可以直接调用了。但是这样的操作对查询数据可能不是很好,因为它的查询方式很多,除非我们一一考虑这些可能涉及到查询方式,并能以重载的形式进行统一管理。其实我也试想过把这此数据库操作方法进行

二次封装,在工具类写成如下形式:

public void operate(int i ){

if(i==1){ 调用更新方法,执行查询操作}

if(i==2){ 调用删除方法,执行查询操作}

if(i==3){ 调用插入方法,执行查询操作}

if(i==4){查询?可指定一个惯用的查询方法,但返回值如何处理,所以建议不在此处写查询,可再写一个查询的统一操作方法来总括所有的查询方法}

}

2.HQL的作用概述

数据库的操作,难点主要集中在查询操作中,而HQL就是专门用来为查询服务的。3.HQL应用的步骤:

假定我们已有一个Session对象s

>>步骤一,获得Query对象:Query query=s.createQuery(“HQL SELECT Sentence”); >>步骤二,为参数赋值:query.setXXX();

>>步骤三,获得List对象:LIST list=query.list(); 说明,除了此方法外,Query接口还有一个常用的方法uniqueResult,如果明确查询的结果只有一个,便选择使用此方法。如果查询结果有多个使用此方法会报异常。

>>步骤四,遍历查询结果:即遍历上面list对象。

关于步骤二为参数赋值的问题:比如步骤一中的“HQL Sentence”内容为:from User u where https://www.360docs.net/doc/777296310.html,=? and u.password=? and ...,如果这里的?较少可以setXXX(0,”...”); setXXX(1,”...”); 但是如果?较多,就容易把这些设置写错,所以可以采取命令参数的方式来决定后面的setXXX的内容。比如:from User u where https://www.360docs.net/doc/777296310.html,=:uname and u.password=:upass and ... ,这样后面就可以写setXXX(“uname”,”...”); 4.一个细节问题:

在前面我们的实体类为User类,而在实体配置文件中意为它所关联的表为user表(没有指定名称table),但如果是oracle数据库,我们知道它本身就有一张user表,这样就产生了冲突,如何解决这种冲突?一种方法是设定table属性为新的名字(首选方法),另一种方法是加`(数字1前的那个符号),即这样写,这样我们的表还是user表。同样如果属性名与数据库中的关键字产生这种冲突,也可以按此方法解决。

5.分页技术:

query.setFirstResult(200);query.setMaxReslut(10);这两句的意思是符合要求的语句有很多条,我们从第200条取,取出10条。我们知道每种数据库的分页语句是不同的,而Hibernate底层判断使用哪种分页语句就是参照前面配置文件的方言属性。

6.QBC条件查询:

与它相关的是Criteria Interface,Criterion Interface,Expressson Class。其实它的操作和HQL很相似。同样我们假定已有一个Session对象s.

>>步骤一,获得Criteria对象:Criteria criteria = s.createCriteria(User.class);

>>步骤二,封装查询条件为一个Criterion对象:Criterion cr = Expression.eq("name", "new name"); (说明Expression继续于org.hibernate.criterion.Restrictions类),所以也可以这样写:Criterion cr=Restrictions.eq("name","new name"); Restrictions 类中的封装查询条件的方法都有两个参数:前一个参数是指创建Criteria对象时所使用的参数的属性名,后一个是要与属性名比较的值。比如这里是指User类的name属性是否与“new name”相等

>>步骤三,获得带查询条件的Criteria对象:criteria.add(cr); 执行此步才使这个对象具有一个条件限制的查询操作。

>>步骤四,获得List对象以遍历:List clist = criteria.list(); 补充说明:也可以直接返回一个User对象:User user=(User) criteria.uniqueResult();

特别说明:Criteria对象也具有分页的功能,方式是和上面Query一样。

六、基本应用实例:Dao设计

1.总体设计:设计User对象及相关实体配置文件,工具类(得到一个Session对象),UserDao接口(实现此接口即以操作数据库),编写主配置文件,编写测试类。2.UserDao的设计,最初我想打算设计成通用Object的操作,后来发现它的Session对象操作都要传递一个对象,就设计成如下形式。内容如下:

package com.asm.dao;

import https://www.360docs.net/doc/777296310.html,er;

public interface UserDao {

public void saveUser(User user);

public User queryById(int id);

public User queryByName(String name);

public void update(User user);

public void delete(User user);

}

按此设计,意思是此类专门针对User对象的数据库操作,传递User对象,所以后面它的实现类的query相关方法可以直接user = (User) s.get(User.class, name);写name为传递的参数,而我们知道操作的是User对象,所以直接可以User.class。值得一提的是,在JDBC操作中,delete,传递id这种值就可以实现删除,而Hibernate的删除操作,必须传递一个对象,操作过程就是我们通过id查出这个对象,再把这个对象传递给删除方法以供删除。而实事上也可以new一个User对象,并设定的id,然后再把这个对象传递给

删除方法。但需要特别注意new出的对象必须完成符合我们通过id查出的对象。3.这个实例参照前面的相关,基本可以写出。以下几点需要注意:导包:Hibernate包,数据库包;改写配置文件;查询方法的设计;注意事务,特别是“增删改”要注意事务。

七、关联关系讨论

1.多对一关系映射:

一个部门有可以有多个员工,而一个员工只属于一个部门。从员工角度看,很多员工会隶属一个部门。现以实例说明,实例概要:一个部门类,只有id和部门名称两个属性。有一个员工类,有id和员工名称及部门对象三个属性。操作步骤如下:

>>步骤一,建立Depatment.java及实体配置文件:

package com.asm.hibernate.domain;

public class Department {

private int id ;

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/777296310.html, = name;

}

}

----同包下的实体配置文件:Depart.hbm.xml

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"https://www.360docs.net/doc/777296310.html,/hibernate-mapping-3.0.dtd">

以上的操作,没的什么可多言的,和前面的配置是一样的形式。

>>步骤二,Employee.java内容如下及实体配置文件

package com.asm.hibernate.domain;

public class Employee {

private int id;

private String name;

private Department depart;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/777296310.html, = name;

}

public Department getDepart() {

return depart;

}

public void setDepart(Department depart) {

this.depart = depart;

}

}

----同包下的实体配置文件:Employee.hbm.xml

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"https://www.360docs.net/doc/777296310.html,/hibernate-mapping-3.0.dtd">

hibernate面试题

1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2.Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、 4.说下Hibernate的缓存机制 1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存 2. 二级缓存: a) 应用及缓存 b) 分布式缓存 条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据 c) 第三方缓存的实现

药品检验专业基础知识考试题(八)

专业基础知识考试试卷(八) (药品检验类) 姓名单位得分一、填空题(10题,每题1分,专10分) 1.药品指用于,有目的地调节人的生理机能,并规定有适应症或者功能主治,用法和用量的物质。 2.药品监督管理部门或其设置的药品检验机构的工作人员参与药品生产经营活动的,依法给予。 3.对有掺杂、掺假嫌疑的药品,在国家药品标准规定的检验方法和检验项目不能检验时,药品检验机构可以进行药品检验. 4。《中国药典》凡例中的有关规定具有约束力。 5。傅里叶变换红外光谱仪使用校正仪器的波数. 6。原子吸收分光光度法的测量对象是的金属元素和部分非金属元素。 7.标准品,对照品系指用于的标准物质。8.水浴温度除另有规定外,均指。 9.纸色谱法中,固定相是指。10.钙盐的鉴别:取铂丝,用盐酸湿润后,蘸取供试品,在无色火焰燃烧,火焰显色。 二、选择题(20题,单选、多选题各10题,每题1分,共20分) (一)单选

1.《中华人民共和国药品管理法》的立法宗旨为() A、加强药品监督管理,保证药品质量,保障人体用药安全,维护人民身体健康. B、加强药品监督管理,保证药品质量,增进药品疗效,保障人体用药安全,维护人民身体健康。 C、加强药品监督管理,保证药品质量,增进药品疗效,维护人民身体健康. D、加强药品监督管理,保证药品质量,维护人民用药的合法权益,维护人民身体健康。 E、加强药品监督管理,保证药品质量,保障人体用药安全,维护人民身体健康和用药的合法权益。 2.以下关于药品标准叙述正确的是( ) A、属于推荐性标准 B、是国家对药品质量及规格,检验方法所做的技术规定 C、我国的国家药品标准是试行标准 D、药品生产企业的企业标准可以低于国家标准 E、我国药典每四年修订一次 3.对于制剂的检查,下列说法中正确的是() A、片剂的一般检查不包括含量均匀度检查 B、注射剂一般检查包括重量差异检查 C、溶出度检查属于片剂的一般检查 D、防腐剂的检查属于注射剂的一般检查范围 E、装量差异检查不属于胶囊剂的一般检查 4.《中国药典》(2005年版)铁盐检查法中,为使供试品中的Fe2+氧化成Fe3

Hibernate学习入门教程

Hibernate学习入门教程 开发环境搭建 [日期:2015-08-11] 来源:Linux社区作者:doctorJoe [字体:大中小] 其实一两个月前就在了解Hibernate方面的知识了,但一直以来,都没有好好的总结,而且一直使用的是myeclipse,感觉有些傻瓜式的操作就可以搭建起Hibernate的开发环境,但这样一点都不好,没有理解到Hibernate到底是怎么配置的,所以你今天特使用Eclipse来一步一步搭建Hibernate的开发环境,下面,正式进入正题。 在Hibernate中开启日志https://www.360docs.net/doc/777296310.html,/Linux/2015-07/120499.htm Hibernate+JUnit测试实体类生成数据库表https://www.360docs.net/doc/777296310.html,/Linux/2015-07/120161. htm Hibernate整体理解https://www.360docs.net/doc/777296310.html,/Linux/2014-07/104405.htm Hibernate的映射机制https://www.360docs.net/doc/777296310.html,/Linux/2014-12/110265.htm 新建一个web项目,名字就随便吧,你喜欢什么名字就什么吧,这是我的截图。

引入hibernate的依赖jar包,我使用的是hibernate-release-4.3.10.Final,下载好后解压,打开压缩包下的lib目录下的require文件夹,这是hibernate的所以来的必须的jar包,接下来,在刚才新建的项目里新建一个libs文件夹,将刚才的所说的jar包copy进去,另外,由于我们需要连接MySQL数据库以及使用JUnit测试,将所需的mysql-connector-java-5.0.8-bin.jar和junit-4.5.jar两个jar包引用进去,关于这些jar包,可以在网上搜索。接下来,就是把这些jar 包添加到编译环境中去,选中libs下的jar包,右击选择Build Path –>Add to Build Path,这样就把依赖jar包成功添加进去了。 继续往下,我们需要配置最重要的hibernate配置文件hibernate.cfg.xml以及进行日志处理的log4j.properties属性文件:打开上一步解压后的hibernate文件夹,打开project—>etc文件夹,将该文件夹下的hibernate.cfg.xml和log4j.properties文件拷贝到项目的src文件夹下,打开hibernate.cfg.xml文件,将session-factory标签中的内容替换成如下的内容: org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql:///hibernatedemo root yzp140103 这样就配置好了。 接下来,要做的就是做开发测试了:在项目的src目录下新建一个实体类包com.joe.entity,在该包下新建一个实体类Student,代码如下: package com.joe.entity; import java.io.Serializable;

Hibernate_测试题

medal.setType("Gold Medal"); session.save(user); session.close(); } A.配置文件配置有误 B.没有在配置文件中包含对映射文件的声明 C.映射文件配置有误 D.没有开启事务 5.下列属于多对一关系的是(bd )。(选两项) A.书和作者 B.手机和生产厂家 C.用户和发布的出租信息 D.士兵和班长 6.下面是某系统中的两个实体类,依此可以得知(b )。 public class Wage{ //月工资实体类 private Long wid; private String empName; //雇员姓名 private String month; //月份 //Getter & Setter …… } public class WageItem{ //工资项 private Wage wage; private Long iid; private String itemName; //项目名称,如基本工资、职位津贴等private String amount; //数额 //Getter & Setter …… } A.Wage 和WageItem 间存在单向一对多的关联 B.Wage 和WageItem 间存在单向多对一的关联 C.Wage 和WageItem间存在双向一对多的关联 D.Wage 和WageItem间存在双向多对一的关联 7.两实体类代码如下: public class Wage{ //月工资实体类 private Long wid; private String empName; //雇员姓名 private String month; //月份 //Getter & Setter …… } public class WageItem{ //工资项 private Wage wage;

医学检验《基础知识》考试题及答案

本文从网络收集而来,上传到 平台为了帮到更多的人,如果 您需要使用本文档,请点击下 载,另外祝您生活愉快,工作 顺利,万事如意! 医学检验《基础知识》考试题 及答案

一、A1 1、检测血糖时,实验室多采用血浆或血清而不使用全血的原因是 A、方便于同时检测其他生化指标 B、血细胞的糖酵解作用会使血中葡萄糖浓度降低 C、血细胞中的葡萄糖渗出使血中葡糖糖浓度升高 D、细菌污染使血中葡萄糖浓度升高 E、细菌污染使血中葡萄糖浓度降低 【正确答案】 B 【答案解析】由于红细胞内的G-6-PD可促使葡萄糖的酵解从而使血糖浓度降低。 2、与试带法检测白细胞的原理有关的酶是 A、粒细胞酯酶 B、酸性磷酸酶 C、碱性磷酸酶 D、过氧化物酶 E、单核细胞酯酶 【正确答案】 A 3、关于免疫耐受的描述,错误的是 A、免疫耐受是机体对抗原刺激表现出的特异性"免疫不应答"现象 B、T细胞和B细胞都可发生免疫耐受 C、免疫耐受机体对任何抗原均不应答 D、免疫耐受具有特异性 E、中枢免疫耐受状态可持续终身 【正确答案】 C 4、肾移植进行组织配型.优先考虑的是

A、AB0血型 B、HLA-DR C、HLA-DP D、HLA-A E、HLA-B 【正确答案】 B 5、下列何种疾病使中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损 A、慢性肉芽肿 B、髓过氧化物酶 C、G-6-PD缺乏症 D、Shwachman综合征 E、类白血病 【正确答案】 A 【答案解析】慢性肉芽肿属原发性吞噬细胞功能缺陷,其中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损。6、属于Ⅲ型超敏反应的疾病是 A、过敏性支气管哮喘 B、新生儿溶血症 C、接触性皮炎 D、过敏性休克 E、系统性红斑狼疮 【正确答案】 E 7、用密度梯度离心法分离的外周血单个核细胞,不含有 A、单核细胞 B、T细胞 C、B细胞 D、NK细胞 E、多形核粒细胞 【正确答案】 E 8、补体系统活化替代途径激活物主要是 A、结合抗原后的IgG类抗体 B、结合抗原后的IgM类抗体

MyEclipse+Hibernate+快速入门+中文版

提纲 1前言2准备工作3介绍4Hibernate 一览5创建HibernateDemo 项目 5创建HibernateDemo Java Project 5555使用模版调整生成更好的代码55编辑映射文件 6使用HQL 编辑器 7测试HibernateDemo 应用 8使用示例HibernateDemo 项目 9 总结1.前言 本文档基于以下环境编写:Sun JDK 1.5,Eclipse 3.2和MyEclipse 5.0.所有的截屏基于Eclipse,MyEclipse Enterprise Workbench,和Windows XP 的默认用户界面设置.如果你对本文档的介绍有阅读上的困难,请阅读用户反馈部分来了解如何向MyEclipse 文档团队提交反馈. 2.准备工作 下面是这个快速入门的准备工作列表: Java 2SDK,Standard Edition 1.4或者更高版本(参考来了解下载地址) Eclipse 3.2SDK (参考资源来了解下载地址) MyEclipse 5.0(参考资源来了解下载地址) 选择以下可以被Hibernate 和MyEclipse Database Explorer 所支持的数据库服务器列表中的一个 : MyEclipse Hibernate 快速入门中 文版

3.介绍 这个快速入门展示了使用MyEclipse Enterprise Workbench 开发Hibernate 的基本功能,概念和技术.我们将全程带领你来开发一个非常简单的Java Hibernate 应用.对于这个教程没有包含到的问题和概念,我们推荐你去参考资源部分列出的Hibernate 资源. 这个文档展示了如何进行下列工作: 为Java 项目添加MyEclipse Hibernate 支持 在项目中创建Hibernate 配置文件 如何使用自定义的Session Factory 从Database Explorer 的表定义中生成Java 类和Hibernate 数据库映射文件(.hbm ) ?使用HQL 编辑器 创建使用Hibernate 的小测试应用注意:在使用本教程时建议您事先阅读了Database Explorer 快速入门这个教程来了解如何创建连接和元数据功能. 4.Hibernate 一览 Hibernate 是一个非常流行的开源的易于配置和运行的基于Java 的对象-关系映射(JORM)引擎.它提供了很丰富的功能包括: 多种映射策略 可迁移的持久化 单个对象映射到多个表 支持集合 多态关联可自定义的SQL 查询 Axion Hypersonic DB InstantDB Interclient Firebird ODBC Bridge jTDS Mckoi Microsoft SQL Server Mimer SQL MySQL Oracle Pointbase PostgresQL SAPDB Sunopsis XML Sybase ThinkSQL

最新Hibernate考试试卷

Hibernate考试试题(题库) 1、在Hibernate中,下列说法正确的有()。【选三项】 A.Hibernate是一个开放源代码的对象关系映射框架 B.Hibernate对JDBC进行了轻量级的对象封装 C.Hibernate可以大大减少操作数据库的工作量 D.Hibernate提供了数据查询机制,但没有提供恢复机制 2、关于Hibernate,下列说法错误的是()。 A.Hibernate是一个对象-关系映射工具 B.在MVC模式中,Hibernate属于控制层 C.Hibernate在JDBC的方式上进行封装,以简化JDBC方式繁琐的编码工作 D.在Hibernate中,可以通过xml格式的配置文件保存对象-关系的映射信息 3、在Hibernate中,下列关于SessionFactory说法正确的有()。【选两项】 A.它是线程安全的 B.它不是线程安全的 C.它是轻量级的 D.一个SessionFactory实例对应一个数据存储源 4、在Hibernate中,下列关于Session说法正确的有()。【选三项】 A.它是线程安全的 B.它不是线程安全的 C.它是轻量级的 D.Session也被称为持久化管理器,它提供了和持久化相关的操作 5、在Hibernate中,下列关于Transaction说法正确的有()。【选三项】 A.事务Transaction为应用程序指定以原子操作单元为范围的对象 B.在对数据库进行增加、修改和删除操作时一定要加上Transaction C.在对数据库进行查询操作时一定要加上Transaction D.获得Transaction的方法:Transaction tr = session.beginTransaction(); 6、在Hibernate中,如果数据库是MySql或者SQLServer,则generator属性值不可 以使用()。 A.hilo B.native C.sequence D.indentity 7、在Hibernate中,如果数据库是Oracle或者DB2,则generator属性值不可以使用

医学检验《基础知识》试题

基础知识 一、A1 1、检测血糖时,实验室多采用血浆或血清而不使用全血的原因是 ? A、方便于同时检测其他生化指标 B、血细胞的糖酵解作用会使血中葡萄糖浓度降低 C、血细胞中的葡萄糖渗出使血中葡糖糖浓度升高 D、细菌污染使血中葡萄糖浓度升高 E、细菌污染使血中葡萄糖浓度降低【正确答案】 B 【答案解析】由于红细胞内的G-6-PD可促使葡萄糖的酵解从而使血糖浓度降低。 2、与试带法检测白细胞的原理有关的酶是 ? ? ? ? A、粒细胞酯酶 B、酸性磷酸酶 C、碱性磷酸酶 D、过氧化物酶 E、单核细胞酯酶【正确答案】 A 3、关于免疫耐受的描述,错误的是 ? ? ? A、免疫耐受是机体对抗原刺激表现出的特异性"免疫不应答"现象 B、T细胞和B细胞都可发生免疫耐受 C、免疫耐受机体对任何抗原均不应答 D、免疫耐受具有特异性 E、中枢免疫耐受状态可持续终身【正确答案】 C 4、肾移植进行组织配型.优先考虑的是 ? ? ? A、AB0血型 B、HLA-DR C、HLA-DP D、HLA-A E、HLA-B 【正确答案】 B

5、下列何种疾病使中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损 A、慢性肉芽肿 B、髓过氧化物酶 C、G-6-PD缺乏症 D、Shwachman综合征 E、类白血病 【正确答案】 A 【答案解析】慢性肉芽肿属原发性吞噬细胞功能缺陷,其中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损。 6、属于Ⅲ型超敏反应的疾病是 ? ? ? ? A、过敏性支气管哮喘 B、新生儿溶血症 C、接触性皮炎 D、过敏性休克 E、系统性红斑狼疮 【正确答案】 E 7、用密度梯度离心法分离的外周血单个核细胞,不含有 ? ? ? A、单核细胞 B、T细胞 C、B细胞 D、NK细胞 E、多形核粒细胞 【正确答案】 E 8、补体系统活化替代途径激活物主要是 ? ? ? A、结合抗原后的IgG类抗体 B、结合抗原后的IgM类抗体 C、细菌细胞壁的脂多糖、酵母多糖 D、RNA E、双链DNA 【正确答案】 C 9、免疫组化染色前.应对标本进行固定.固定最主要的目的是 ? ? A、保存组织细胞的抗原性 B、防止细胞脱落 C、防止细胞自溶

Hibernate知识的学习

Hibernate知识的学习 --------------------------------------------------第一章------------------------------------------------ 1、为什么用Hibernate呢? 他属于ORM中的一种;用来解决对象与关系模型不匹配的; ===用来解决对象与关系模型不匹配的{方法有两种:使用JDBC手工来操作;还有就是使用ORM来解决}; 学习Hibernate都要到那些包; Hibernate自动创建表; Hibernate测试类中应该怎样启动hibernate调用(主要是构造一个sessionFactory工厂,通过工厂来产生一个session对象,在通过session对象来对Hibernate操作数据库); --------------------------------------------------第二章------------------------------------------------ Hibernate的开发流程;(三点) Hibernate控制一个JavaBean时,应注意的JavaBean应该满足哪三点? --------------------------------------------------第三章------------------------------------------------ 做了一个简单的Hibernate的实例:其中编写了一个HibernateUtil.java文件来专门创建Session 对象的一个公共组件!Hibernate02实例中 --------------------------------------------------第四章------------------------------------------------ Hibernate中Session是最核心的接口,现在我们来学习一下: 通过session对象来完成增、删、改、查、的主要操作! 1.session对象的常用方法: save():添加一个对象,对应到表也就是添加一个信息; delete():删除一个对象,对应到表也就是删除一条信息; update():修改数据库信息,注意一点,当数据库没有信息时,会报出异常; get():根据id查询信息,会立刻访问数据库;【查询数据库时可以不打开事务操作】; Load():根据id查询信息,(返回的是代理,不会立即访问数据库【所以先不产生sql语句,而是当你真正的使用通过Load方法从数据库中去到的记录对象时才输出sql语句】也就是使用了懒加载机制 .如果在使用了Load方法了后,千万不要试图判断去到的对象是否为空值,因为load在这里将会产生出一个对应表JavaBean实体类的子类来处理的,相当于一个代理类的意味;通过user.getClass().getName()来获取这个代理类名称); saveOrUpdate()和merge方法:根据id和version的值来确定是save或update),【调用merge你的对象还是托管的】。【托管中用到了】 refresh():将数据重新读取一次! Lock()方法:查出一条数据,再给数据加一道锁【即为:把对象变成持久对象,但不会同步对象状态】 ------------------------------------------------------------------------------------------- 注意: 1、get和load方法获取数据库表中记录的区别; get():根据id查询信息,会立刻访问数据库;【查询数据库时可以不打开事务操作】; Load():根据id查询信息,(返回的是代理,不会立即访问数据库【所以先不产生sql语句,而是当你真正的使用通过Load方法从数据库中去到的记录对象时才输出sql语句】也就是使用了懒加载机制 .如果在使用了Load方法了后,千万不要试图判断去到的对象是否为空值,因为load在这里将会产生出一个对应表JavaBean实体类的子类来处理的,相当于一个代理类的意味;通过user.getClass().getName()来获取这个代理类名称);

Hibernate-D1 试题

**学院课程考试试卷课程名称:《Hibernate:使用Hibernate&EJB开发持久层企业及应用》(A)卷 年级:班级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷 题号1-20 21-40 41-50 总分 分数 选择题(每题2分,共计100分) 1. 一个持久化类的实例可能存在的状态有()。[选三项] A.瞬态 B.持久态 C.隔离态 D.游离态 2. 面向对象概念中的对象与面向关系概念中的()相对应。 A.表 B.表的行 C.表的列 D.表中行的数据 3. 下面说法正确的是()。[选三项] A.Hibernate是一个开放源代码的对象关系映射框架 B.Hibernate是对JDBC进行了轻量级的对象封装 C.Hibernate可以大大减少操作数据库的工作量 D.Hibernate提供了数据查询机制,但没有提供恢复机制 4. JDBC编程的缺点( acd)。[选三项] A.实现业务逻辑的代码和数据库访问代码掺杂在一起, 使程序结构不清晰,可读性差 B.在程序代码中嵌入面向关系的SQL语句,使开发人员 能完全运用面向对象的思维来编写程序 C.业务逻辑和关系数据模型绑定,如果关系数据模型发 生变化,例如修改了CUSTOMERS表的结构,那么必须手工修 改程序代码中所有相关的SQL语句,这增加了维护软件的难度 D.如果程序代码中的SQL语句包含语法错误,在编译时不 能检查这种错误,只有在运行时才能发现这种错误,这增加了 调试程序的难度

-------------------------------------- 装-------------------------------------- 订------------------------------线 ---------------------------------------- 5. Hibernate 映射文件中子元素用来设定标识符 生成器,下面哪些是Hibernate 提供的内置实现( ABD )。[选三项] A .hilo B .native C .assign D .indentity 6. 关于SessionFactory 说法不正确的是( )。[选两项]BC A .它是线程安全的 B .它不是线程安全的 C .它是轻量级的 D .一个SessionFactory 实例对应一个数据库 据存储源 7. 关于Session 说法正确的是( BCD )。[选三项] A .它是线程安全的 B .它不是线程安全的 C .它是轻量级的 D .Session 也被称为持久化管理器,它 提供了和持久化相关的操作 8. 关于Configuration 说法正确的是()。[选三项]ABD A .Configuration 类的构造方法把默认路径下的hibernate. cfg.xml(或hibernate.properties)配置文件中的配置信息读入 到内存 B .Configuration 对象用于配置且启动Hibernate C .获得Configuration 的方法:Configuration config = n ew Configuration();///··.config() D .Hibernate 应用通过Configuration 实例来指定对象-关系 映射文件的位置或者动态配置Hibernate 的属性 9. 关于Transaction 说法正确的是( )。[选三项]ABD A .事务Transaction 为应用程序指定以原子操作单元范围的对象 B .在做对数据库的增加、修改和删除时一定要加上Transaction C .在做对数据库的查询时一定要加上Transaction D .获得Transaction 的方法:Transaction tr = session.begin Transaction(); 10. 如果数据库是MySql 或者SQLServer ,generator 属性值不可以用下面

医学检验《基础知识》试题

精品文档 基础知识 一、A1 1、检测血糖时,实验室多采用血浆或血清而不使用全血的原因是 A、方便于同时检测其他生化指标 B、血细胞的糖酵解作用会使血中葡萄糖浓度降低 C、血细胞中的葡萄糖渗出使血中葡糖糖浓度升高 D、细菌污染使血中葡萄糖浓度升高 E、细菌污染使血中葡萄糖浓度降低 【正确答案】 B 【答案解析】由于红细胞内的G-6-PD可促使葡萄糖的酵解从而使血糖浓度降低。 2、与试带法检测白细胞的原理有关的酶是 A、粒细胞酯酶 B、酸性磷酸酶 C、碱性磷酸酶 D、过氧化物酶 E、单核细胞酯酶 【正确答案】 A 3、关于免疫耐受的描述,错误的是 A、免疫耐受是机体对抗原刺激表现出的特异性"免疫不应答"现象 B、T细胞和B细胞都可发生免疫耐受 C、免疫耐受机体对任何抗原均不应答 D、免疫耐受具有特异性 E、中枢免疫耐受状态可持续终身 【正确答案】 C 4、肾移植进行组织配型.优先考虑的是 A、AB0血型 B、HLA-DR C、HLA-DP D、HLA-A E、HLA-B 【正确答案】 B 5、下列何种疾病使中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损A、慢性肉芽肿 B、髓过氧化物酶 C、G-6-PD缺乏症 D、Shwachman综合征 E、类白血病 【正确答案】 A 【答案解析】慢性肉芽肿属原发性吞噬细胞功能缺陷,其中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损。 6、属于Ⅲ型超敏反应的疾病是 A、过敏性支气管哮喘 B、新生儿溶血症 C、接触性皮炎 D、过敏性休克 E、系统性红斑狼疮 【正确答案】 E 7、用密度梯度离心法分离的外周血单个核细胞,不含有 A、单核细胞 B、T细胞 C、B细胞 D、NK细胞 E、多形核粒细胞 【正确答案】 E 8、补体系统活化替代途径激活物主要是 A、结合抗原后的IgG类抗体 B、结合抗原后的IgM类抗体 C、细菌细胞壁的脂多糖、酵母多糖 D、RNA E、双链DNA 【正确答案】 C 9、免疫组化染色前.应对标本进行固定.固定最主要的目的是 A、保存组织细胞的抗原性 B、防止细胞脱落 C、防止细胞自溶 D、终止胞内酶的活性 E、使细胞内蛋白质凝固 【正确答案】 A

Hibernate考试试卷

Hibernate 考试试题 (题库) 1、 在 Hibernate 中,下 列 说法正确的有( )。【选三 项】 A . Hibernate 是一个开放源代码的对象关系映射框架 对 JDBC 进行了轻量级的对象封装 可以大大减少操作数据库的工作量 提供了数据查询机制,但没有提供恢复机 2、 关于 Hibernate ,下列 说法错误的是( )。 A . Hibernate 是一个对象 - 关系映射工具 B .在 MV C 模式中, Hibernate 属于控制层 C .Hibernate 在 JDBC 的方式上进行封装, 以简化 JDBC 方式繁琐的编码工作 D .在 Hibernate 中,可以通过 xml 格式的配置文件保存 对象 - 关系的映射信息 3、 在 Hibernate 中,下列 关于 SessionFactory 说法正 确的 有( )。【选两项】 A .它是线程安全的 B .它不是线程安全的 C .它是轻量级的 D .一个 SessionFactory 实例对应一个数据存储源 4、 在 Hibernate 中,下列 关于 Session 说法正确的 有 B . Hibernat e C . Hibernat e

Hibernate 考试试题(题库)()。【选三项】

A.它是线程安全的 B .它不是线程安全的 C.它是轻量级的 D .Session也被称为持久化管理器,它提供了和持久化相关的操作 5、在Hibernate 中,下列关于Transaction 说法正确的 有()。【选三项】 A .事务Transaction 为应用程序指定以原子操作单元为范围的对象 B .在对数据库进行增加、修改和删除操作时一定要加上Transaction C .在对数据库进行查询操作时一定要加上Transaction D .获得Transaction 的方法:Transaction tr = session.beginTransaction(); 6、在Hibernate 中,如果数据库是MySql 或者 SQLServer ,则generator 属性值不可以使用( )。 A. hilo B . native C. sequence D . indentity 7、在Hibernate 中,如果数据库是Oracle 或者DB2 , 则generator属性值不可以使用()。 A . hilo

2019医学检验《基础知识》考试题及答案

本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本 文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 2019医学检验《基础知识》考试题及答案一、A1 1、检测血糖时,实验室多采用血浆或血清而不使用全血的原因是 A、方便于同时检测其他生化指标 B、血细胞的糖酵解作用会使血中葡萄糖浓度降低 C、血细胞中的葡萄糖渗出使血中葡糖糖浓度升高 D、细菌污染使血中葡萄糖浓度升高 E、细菌污染使血中葡萄糖浓度降低【正确答案】 B 【答案解析】由于红细胞内的G-6-PD 可促使葡萄糖的酵解从而使血糖浓度降低。 2、与试带法检测白细胞的原理有关的酶是 A、粒细胞酯酶 B、酸性磷酸酶 C、碱性磷酸酶 D、过氧化物酶 E、单核细胞酯酶 【正确答案】 A 3、关于免疫耐受的描述,错误的是 A、免疫耐受是机体对抗原刺激表现出的特异性"免疫不应答"现象 B、T细胞和B细胞都可发生免疫耐受 C、免疫耐受机体对任何抗原均不应答 D、免疫耐受具有特异性 E、中枢免疫耐受状态可持续终身【正确答案】 C 4、肾移植进行组织配型.优先考虑的是

A、AB0血型 B、HLA-DR C、HLA-DP D、HLA-A E、HLA-B 【正确答案】 B 5、下列何种疾病使中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损 A、慢性肉芽肿 B、髓过氧化物酶 C、G-6-PD缺乏症 D、Shwachman综合征 E、类白血病 【正确答案】 A 【答案解析】慢性肉芽肿属原发性吞噬细胞功能缺陷,其中性粒细胞和单核细胞的调理、吞噬和杀伤能力受损。 6、属于Ⅲ型超敏反应的疾病是 A、过敏性支气管哮喘 B、新生儿溶血症 C、接触性皮炎 D、过敏性休克 E、系统性红斑狼疮 【正确答案】 E 7、用密度梯度离心法分离的外周血单个核细胞,不含有 A、单核细胞 B、T细胞 C、B细胞 D、NK细胞 E、多形核粒细胞 【正确答案】 E 8、补体系统活化替代途径激活物主要是 A、结合抗原后的IgG类抗体 B、结合抗原后的IgM类抗体 C、细菌细胞壁的脂多糖、酵母多糖 D、RNA E、双链DNA 【正确答案】 C 9、免疫组化染色前.应对标本进行固定.固定最主要的目的是 A、保存组织细胞的抗原性 B、防止细胞脱落 C、防止细胞自溶 D、终止胞内酶的活性 E、使细胞内蛋白质凝固 【正确答案】 A 10、捕获法ELISA检测的Ig类别是 A、IgM B、IgG C、IgA D、IgD E、IgE 【正确答案】 A 11、临床监测药物浓度的首选方法是 A、时间分辨免疫荧光分析 B、荧光偏振免疫分析 C、免疫荧光显微技术 D、流式细胞术 E、免疫层析技术 【正确答案】 B 12、全自动生化分析仪上进行血浆载脂蛋白测定的方法是 A、免疫扩散法 B、免疫火箭电泳法 C、免疫透射比浊法 D、酶法 E、抽提法 【正确答案】 C

Hibernate最新练习题

Hibernate练习题 1.一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)ABC A)表对应类 B)记录对应对象 C)表的字段对应类的属性 D)表之间的参考关系对应类之间的依赖关系 2.试述load()和get()的区别。 1.从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2.从检索执行机制上对比:get方法和find方法都是直接从数据库中检索而load方法的执行则比较复杂首先查找session的persistent Context中是否有缓存,如果有则直接返回如果没有则判断是否是lazy,如果不是直接访问数据库检索,查到记录返回,查不到抛出异常如果是lazy则需要建立代理对象,对象的initialized属性为false,target属性为null 在访问获得的代理对象的属性时,检索数据库,如果找到记录则把该记录的对象复制到代理对象的target上,并将initialized=true,如果找不到就抛出异常。 hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。 3.简述使用Hibernate完成持3久化操作的3个准备和7个步骤。 1.创建Congfigure对象。读取并解析配置文件(相当于使用数据源(DataSource)获取连接前读取DataSource的配置文件):Configuration conf=new Configuration().configure(); 2.读取并解析映射信息,创建SessionFactory(相当于创建了数据源(DataSource)对象),它是产生Session 对象实例的工厂,它是唯一的。:SessionFactory sf=conf.buildSessionFactory(); 3.创建Session对象,打开session(相当于JDBC获得数据库的连接):Session session=sf.openSession(); 4.开始一个事务(增删改必须,查可选):tx=sessionl.beginTransaction(); 5.持久化操作:session.save(user); 6.结束事务:https://www.360docs.net/doc/777296310.html,mit(); 7.关闭session,释放数据库的链接:session.close(); 三个准备如下:

检验员理论基础知识考题题库

检验员理论基础知识考题题库 第一部分公共题 一、术语: 1、质量:是一组固有特性满足要求的程度; 2、产品:是过程的结果; 3、组织:职责、权限和相互关系得到安排工作的一组人员及设施; 4、管理:指挥和控制组织的协调的活动; 5、质量方针:由组织的最高管理层正式发布的该组织总的质量宗旨和方向; 6、质量目标:在质量方面所追求的目的; 7、质量策化:致力于制定质量目标并规定必要的运行过程和相关资源以实现质量目标; 8、质量控制:致力于满足质量要求; 9、全面质量管理:一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径。 10、质量评审:对重要质量标准、关键过程控制、质量管理体系审核能够客观评价。 11、质量检验:对进货、过程、出厂检验的方法、水平、及其结论能够指导并实施有效的监督; 12、质量仲裁:在供需双方对产品或服务质量产生纠纷,能根据委托方作为第三方提出权威性仲裁意见; 13、质量成本:是指为确保和保证满意的质量而导致的费用以及没有获得满意的质量而导致的有形的和无形的损失; 14、报废损失费:因产成品、半成品、在制品达不到质量要求且无法修复或在经济上不值得修复造成报废所发生的损失费用,以及外购元器件、零部件、原材料在采购、运输、仓储等过程中因质量问题所损失的费用; 15、停工损失费:因质量问题造成停工所损失的费用; 16、返工返修费:为修复不合格品使之达到质量要求或预期使用要求所支付的费用; 17、产品质量责任:是指生产者、销售者以及其他对产品质量负有责任的人违反产品质量法规定的产品义务所应当承担责任的法律责任; 18、文件:是指信息及其承载媒体; 19、记录:是阐明所取得结果或提供所完成活动的证据的文件;

(最新)JSF+Spring+Hibernate的实例讲解

JSF+Spring+Hibernate的实例讲解 使用JSF建立一个真实的Web应用程序不是没有意义的任务,这篇文章介绍了如何将JSF与Sping Framework和Hibernate集成,并且给出了使用这些技术建立这个真实的Web应用程序的最佳实践和设计指导 JavaServer Faces(JSF)技术是J2EE应用程序的一个新的用户接口框架,它非常适合基于 MVC(Model-View-Controller)体系结构的应用程序。已经有大量的文章介绍JSF。然而,很多文章都是站在理论研究的层面上,没有挑战一个真实的企业开发。很多问题没有解决,例如,JSF怎样全面适合MVC体系结构?JSF如何与其他JAVA框架集成?业务逻辑应该放在JSF的backing beans里面吗?怎样处理JSF里面的安全问题?最重要的是你怎样使用JSF建立一个真实的Web应用程序? 这篇文章涉及所有这些问题。它向你展示如何集成其他特定的Java框架,Spring Framework和Hibernate,它示范怎样去创建一个叫JCatalog的Web应用程序,一个在线的产品目录系统。这篇文章使用JCatalog例子,介绍了Web应用程序设计的每一个阶段,包括业务需求收集,分析,技术选择,高层体系结构和详细设计。这篇文章论述了JCatalog里面好的和不好的技术,示范了应用程序设计中一些关键方面的方法和步骤。 这篇文章是写给正在从事基于J2EE Web应用程序的Java架构师,开发者,它不是对JSF、Spring Framework和Hibernate的入门教程。如果您对这些领域不熟悉,请参考文章最后的资源链接。 例子应用程序的功能需求 这篇文章的例子应用程序JCatalog是一个真实的Web应用程序,例子足够现实是为了决定应用程序架构而进行意味深长的讨论的基础。我通过介绍JCatalog项目的需求开始。我在这里谈到后面贯穿于整个文章的内容是为了演示技术选择和体系结构设计。 设计Web应用程序的第一步是收集系统的功能需求,这个例子应用程序是一个典型的电子商务应用系统。用户能浏览产品目录和查看产品细节,管理员能管理产品目录。功能还可以增加,举例来说,为了开发一个成熟的电子商务系统,可以添加库存管理和订单处理的功能。 用例 用例分析被用于去访问例子应用程序的功能需求,图1是应用程序的用例图。

Hibernate 考试题讲课稿

H i b e r n a t e考试题

Hibernate 考试题 一.填空题: 1. 对象关系映射(ORM)的基本原则是:类型(class)映射(),属性(property)映射(),关联关系(association)映射(),类型的实例或对象(instance | object)映射()。 2. Hibernate应用通常由四个部分组成,它们是使用Hibernate API的程序和(、、)。 3. Hibernate应用缺省的XML格式的配置文件名是(), 放置在()下;该配置文件的根元素是(),根元素的子元素是();配置数据库方言的属性名是 ();配置数据库连接的四种属性名是 (、、、);配置映射资源的元素是(),如果映射用XML文件表示,用属性()表示,如果映射用标注(annotation)表示,用属性()表示。 4. Hibernate XML映射文件的根元素是();此根元素下主要的子元素是();映射实体类中表示主键的属性的

元素是();映射实体类中普通属性的元素是 ();映射一对一关联关系的元素是();映射多对一关联关系的元素是();表示多对多关系用集合元素,这些集合元素是();描述外键用元素(); 如果一个类型不是实体,但它是某个实体的组成部分,我们用元素()表示;在描述继承关系时, 如果用一张表对应整个类层次结构子类型用元素()描述,如果每个子类型对应各自的表子类型用 ()描述,如果只有真正的可实例化的子类型才对应表则子类型可用元素()或元素 ()描述;代表双向关联关系时表示是否维护表中外键关系的属性名是();代表级联操作的属性名是();使用乐观锁时我们通常会在实体类型中增加一整型或日期型的属性,在影射文件中用元素 (或)描述。 5. 在Hibernate XML影射文件中描述主键生成机制用元素(),其属性描述了主键的生成策略,至少写出三种策略名(、、)。 6. 在Hibernate XML影射文件中级连操作的属性值至少写出三个(、、)。

相关文档
最新文档