表名:test,只有一個列id varchar(50);
hibernate.cfg.xml內容:
<?xml version='1.0' encoding='UTF-8'?> <!-- Generated by MyEclipse Hibernate Tools. --> <session-factory> //端口號可以通過雙擊服務圖標查看,默認值為2638 //因為數據量大,會內存溢出,所以用下面語句定義50行提交一次 //關閉二級緩存,否則出錯 <mapping resource="包名/表對應的類名.hbm.xml" /> </hibernate-configuration> java程序: import java.text.SimpleDateFormat; public class hibernateConnectAnywhere { startDate = new Date(); } session.close();
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"
<hibernate-configuration>
<PRoperty name="dialect">org.hibernate.dialect.SybaseDialect</property>
<property name="connection.url">jdbc:sybase:Tds:服務器IP地址:端口號/數據庫名稱</property>
<property name="connection.username">用戶名</property>
<property name="connection.passWord">密碼</property>
<property name="connection.driver_class">com.sybase.jdbc3.jdbc.SybDataSource</property>
<property name="myeclipse.connection.profile">test</property>
<!-- -->
<property name="hibernate.jdbc.batch_size">50</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
</session-factory>
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.Transaction;
public static void main(String[] args) {
Date startDate = null;
test tableTest = null;
Transaction ts = null;
Session session = HibernateSessionFactory.getSession();
try {
ts = session.beginTransaction();
System.out.println("start time : "
+ (new SimpleDateFormat("HH:mm:ss").format(startDate)));
for (int i = 0; i < 1000000; i++) {
tableTest = new test();
tableTest.setId("This is message" + i);
session.save(tableTest);
if ( i % 50 == 0 ) {//50行提交一次
session.flush();
session.clear();//清一級緩存,防止內存溢出
}
ts.commit();
} catch (Exception e) {
System.out.println(e.toString());
ts.rollback();
} finally {
Date endDate = new Date();
System.out.println("end time : "
+ (new SimpleDateFormat("HH:mm:ss").format(endDate)));
System.out.println("spend time(sec.) : "
+ ((endDate.getTime() - startDate.getTime()) / 1000));
}
}
}
新聞熱點
疑難解答