新手学习hibernate的入门参考

分三部分内容,配置文件,测试类、bean

JAVA测试类部分(包含增加、删除、修改、查询方法)

/**
 *
 */
package com.my.test;

import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.my.pojo.User;
/**
 * @author Administrator
 *
 */
public class Test {

 public static void main(String[] args) {
  //数据增加
//  Transaction tran=null;
//  Session session=null;
//     try {
      Thread t=Thread.currentThread();
      t.stop();
//      System.out.println("hello");
//   // 获取配置信息
//   Configuration config=new Configuration().configure();
//   //生成SessionFactory对象
//   SessionFactory facotry=config.buildSessionFactory();
//   //由Session工厂生成session对象
//   session=facotry.openSession();
//   //开启事务
//      tran= session.beginTransaction();
//   User user=new User();
//   user.setName("yxx3");
//   user.setSex("boy");
//   user.setSkil("soft developer");
//   //保存
//   session.save(user);
//   //提交
//   tran.commit();
//  } catch (Exception e) {
//   e.printStackTrace();
//   // TODO: handle exception
//   //遇到异常信息 就回回滚
//   if(tran!=null){
//    tran.rollback();
//   }
//  }finally{
//   //关闭session 释放资源
//   session.close();
//  }
  
  //按照id去做数据查询
//  try {
//   Configuration confi=new Configuration().configure();
//   //System.out.println(confi.getProperty("connection.username"));
//   SessionFactory factory= confi.buildSessionFactory();
//   Session session=factory.openSession();
//   //通过load的方式加载数据 通过load方法查询数据的时候,假如数据不存在,则会抛
//   //出ObjectNotFoundException
//   //User user=(User)session.load(User.class, 100);
//   //使用中,如果对象没有,则报NullPointerException
//   User user=(User)session.get(User.class, 100);
//   System.out.println("姓名:"+user.getName()+"性别:"
//     +user.getSex()+"技能:"+user.getSkil());
//   session.close();
//  } catch (Exception e) {
//   // TODO: handle exception
//   e.printStackTrace();
//  }
  
  /*数据修改*/
//  Session session=null;
//  Transaction tran=null;
//  try {
//   Configuration config=new Configuration().configure();
//   SessionFactory factory=config.buildSessionFactory();
//   session=factory.openSession();
   Connection con=session.connection();
   con.createStatement();
//   tran= session.beginTransaction();
//   //进行数据修改的时候,需要先加载待修改的数据对象,然后再进行赋值动作
//   User user=(User)session.load(User.class, 1);
//   //对对象的某一个属性进行赋值动作
//   user.setName("JAVA Yang");
//   //修改的方法是sava
//   session.update(user);
//   //事务提交,数据保存成功
//   tran.commit();
//   
//  } catch (Exception e) {
//   // TODO: handle exception
//   e.printStackTrace();
//   //如果有异常,则事务回滚(还原)
//   if(tran!=null){
//    tran.rollback();
//   }
//  }finally{
//   //关闭session 释放连接
//   session.close();
//  }
  
  /*数据删除*/
  /*删除步骤,先加载对象,再进行数据删除*/
//  Session session=null;
//  Transaction tran=null;
//  try {
//   Configuration confi=new Configuration().configure();
//   SessionFactory factory= confi.buildSessionFactory();
//   session=factory.openSession();
//   tran= session.beginTransaction();
//   User user=(User)session.get(User.class, 1);
//   if(user!=null){
//    session.delete(user);
//    tran.commit();
//   }
//  } catch (Exception e) {
//   // TODO: handle exception
//   if(tran!=null){
//    tran.rollback();
//   }
//  }finally{
//   session.close();
//  }
  
  Session session=null;
  try {
   //Configuration config2=new Configuration();
   //config2.setProperty(propertyName, value)
   
   Configuration config=new Configuration().configure();
   //config.setProperty("connection.username", "sa");
      SessionFactory factory=config.buildSessionFactory();
      session=factory.openSession();
      //创建查询对象Query
      Query query=session.createQuery("from User");
      //通过query的list方法获取结果集对象
      List<User> list=query.list();
      //遍历结果集对象
      for (User user : list) {
    System.out.println("用户名:"+user.getName());
   }
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }finally{
   //关闭session 释放资源
   session.close();
  }
 }
}
 

配置文件 之hibernate 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>
<!--catalog和库名一致-->
<class name="com.my.pojo.User" table="tbl_user" schema="dbo"
catalog="Sales">
<id name="uid" type="java.lang.Integer">
<!-- 指定自增列式表中的uid -->
<column name="uid" />
<!--指定自增方式 hibernate中的native可以自动识别
不同版本的数据库中对自增列的处理
  -->
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
  <column name="user_name" length="50"></column>
</property>

<property name="sex" type="java.lang.String">
  <column name="user_sex" length="10"></column>
</property>

<property name="skil" type="java.lang.String">
  <column name="user_skill" length="50"></column>
</property>
</class>
</hibernate-mapping>

配置文件之 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="connection.username">sa</property>
        <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=Sales</property>
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="myeclipse.connection.profile">Sqlserver2005Driver</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
            <!-- 开启sql语句提示 -->
        <property name="show_sql">true</property>
        <property name="dialect">
              org.hibernate.dialect.SQLServerDialect
        </property>
       
        <!--java对象和数据库中表的映射文件 (可以在此配置多个映射文件)-->
        <mapping resource="com/my/pojo/user.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

java映射类

import java.io.Serializable;

/**
 * @author Administrator
 *
 */
public class User implements Serializable {
 private String name;
 private String sex;
 private String skil;
 private Integer uid;

 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }

 public String getSex() {
  return sex;
 }

 public void setSex(String sex) {
  this.sex = sex;
 }

 public String getSkil() {
  return skil;
 }

 public void setSkil(String skil) {
  this.skil = skil;
 }
 public Integer getUid() {
  return uid;
 }
 public void setUid(Integer uid) {
  this.uid = uid;
 }

}
 

/*建立用户表*/
create table tbl_user(
uid int identity(1,1) primary key,
user_name varchar(50),
user_sex varchar(10),
user_skill  varchar(50)
)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值