mysql数据库教程:Hibernate结合MYSQL数据库简单教程

  在网上找了很多Hibernate相关教程大多数都是结合WEB服务器自己写个单独举例在Eclipse下直接运行不需要自己写ANT脚本不需要结合web服务器但是需要MYSQL数据库-_-

  首先要学会如何使用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类看下效果吧!



Tags:  hibernatemysql hibernate连数据库 hibernate数据库 mysql数据库教程

延伸阅读

最新评论

发表评论