package hibernatetest;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.Configuration;
import derek.hibernate.test.Admin;
import java.util.Iterator;
import java.util.List;
import java.sql.*;
public class TestConTest {
Session session = null;
protected void setUp(){
try {
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
System.out.println(config.getProperty("connection.url"));
session = sessionFactory.openSession();
}
catch (HibernateException ex1) {ex1.printStackTrace();}
}
//數(shù)據(jù)插入
public void testInsert(){
Admin admin = new Admin();
admin.setName("Hiber");
admin.setPasswd("gen");
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
try {
Transaction ts = session.beginTransaction();
session.save(admin);
session.flush();
ts.commit();
}
catch (HibernateException ex) {ex.printStackTrace(); }
}
//Query方法查詢數(shù)據(jù)
public void testQuery(){
try {
Query q = session.createQuery("from Admin where id=?");
q.setInteger(0,2);//這里的?跟JDBC的PreparedStatement方法的差不多,只不過這里的是以0開始,jdbc的是1開始。
System.out.println("Query方法查詢數(shù)據(jù)");
//q.setFirstResult(2);//查詢結(jié)果從第幾行開始列出數(shù)據(jù)
//q.setMaxResults(10);//取多少條數(shù)據(jù),就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一樣的意思。
// ScrollableResults sc=q.scroll();//得到一個(gè)ScrollableResults,可滾動(dòng)的,如果你的數(shù)據(jù)庫支持游標(biāo)自由移動(dòng)的話可以加上,也就是說可以判斷查詢結(jié)果有沒有值,或者移動(dòng)到下一行記錄等等.
Iterator it = q.iterate();
while(it.hasNext()){
Admin admin = (Admin)it.next();
System.out.println(admin.getId());
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
}
session.flush();
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }
// catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
/**
* Hibernate3.0中已經(jīng)廢棄了find()和iterate()方法
*/
//find方法查詢數(shù)據(jù)
public void testFind(){
try {
List lt = session.find("from Admin");
System.out.println("find方法查詢數(shù)據(jù)");
Iterator it = lt.iterator();
while(it.hasNext()){
Admin admin = (Admin)it.next();
System.out.println(admin.getId());
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
}
session.flush();
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }
// catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
//iterate方法查詢數(shù)據(jù)
public void testIterator(){
try {
Iterator it = session.iterate("from Admin");
while(it.hasNext()){
Admin admin = (Admin)it.next();
System.out.println(admin.getId());
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
session.flush();
}
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
//修改數(shù)據(jù)
public void testModify(){
try {
Connection con = session.connection();//得到數(shù)據(jù)庫連接
Query q = session.createQuery("from Admin where id = 2");
Iterator it = q.iterate();
Transaction ts = session.beginTransaction();
if(it.hasNext()){
Admin admin = (Admin)it.next();
admin.setName("dada");
session.update(admin);
session.evict(admin);//調(diào)用Session的evict()方法立即釋放它的內(nèi)存
session.flush();
ts.commit();
}
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
/**
* delete()方法執(zhí)行首先是執(zhí)行select語句把符合條件的記錄載入內(nèi)存中,
* 然后做逐一刪除即有多少條符合條件的記錄就執(zhí)行多少次刪除命令
*/
//刪除數(shù)據(jù)
public void testDelete(){
try {
int i = session.delete("from Admin where id = 2");
Transaction ts = session.beginTransaction();
System.out.println("刪除數(shù)據(jù)狀態(tài) "+i);
session.flush();
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
public static void main(String arg[]){
TestConTest tt = new TestConTest();
tt.setUp();
tt.testInsert();
//tt.testDelete();
//tt.testModify();
tt.testIterator();
}
}
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.Configuration;
import derek.hibernate.test.Admin;
import java.util.Iterator;
import java.util.List;
import java.sql.*;
public class TestConTest {
Session session = null;
protected void setUp(){
try {
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
System.out.println(config.getProperty("connection.url"));
session = sessionFactory.openSession();
}
catch (HibernateException ex1) {ex1.printStackTrace();}
}
//數(shù)據(jù)插入
public void testInsert(){
Admin admin = new Admin();
admin.setName("Hiber");
admin.setPasswd("gen");
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
try {
Transaction ts = session.beginTransaction();
session.save(admin);
session.flush();
ts.commit();
}
catch (HibernateException ex) {ex.printStackTrace(); }
}
//Query方法查詢數(shù)據(jù)
public void testQuery(){
try {
Query q = session.createQuery("from Admin where id=?");
q.setInteger(0,2);//這里的?跟JDBC的PreparedStatement方法的差不多,只不過這里的是以0開始,jdbc的是1開始。
System.out.println("Query方法查詢數(shù)據(jù)");
//q.setFirstResult(2);//查詢結(jié)果從第幾行開始列出數(shù)據(jù)
//q.setMaxResults(10);//取多少條數(shù)據(jù),就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一樣的意思。
// ScrollableResults sc=q.scroll();//得到一個(gè)ScrollableResults,可滾動(dòng)的,如果你的數(shù)據(jù)庫支持游標(biāo)自由移動(dòng)的話可以加上,也就是說可以判斷查詢結(jié)果有沒有值,或者移動(dòng)到下一行記錄等等.
Iterator it = q.iterate();
while(it.hasNext()){
Admin admin = (Admin)it.next();
System.out.println(admin.getId());
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
}
session.flush();
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }
// catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
/**
* Hibernate3.0中已經(jīng)廢棄了find()和iterate()方法
*/
//find方法查詢數(shù)據(jù)
public void testFind(){
try {
List lt = session.find("from Admin");
System.out.println("find方法查詢數(shù)據(jù)");
Iterator it = lt.iterator();
while(it.hasNext()){
Admin admin = (Admin)it.next();
System.out.println(admin.getId());
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
}
session.flush();
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }
// catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
//iterate方法查詢數(shù)據(jù)
public void testIterator(){
try {
Iterator it = session.iterate("from Admin");
while(it.hasNext()){
Admin admin = (Admin)it.next();
System.out.println(admin.getId());
System.out.println(admin.getName());
System.out.println(admin.getPasswd());
session.flush();
}
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
//修改數(shù)據(jù)
public void testModify(){
try {
Connection con = session.connection();//得到數(shù)據(jù)庫連接
Query q = session.createQuery("from Admin where id = 2");
Iterator it = q.iterate();
Transaction ts = session.beginTransaction();
if(it.hasNext()){
Admin admin = (Admin)it.next();
admin.setName("dada");
session.update(admin);
session.evict(admin);//調(diào)用Session的evict()方法立即釋放它的內(nèi)存
session.flush();
ts.commit();
}
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
/**
* delete()方法執(zhí)行首先是執(zhí)行select語句把符合條件的記錄載入內(nèi)存中,
* 然后做逐一刪除即有多少條符合條件的記錄就執(zhí)行多少次刪除命令
*/
//刪除數(shù)據(jù)
public void testDelete(){
try {
int i = session.delete("from Admin where id = 2");
Transaction ts = session.beginTransaction();
System.out.println("刪除數(shù)據(jù)狀態(tài) "+i);
session.flush();
}
catch (HibernateException ex) {ex.printStackTrace();}
// finally{
// try {
// session.close();
// }catch (HibernateException ex1) {ex1.printStackTrace();}
// }
}
public static void main(String arg[]){
TestConTest tt = new TestConTest();
tt.setUp();
tt.testInsert();
//tt.testDelete();
//tt.testModify();
tt.testIterator();
}
}