日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Hibernate結(jié)合MYSQL數(shù)據(jù)庫簡(jiǎn)單教程

在網(wǎng)上找了很多Hibernate的相關(guān)教程,大多數(shù)都是結(jié)合WEB服務(wù)器的,自己寫一個(gè)單獨(dú)的示例在Eclipse下直接運(yùn)行,不需要自己寫ANT腳本,不需要結(jié)合web服務(wù)器。但是需要MYSQL數(shù)據(jù)庫-_-

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供新洲網(wǎng)站建設(shè)、新洲做網(wǎng)站、新洲網(wǎng)站設(shè)計(jì)、新洲網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、新洲企業(yè)網(wǎng)站模板建站服務(wù),10余年新洲做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

首先要學(xué)會(huì)如何使用Eclipse,然后要下載Hibernate需要的所有JAR文件,最后安裝好MYSQL
準(zhǔn)備開始!

第一步,我們要?jiǎng)?chuàng)建一個(gè)表 結(jié)構(gòu)如下
  +-----------+--------------+------+-----+---------+----------------+
  | Field  | Type | Null | Key | Default | Extra  |
  +-----------+--------------+------+-----+---------+----------------+
| id| int(11)  | NO| MUL | NULL| auto_increment |
| title| varchar(400) | YES | | NULL||
| content | text | YES | | NULL||
| time  | datetime | YES | | NULL||
  +-----------+--------------+------+-----+---------+----------------+

第二步,在Eclipse中創(chuàng)建一個(gè)JAVA項(xiàng)目(我在項(xiàng)目中用到的包名是cn.com.nick.hbm)。編寫News.java類,這個(gè)類對(duì)應(yīng)了數(shù)據(jù)庫中的表

   package cn.com.nick.hbm;
import java.util.Date;
public class News
{
private int id;
private String title;
private String content;
private Date date;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getContent()
{
return content;
}
public void setContent(String content)
{
this.content = content;
}
public Date getDate()
{
return date;
}
public void setDate(Date date)
{
this.date = date;
}
}

第三步,配置對(duì)應(yīng)關(guān)系 保存為News.hbm.xml文件 與News類在同一目錄下(并不是一定要在同一目錄下,為了方便暫時(shí)先放在這里)

   
     
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
      









 

第四步,配置hibernate.cfg.xml 注意這個(gè)名字不能改,并且要放到SRC的跟路徑下(這里要注意,如果放錯(cuò)地方示例中的方法是找不到這個(gè)文件的)

    
     
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
     
     
     
      true
     
     

com.mysql.jdbc.Driver

thread

jdbc:mysql://localhost:3306/test

root
123

org.hibernate.dialect.MySQLDialect

my

最后創(chuàng)建一個(gè)測(cè)試類 Test.java 代碼如下,里邊有注釋說明
package cn.com.nick.hbm;
import java.util.Date;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
public class Test
{
private static final SessionFactory sessionFactory;
static
{
try
{
// 這里創(chuàng)建了SessionFactory 將hibernate.cfg.xml文件放到SRC的跟路徑下
// Hibernate會(huì)自己找到
sessionFactory = new Configuration().configure()
  .buildSessionFactory();
} catch (Throwable ex)
{
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
public static void main(String[] args)
{
// 實(shí)例化一個(gè)新的News對(duì)象,并填充內(nèi)容
News news = new News();
news.setTitle("測(cè)試標(biāo)題");
news.setContent("添加測(cè)試內(nèi)容");
news.setDate(new Date());
Test t = new Test();
// 調(diào)用Test類下的存儲(chǔ)方法,相當(dāng)于執(zhí)行INSERT語句
// t.Save(news);
// 調(diào)用查詢方法,顯示數(shù)據(jù)庫的內(nèi)容
t.select();
// 調(diào)用更新方法
// t.update();
// 調(diào)用刪除
// t.delete();
}
/**
* 一個(gè)簡(jiǎn)單的添加數(shù)據(jù)方法
* @param news news對(duì)象,這個(gè)對(duì)象將被添加到庫中
*/
public void Save(News news)
{
try
{
//獲取hibernate的session
Session session = Test.getSessionFactory().getCurrentSession();
session.beginTransaction();
//這里只需要調(diào)用save方法把news對(duì)象傳進(jìn)去就插入成功了!
session.save(news);
session.getTransaction().commit();
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 查詢方法
*/
public void select()
{
try
{
Session session = Test.getSessionFactory().getCurrentSession();
session.beginTransaction();
//注意?。。∵@里的 News 不是表名稱! 是對(duì)象名所以要注意大小寫
String sql=" from News";
//帶條件的查詢
//String sql="from News where id=1";
//用session.createQuery()執(zhí)行HQL查詢語句
List l = session.createQuery(sql).list();
//在控制臺(tái)循環(huán)輸出
for (News n : l)
{
 System.out.println(n.getId());
 System.out.println(n.getTitle());
 System.out.println(n.getContent());
 System.out.println(n.getDate());
 System.out.println("==============");
}
session.getTransaction().commit();
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 更新方法
*/
public void update()
{
try
{
Session session = Test.getSessionFactory().getCurrentSession();
session.beginTransaction();
//定義了要裝載對(duì)象的ID
Integer id = 1;
//用load方法裝載一個(gè)對(duì)象進(jìn)來
News n = (News) session.load(News.class, new Integer(id));
//重新設(shè)置這個(gè)對(duì)象的標(biāo)題
n.setTitle("更新后標(biāo)題");
//用update方法更新這個(gè)對(duì)象
session.update(n);
session.getTransaction().commit();
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete()
{
try
{
Session session = Test.getSessionFactory().getCurrentSession();
session.beginTransaction();
//定義了要裝載對(duì)象的ID
Integer id = 6;
//用load方法裝載一個(gè)對(duì)象進(jìn)來
News n = (News) session.load(News.class, new Integer(id));
//用delete方法刪除這個(gè)對(duì)象
session.delete(n);
session.getTransaction().commit();
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

好啦,直接運(yùn)行Test類看一下效果吧!

您正在閱讀: Hibernate結(jié)合MYSQL數(shù)據(jù)庫簡(jiǎn)單教程


當(dāng)前標(biāo)題:Hibernate結(jié)合MYSQL數(shù)據(jù)庫簡(jiǎn)單教程
瀏覽路徑:http://www.5511xx.com/article/dghhpdd.html