MyEclipse中Hibernate连接Oracle的配置

    技术2022-05-20  47

    1.Window-Preferences-MyEclipse-Database Explorer-Database Drivers-DB Browser 2.DB Browser窗口中 New... (新建Database Driver)Driver name:oracle9        Connection URL:jdbc:oracle:thin:@localhost:1521:HYGJUser name:scott     Password:tiger      Driver JARs:classes12.jar此时在DB Browser窗口就会出现你刚新建的驱动 oracle93. 新建WEB工程:HibernateDemo4.右键-MyEclipse-Add Hibernate Capabilities...Hibernate 3.1 保持默认就可以--Next--Next--DataSource: Use JDBC DriverDB Driver:会提供可选择使用的驱动,如刚建好的驱动:oracle9以下的信息 你一看会填写o(∩_∩)o...--Next--Create SessionFactory class?不选中--Finish5.hibernate.cfg.xml中的部分代码如下:...<hibernate-configuration>

        <session-factory>        <property name="connection.username">scott</property>        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:HYGJ</property>        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>        <property name="myeclipse.connection.profile">oracle9</property>        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>    <property name="connection.password">tiger</property>    </session-factory>

    </hibernate-configuration>

    在数据库中创建表:create table login(username varchar(50) not null primary key,password varchar(20) not null);与数据库对应的类pojopackage com.hygj.furong.pojo;/*** pojo---Login* @author lotus* @version 1.0* 2008-10-11*/public class Login {private String username;private String password;public String getPassword() {   return password;}public Login() {   super();}public Login(String username, String password) {   super();   this.username = username;   this.password = password;}public void setPassword(String password) {   this.password = password;}public String getUsername() {   return username;}public void setUsername(String username) {   this.username = username;}}POJO类的名称最好与表名称一致表:login POJO类名称:Login建立映射文件:DB Brower窗口,先打开连接:open connection选择您所使用的用户,如:scott选择表:TABLE选中刚建立的表Login右键:选择Hibernate Reverse Engineering...Java src folder:com.hygj.furong.pojo--Finish此时在com.hygj.furong.pojo中就自动创建好了映射文件:Login.hbm.xml部分代码如下:...<hibernate-mapping>//指定Login类与login表的映射    <class name="com.hygj.furong.pojo.Login" table="LOGIN" schema="LOTUS">//name表示Login类中的属性名字//column表示表中字段的名字//type类型        <id name="username" type="java.lang.String">            <column name="USERNAME" length="50" />//主键的生成方式:此处是:指派,表示由用户自行管理            <generator class="assigned" />        </id>//表示Login类中与表中其他字段的映射//nameLogin类中的属性名称//column:表中的字段名称//type:类型//not-null:不允许为空        <property name="password" type="java.lang.String">            <column name="PASSWORD" length="20" not-null="true" />        </property>    </class></hibernate-mapping>此时在hibernate.cfg.xml中添加了代码:<mapping resource="com/hygj/furong/pojo/Login.hbm.xml" />然后写操作Login类的类package com.hygj.furong.logic;

    import java.util.Iterator;

    import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import java.util.List;

    import com.hygj.furong.pojo.Login;

    /*** 具体操作Hibernate的类 实现 增删改查 基本业务逻辑* * @author lotus* @version 1.0 2008-10-10* */public class LoginLogic {/** Hibernate中,所有操作都是通过Session完成 Session不同于JSP中的Session*/private Session session = null;

    private Transaction tran = null;

    private Login login = null;

    /** 实例化Session对象*/public LoginLogic() {   /**   * 1.找到Hibernate配置 2.从配置中取出SessionFactory 3.SessionFactory中取出Session   */   Configuration config = new Configuration().configure();   SessionFactory factory = config.buildSessionFactory();   this.session = factory.openSession();}

    /*** 所有得操作 都是通过Session进行的 涉及到事物处理,一定要手动的提交事物*/

    /*** 添加用户* * @param login*            登陆对象*/public void add(Login login) {   // 通过Session获取Transaction对象   tran = this.session.beginTransaction();   this.session.save(login);   // 事物提交   tran.commit();   // 关闭session   this.session.close();}

    /*** 修改用户* * @param login*            登陆对象*/public void update(Login login) {   // 通过Session获取Transaction对象   tran = this.session.beginTransaction();   this.session.update(login);   // 事物提交   tran.commit();   // 关闭session   this.session.close();}

    /*** 删除用户 使用此方法删除数据前,必须先查询到数据对象* * @param login*            登陆对象*/public void delete(Login login) {   // 通过Session获取Transaction对象   tran = this.session.beginTransaction();   this.session.delete(login);   // 事物提交   tran.commit();   // 关闭session   this.session.close();}

    /*** Hibernate3之中根据HQL中的语句进行了修改,增加了删除指令* * @param name*            主鍵*/public void delete(String name) {   String hql = "DELETE Login WHERE username=?";   Query query = this.session.createQuery(hql);   // 设置参数   query.setString(0, "lotus");   // 执行更新语句   query.executeUpdate();   // 进行事物处理   tran = this.session.beginTransaction();//   事物提交   tran.commit();   // 关闭session   this.session.close();}

    /*** ID查询:推荐使用HQL*/public Login queryById(String name) {   // 使用Hibernate查询语言   String hql = "FROM Login AS l WHERE l.username=?";   // 通过Query接口查询   Query query = this.session.createQuery(hql);   query.setString(0, name);   Iterator iter = query.list().iterator();   if (iter.hasNext()) {    login = (Login) iter.next();   }//   关闭session   this.session.close();   return login;}

    /*** 查询所有记录*/public List queryAll() {   List list = null;   String hql = "FROM Login as l";   Query query = this.session.createQuery(hql);   list = query.list();//   关闭session   this.session.close();   return list;}

    public List queryLike(String name) {   List list = null;   String hql = "FROM Login as l WHERE l.username like ?";   Query query = this.session.createQuery(hql);   query.setString(0, "%" + name + "%");   list = query.list();//   关闭session   this.session.close();   return list;}}测试所写的LoginLogci类中的方法:package com.hygj.furong.test;

    import java.util.Iterator;import java.util.List;

    import com.hygj.furong.logic.LoginLogic;import com.hygj.furong.pojo.Login;

    /*** PO类测试类* * @author lotus* */public class TestPO {/*** 生成POJO类实例化对象* */public static void testLogic() {   /**   * 测试 添加方法   */   /*    Login login = new Login("furong","furong");     new LoginLogic().add(login);   */

       /**   * 测试 id查询方法   */   /*    Login login1 = new LoginLogic().queryById("lotus");    System.out.println(login1.getUsername());   */   /**   * 测试 查询所有方法   */   /*    List list = new LoginLogic().queryAll(); Iterator iter =    list.iterator(); while (iter.hasNext()) { Login login = (Login)    iter.next(); System.out.println("username:" + login.getUsername()); }   */   /**   * 测试 模糊查询   */   /*    List list = new LoginLogic().queryLike("a"); Iterator iter =    list.iterator(); while (iter.hasNext()) { Login login =    (Login)iter.next(); System.out.println("username:" +    login.getUsername()); }   */}

    public static void main(String[] args) {   TestPO.testLogic();}

    }如果要查看执行的sql语句,在hibernate.cfg.xml中添加如下代码:<property name="show_sql">true</property>

     


    最新回复(0)