环境搭建
自己百度hibernate然后下好相应的包。
实例讲解
先看看我的工程目录
先还是要导入下载的包,这里我导入的是lib\required这个目录下面的包。
然后是src下面的这个文件hibernate.cfg.xml 主要是配置与hibernate数据库有关的东西,我们来看看它里面的东西。
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="show_sql">true</property>
<property name="myeclipse.connection.profile">test</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- show_sql指定是否打印SQL语句 -->
<property name="show_sql">true</property>
<mapping resource="com/hibernate/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
这里主要是配置的驱动还有用户名密码这些,最后一句是配置表信息这些。我们来看看里面有些什么东西。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
数据库表的映射文件
-->
<hibernate-mapping>
<class name="com.hibernate.User" table="user">
<!-- 必须先定义<id>元素,后定义<property>元素 -->
<id name="id" type="java.lang.Integer">
<column name="id"/>
<!-- 主键的生成方式 -->
<generator class="increment"/>
</id>
<!-- name属性,类型为String,对应的数据库中的列为name,长度为20 -->
<property generated="never" lazy="false" name="name" type="java.lang.String">
<column length="20" name="name"/>
</property>
<property generated="never" lazy="false" name="passwd" type="java.lang.String">
<column length="20" name="passwd"/>
</property>
</class>
</hibernate-mapping>
然后是我们的User类
**
* 关系映射表
* @author bobo
*
*/
public class User {
private String name;
private String passwd;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public User(String name, String passwd, int id) {
super();
this.name = name;
this.passwd = passwd;
this.id = id;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
数据库操作的类
/**
* 数据库操作
*
* @author bobo
*
*/
@SuppressWarnings("deprecation")
public class DbOperation {
private static DbOperation operation;
private Configuration configuration;
private SessionFactory sessionFactory;
private DbOperation() {
configuration = new Configuration().configure();
StandardServiceRegistryBuilder standardServiceRegistryBuilder =
new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
StandardServiceRegistry standardServiceRegistry = standardServiceRegistryBuilder.build();
sessionFactory = configuration.buildSessionFactory(standardServiceRegistry);
// ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(
// configuration.getProperties()).build();
// sessionFactory = configuration.buildSessionFactory(sr);
// sessionFactory = configuration.buildSessionFactory(); //过期的方法
}
/**
* 获取事例
*
* @return
*/
public static DbOperation getInstance() {
if (operation == null)
operation = new DbOperation();
return operation;
}
/**
* 创建表
*/
public void createTable() {
SchemaExport export = new SchemaExport(configuration);
export.create(true, true);// 创建表
}
/**
* 添加数据
*/
public void Insert(Object object) {
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction(); // 开启事务
session.save(object);// 保存
transaction.commit();// 提交
session.close();// 关闭session
}
/**
* 更新
*
* @param object
*/
public void Update(Object object) {
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction(); // 开启事务
session.update(object);// 保存
transaction.commit();// 提交
session.close();// 关闭session
}
/**
* 删除
*
* @param object
*/
public void Delete(Object object) {
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction(); // 开启事务
session.delete(object);// 保存
transaction.commit();// 提交
session.close();// 关闭session
}
/**
* 查询
*/
public List<?> qury(String sql) {
Session session = sessionFactory.openSession();
// session.createQuery(sql);//使用的是Hql语言
Query query = session.createQuery("FROM User as u");// 别名
List list = query.list();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
User user = (User) iterator.next();
System.out.println(user.getName() + user.getPasswd());
}
session.close();
// session.createSQLQuery(sql);//使用的是sql语言
return null;
}
}
然后是Main方法来测试的
public class Main {
private static DbOperation dbOperation;
public static void main(String arg[]) {
dbOperation = DbOperation.getInstance();
User user = new User("asdf", "234", 23);
dbOperation.Insert(user);
System.out.println("-------");
}
}