黑马程序员技术交流社区

标题: 在飞自学J2EE之路:2012.9.3 Hibernate的基本流程 [打印本页]

作者: pzfpang449    时间: 2013-1-5 09:18
标题: 在飞自学J2EE之路:2012.9.3 Hibernate的基本流程
本帖最后由 pzfpang449 于 2013-1-5 17:45 编辑

12年9月开始自学j2ee时的一些笔记

刚参加完山东齐鲁软件暑假的大赛,大赛使用servlet+jsp开发的,想学学j2ee,所以自己看了看SSH里的Hibernate。-------2012年的9月3日第一篇、

   要使用hibernate首先要有jar包,将其添加到项目中。

    1,新建一个hibernate.cfg.xml文件,用于映射数据库,将数据库中的信息对象化。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
  <property name="myeclipse.connection.profile">
   JDBC for MySQL
  </property>

连接MYSQL数据库
  <property name="connection.url">
   jdbc:mysql://localhost:3306/demo
  </property>

数据库的用户名和密码
  <property name="connection.username">root</property>
  <property name="connection.password">root</property>
  <property name="connection.driver_class">
   org.gjt.mm.mysql.Driver
  </property>

数据库方言
  <property name="dialect">
   org.hibernate.dialect.MySQLDialect
  </property>

映射XML(User表和User类)

  <mapping resource="com/demo/hibernate/beans/User.hbm.xml" />


</session-factory>

</hibernate-configuration>

2,创建User.hbm.xml文件将数据库对象化(类的属性和数据库表的表,字段对应)

<?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" >
<hibernate-mapping package="com.demo.hibernate.beans">

user表对应User实例
<class name="User" table="user">

主键为id
<id name="id" column="ID" type="integer"></id>

username,password,email字段
<property name="username" column="username" type="string"></property>
<property name="password" column="password" type="string"></property>
<property name="email" column="email" type="string"></property>
</class>

</hibernate-mapping>

3,创建User.java文件(持久化类,实例需要被Hibernate持久化到数据库类中)

private java.lang.Integer id;
public java.lang.Integer getId() {
  return id;
}
public void setId(java.lang.Integer id) {
  this.id = id;
}

。。。。。。。。等等

创建数据库访问HIbernateSessionFactory

cfg.configure(CONFIG_FILE_LOCATION);

sessionFactory=cfg.buildSessionFactory();

session=sessionFactory.openSession();


4,编写数据访问层接口UserDAO,进行数据库操作(要记)

public User getUser(String username) throws HibernateException{

Session session=null;

Transaction tx=null;

User user=null;

try{

//session=HibernateSessionFactory.currentSession()创建session

    session=HibernateSessionFactory.currentSession();

//tx=session.beginTransaction()开始事务

    tx=session.beiginTransaction();

//Query query=session.createQuery(from User where username=?)创建查询语句

    Query query=session.createQuery(from User where username=?);

//query.setString(0,username.trim)给参数赋值

    query.setString(0,username.trim);

//user=(User)query.uniquerResult()返回是实例为null或者一个

     user=(User)query.uinqueResult();

     query=null;

//提交事务

      tx.commit();

5,创建UserService.java

面向用户服务,服务层

UserDAO test=UserDAO();

User user=test.getUser("admin");

if(user.getPassword().equeal(password))

{

return true;

}


}

}



pS:由于用的有道云笔记,直接粘过来的。格式有点问题,见谅

源码地址:http://download.csdn.net/detail/zaifeishandong/4545209(自己看看吧)



作者: Rancho_Gump    时间: 2013-1-5 10:17
请把这类帖子改成已解决,点编辑更改就行了{:soso_e100:}
作者: 曹佳佳    时间: 2013-1-5 10:21
{:soso_e179:}
作者: Rancho_Gump    时间: 2013-1-5 10:39
张向辉 发表于 2013-1-5 10:17
请把这类帖子改成已解决,点编辑更改就行了

镜哥好阔气,赞个    呵呵{:soso_e113:}
作者: pzfpang449    时间: 2013-1-5 14:48
张向辉 发表于 2013-1-5 10:17
请把这类帖子改成已解决,点编辑更改就行了

不好意思,没找到在哪里改。。。。指导指导
作者: Rancho_Gump    时间: 2013-1-5 15:50
pzfpang449 发表于 2013-1-5 14:48
不好意思,没找到在哪里改。。。。指导指导

点击完编辑后,会弹出编辑界面,左上角未解决改成已解决  就好了

QQ截图20130105154910.png (10.56 KB, 下载次数: 38)

QQ截图20130105154910.png

作者: pzfpang449    时间: 2013-1-5 18:04
张向辉 发表于 2013-1-5 15:50
点击完编辑后,会弹出编辑界面,左上角未解决改成已解决  就好了

好的,已改好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2