天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

hibernate中的增刪改查實(shí)現(xiàn)代碼

第一個我們首先看看增,增在SQL里面就是insert,也就是插入,在hibernate中,我們只需要,操縱一個對象進(jìn)行sava,然后再commit事務(wù),就能實(shí)現(xiàn)插入功能,下面給大家具體看看代碼,持久類我就不再寫了,里面也就是與數(shù)據(jù)庫中的字段要一一對應(yīng)的東西,要有set,get方法,我直接就寫的怎么調(diào)用save方法。
//導(dǎo)入所需的包
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class UserTest {
public static void main(String args[]){
Configuration cfg = new Configuration().configure(); //獲取hibernate的配置信息
SessionFactory sf = cfg.buildSessionFactory(); //根據(jù)config建立sessionFactory
Session ses = sf.openSession(); //factory用于建立session,開啟Session,相當(dāng)于開啟JDBC的Connection
Transaction ts = ses.beginTransaction(); //創(chuàng)建事務(wù)的對象ts
User user = new User(); //持久化對象
user.setName("kobe");
user.setTel("111111111");
try {
ses.save(user);
ts.commit();
}catch (HibernateException he){
he.printStackTrace();
ts.rollback();
}finally{
ses.close();
sf.close();
System.out.println("插入成功");
}
}
}
第二個我們看看刪,刪在SQL里面是delete,也就是刪除,同樣在hibernate中,我們也是只需要調(diào)用一個對象,調(diào)用delete方法,就能進(jìn)行刪除。
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class DeleteTest {
public static void main(String args[]){
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session ses = sf.openSession();
Transaction ts = ses.beginTransaction();
User user = new User();
user.setId("8a8308891e9c3ef3011e9c3ef4aa0001");
try {
ses.delete(user);
ts.commit();
}catch (HibernateException he){
he.printStackTrace();
ts.rollback();
}finally{
ses.close();
sf.close();
System.out.println("刪除成功");
}
}
}
具體中間的含義參照sava方法,這里我們要注意一點(diǎn),我們調(diào)用刪除的時候,他刪除的條件,也就是where后面的條件一定是我們xml中配置id,通過這個來進(jìn)行查找刪除,這里尤其值得注意,也就是,我這里調(diào)用的user.setId(" ");這句話,他是通過""中的內(nèi)容進(jìn)行刪除的。
第三個我們看看改,改在SQL中update,在hibernate中,我們同樣只需要操作一個對象進(jìn)行更改信息。
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class UpdateTest {
public static void main(String args[]){
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session ses = sf.openSession();
Transaction ts = ses.beginTransaction();
User user = new User();
user.setId("8a8308891e9c3ef3011e9c3ef4aa0001");
user.setName("kobe24");
try {
ses.update(user);
ts.commit();
}catch (HibernateException he){
he.printStackTrace();
ts.rollback();
}finally{
ses.close();
sf.close();
System.out.println("更改成功");
}
}
}
但是這里我們有需要注意的地方了,如果有的朋友用過這個update就會發(fā)現(xiàn),調(diào)用這個方法的時候他更新的不只是你想更新的數(shù)據(jù),你不想更新的數(shù)據(jù),他也會隨著改變,如果你沒有給他set值,他就會出現(xiàn)null,或者表格中什么都沒有,這里我們就需要用另一種方法了,去更新你想更新的數(shù)據(jù),而你不想改變的數(shù)據(jù)還會保持原來的狀態(tài),這里我們就需要調(diào)用一個方法。
Session ses = sf.openSession();
Transaction ts = ses.beginTransaction();
User user = (User)ses.get(User.class,"8a8308891e9c3ef3011e9c3ef4aa0001");
user.setName("kobe24");
try {
ses.update(user);
ts.commit();
這樣我們就會發(fā)現(xiàn),我們只更新了我們想要更新的數(shù)據(jù)。ses不光光有這一個get方法,相同功能他還有一個load方法,兩個方法功能是相同的但是有什么區(qū)別呢,區(qū)別就是用load方法時候他是從緩存中查找,而我們調(diào)用get方法的時候是從數(shù)據(jù)庫中查找,不過get方法他也是先從緩存中查找,如果沒有在去數(shù)據(jù)庫中查找。
第三個我們看看查,查在SQL中是select,在hibernate中我們查詢的時候有多種方法,這里我就寫一種hibernate比較提倡的方法,就是HQL。用這個方法時候我們尤其需要注意的是他其中的from跟的不是表名,而是類名。
package hibernate;
import Java.util.Iterator;
import Java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class SeleteTest {
public static void main(String args[]){
Configuration cfg=new Configuration().configure();
SessionFactory sf=cfg.buildSessionFactory();
Session ses=sf.openSession();
Transaction tx=ses.beginTransaction();
User user = new User();
Query query = ses.createQuery("from User");
List users = query.list(); //序列化
Iterator it = users.iterator(); //迭代
while (it.hasNext()){
user = (User) it.next();
System.out.println(user.getName()+" "+user.getTel()+" ");
}
ses.close();
sf.close();
}
}

jsp技術(shù)hibernate中的增刪改查實(shí)現(xiàn)代碼,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品乱码一区二区三 | 亚洲免费在线播放 | 免费看www视频 | 青草久久精品亚洲综合专区 | a级精品九九九大片免费看 A级韩国乱理伦片在线观看 | 富婆大保健嗷嗷叫普通话对白 | sihu国产精品永久免费 | 麻豆成人AV久久无码精品 | 久久久99精品成人片中文 | 国产精品自在自线亚洲 | 亚洲精品m在线观看 | 久久国产乱子伦精品免费不卡 | 久久久精品久久久久久 | 求个av网站| 双性h浪荡受bl | 国产永不无码精品AV永久 | 男女夜晚在爽视频免费观看 | 日韩精品AV一区二区三区 | 成人综合在线视频免费观看完整版 | 在教室做啊好大用力 | 九九热在线免费观看 | 毛片免费在线播放 | 国产亚洲精品久久久久久无码网站 | 国产人妻人伦精品无码.麻豆 | 国产婷婷色一区二区三区在线 | 综合激情区视频一区视频二区 | 亚洲精品视频免费观看 | VIDEOSGGRATIS欧美另类 | xx在线观看 | 国产欧美精品一区二区三区-老狼 | 老师的脚奴 | a级销魂美女 | 台湾果冻传媒在线观看 | 思思99精品国产自在现线 | 日韩人妻精品久久日 | 亚洲精品偷拍影视在线观看 | 日本wwwxx爽69护士 | 国产中文在线观看 | WINDOWSCHANNEL老太| 国产极品白嫩超清在线观看 | 亚洲精品久久久992KVTV |