hibernate环境搭建与例子

环境搭建

自己百度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("-------");
	}
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值