`
文章列表
在SSH组合时有时报commons-pool-1.3个包有问题,换一个就解决了。
核心代码: Connection的工具类:详见JDBC数据库连接 StuDao的接口: public interface StuDaointer { public void addStu(Stu stu); public void delStu(int sid); public void updStu(Stu stu); public Stu getOneStu(int sid); public List getAllStu();}   公共的DAO///*************************************\\\ public abstract clas ...
核心代码: Connection的工具类:详见:JDBC数据库连接 StuDao的接口: public interface StuDaointer { public void addStu(Stu stu); public void delStu(int sid); public void updStu(Stu stu); public Stu getOneStu(int sid); public List getAllStu();} 公共的DAO///*************************************\\\ public abstract class Comm ...
实体对象的生命周期在Hibernate应用中是一个很关键的概念,正确的理解实体对象的生命周期将对我们应用Hibernate做持久层设计起到很大的作用.而所谓的实体对象的生命周期就是指实体对象由产生到被GC回收的一段过程.在这过程中我们需要理解的就是实体对象生命周期中的三种状态.1.自由状态(Transient)所谓的Transient状态,即实体对象在内存中自由存在,与数据库中的记录无关,通常是我们的J2EE中VO,并没有被纳入Hibernate的实体管理容器. 1     Test test = new Test();2         test.setName("energykk ...
HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介: q      void delete(Object entity):删除指定持久化实例 q     
Cascade:用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的Cascade取值由:none,all,save-update,delete,lock,refresh,evict,replicate,persist,merge, delete-orphan(one-to-many)。一般以many-to-one,many-to-many不设置级联,在one-to-one和one-to-many不设置级联,在one-to-one和one-to-many中设置级联。 说明:none:表示没有任何操作级联(默认值)        All:表示所有的操作都级联      ...
数据库:create table student(   id int identity(1,1) not null primary key,   s_name varchar(50),   s_sex varchar(20))gocreate table card(   id int primary key,   address varchar(100),   cardnum varchar(20)) select * from studentselect * from card delete from carddelete from student Student.hbm.xml配置如下 ...
数据库:--学生表create table stu(  s_id int identity(1,1) not null primary key,  s_name varchar(50),   s_sex varchar(20))Go--科目表create table subject(    b_id int identity(1,1) not null primary key,    b_name varchar(50))--中间关系表create table stu_sub(   t_id int identity(1,1) not null primary key,   s_id int,  ...
Query query=this.GetSession().createQuery(hql);query.iterate()与query.list()效率是说query.iterate()比query.list()好,但做了N+1次查询它们都是先从数据库的查询出主键值,然后根据主键值查询出对象,只是query.iterate()会根据主键值先从缓存当中找,若没有就从数据库查询query.list()会根据主键值在数据库查询(N+1)
/*** 添加*/public void save(Stu stu){   try {    tran=this.GetSession().beginTransaction();    this.GetSession().save(stu);    tran.commit();   } catch (HibernateException e) {    throw e;   }finally{    this.CloseSession();   }}/*** 使用HQL全查询*/public List getallbyHQL(){   List arr=null;   try {    Stri ...
/*** 使用Criteria全查询*/public List getallbyCriteria(){   List arr=null;   try {    Criteria cri=this.GetSession().createCriteria(Stu.class);    arr=cri.list();   } catch (HibernateException e) {    throw e;   }finally{    this.CloseSession();   }   return arr;} /*** 根据对象属性查询(使用Criteria)*/public List ge ...
inner join fetch/*** 一对多中的一方inner join fetch多方* 这里不能用inner join on* 查询结果是它把一方对多方的那个集合里面的对象都查询出来放到一方的集合中*/public List getallByinnerjoinTShop(){   List list=null;   try {    Query query=this.GetSession().createQuery("from TType as t inner join fetch t.TShops");    list=query.list();   } catch ...
/*** 多条件组合查询*/ public List getallByMoreWhere(String name,double price){ List list=null; try { Criteria cri=this.GetSession().createCriteria(TShop.class); if(name!=null && name.length()>1){ cri.add(Restrictions.like("SName", name,MatchMode.ANYWHERE)); ...
创建数据库连接池: public class DataSource {     private InputStream inStream;     private Properties pro;     private static int initCount = 5;
步骤如下: 1,使用DBCP必须用的三个包:        commons-dbcp-1.2.1.jar, commons-pool-1.2.jar, commons-collections-3.1.jar。 2,配置参数。 3,Connection conn= BasicDataSourceFactory.createDataSource(properties);   配置文件(dbcpconfig.properties)如下: #连接设置 driverClassName=com.mic
Global site tag (gtag.js) - Google Analytics