首先要学会如何使用Eclipse然后要下载Hibernate需要所有JAR文件最后安装好MYSQL
准备开始!
第步我们要创建个表 结构如下
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id| (11) | NO| MUL | NULL| auto_increment |
| title| varchar(400) | YES | | NULL||
| content | text | YES | | NULL||
| time | datetime | YES | | NULL||
+-----------+--------------+------+-----+---------+----------------+
第 2步在Eclipse中创建个JAVA项目(我在项目中用到包名是cn.com.nick.hbm)编写News.java类这个类对应了数据库中表
package cn.com.nick.hbm;
import java.util.Date;
public News
{
private id;
private String title;
private String content;
private Date date;
public getId
{
id;
}
public void Id( id)
{
this.id = id;
}
public String getTitle
{
title;
}
public void Title(String title)
{
this.title = title;
}
public String getContent
{
content;
}
public void Content(String content)
{
this.content = content;
}
public Date getDate
{
date;
}
public void Date(Date date)
{
this.date = date;
}
}
第 3步配置对应关系 保存为News.hbm.xml文件 和News类在同目录下(并不是定要在同目录下为了方便暂时先放在这里) "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
第 4步配置hibernate.cfg.xml 注意这个名字不能改并且要放到SRC跟路径下(这里要注意如果放错地方举例中思路方法是找不到这个文件) 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
最后创建个测试类 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.ic.Session;
public Test
{
private final SessionFactory sessionFactory;
{
try
{
// 这里创建了SessionFactory 将hibernate.cfg.xml文件放到SRC跟路径下
// Hibernate会自己找到
sessionFactory = Configuration.configure
.buildSessionFactory;
} catch (Throwable ex)
{
// Make sure you log the exception, as it might be swallowed
.err.prln("Initial SessionFactory creation failed." + ex);
throw ExceptionInInitializerError(ex);
}
}
public SessionFactory getSessionFactory
{
sessionFactory;
}
public void (String args)
{
// 例子化个新News对象并填充内容
News s = News;
s.Title("测试标题");
s.Content("添加测试内容");
s.Date( Date);
Test t = Test;
// Test类下存储思路方法,相当于执行INSERT语句
// t.Save(s);
// 查询思路方法,显示数据库内容
t.select;
// 更新思路方法
// t.update;
// 删除
// t.delete;
}
/**
* 个简单添加数据思路方法
* @param s s对象这个对象将被添加到库中
*/
public void Save(News s)
{
try
{
//获取hibernatesession
Session session = Test.getSessionFactory.getCurrentSession;
session.beginTransaction;
//这里只需要save思路方法把s对象传进去就插入成功了!
session.save(s);
session.getTransaction.commit;
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.prStackTrace;
}
}
/**
* 查询思路方法
*/
public void select
{
try
{
Session session = Test.getSessionFactory.getCurrentSession;
session.beginTransaction;
//注意!!!这里 News 不是表名称! 是对象名所以要注意大小写
String sql=" from News";
//带条件查询
//String sql="from News where id=1";
//用session.createQuery()执行HQL查询语句
List<s>s> l = session.createQuery(sql).list;
//在控制台循环输出
for (News n : l)
{
.out.prln(n.getId);
.out.prln(n.getTitle);
.out.prln(n.getContent);
.out.prln(n.getDate);
.out.prln("");
}
session.getTransaction.commit;
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.prStackTrace;
}
}
/**
* 更新思路方法
*/
public void update
{
try
{
Session session = Test.getSessionFactory.getCurrentSession;
session.beginTransaction;
//定义了要装载对象ID
Integer id = 1;
//用load思路方法装载个对象进来
News n = (News) session.load(News., Integer(id));
//重新设置这个对象标题
n.Title("更新后标题");
//用update思路方法更新这个对象
session.update(n);
session.getTransaction.commit;
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.prStackTrace;
}
}
public void delete
{
try
{
Session session = Test.getSessionFactory.getCurrentSession;
session.beginTransaction;
//定义了要装载对象ID
Integer id = 6;
//用load思路方法装载个对象进来
News n = (News) session.load(News., Integer(id));
//用delete思路方法删除这个对象
session.delete(n);
session.getTransaction.commit;
} catch (HibernateException e)
{
// TODO Auto-generated catch block
e.prStackTrace;
}
}
}
好啦,直接运行Test类看下效果吧!
最新评论