首页 > 代码库 > Hibernate入门

Hibernate入门

Hibernate入门:执行增,删,改,查操作

1.我们在新建项目之后需要导入相应的jar包

技术分享

2.我们需要在src目录下新建一个xml文件,名为hibernate.cfg.xml(大配置文件)

 

<?xml version=‘1.0‘ encoding=‘utf-8‘?><!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>        <!-- Database connection settings 数据库连接设置-->        <!-- 驱动类 -->        <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>        <!-- url地址 -->        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>        <property name="connection.username">Hibernate</property>        <property name="connection.password">orcl</property>        <!-- SQL dialect  (SQL 方言) -->        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>        <!--在控制台打印后台的SQL语句 -->        <property name="show_sql">true</property>                        <!-- 格式化显示SQL -->        <!-- <property name="format_sql">true</property> -->                        <!-- 自动生成student表 -->         <property name="hbm2ddl.auto">update</property>          <!-- 关联小配置 -->        <mapping resource="cn/a/happy/Student.hbm.xml" />        <!-- <mapping class="cn.happy.entity.Grade"/> -->            </session-factory>    </hibernate-configuration>

 

其中,driver_class为驱动类,url为Oracle地址,username为用户名称,password为用户密码,dialect为方言(oracle版本),show_sql指得是是否在程序运行时在控制台输出记录,mapping resource指的是需要关联小配置文件

2.1小配置文件(和实体类同名)Student.hbm.xml

<!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">  <hibernate-mapping package="cn.a.happy">     <class name="Student" table="Student">         <id name="sid" type="int" column="SID">         </id>         <property name="sname" type="string" column="SNAME"/>         <property name="sage" type="int" column="SAGE"/>     </class>     </hibernate-mapping>

其中,package指的是小配置文件所在的包,class节点下name指的是实体类名,table指的是数据表名;id指的是数据表中的自增列,id节点下的name指的是实体类的ID,type指的是数据类型column是数据表中对应的列名;property节点下的name指的是实体类中的属性sname,type指的是数据类型,colmun指的是数据表中的列名

3.我们需要新建一个实体类,和小配置文件在同一个包下,实体类中有sid,sname,sage属性,并且有get和set方法和tostring方法

/* * 学生实体类 */public class Student {    //数据类型全部都是引用类型        //学号    private Integer sid;    //姓名    private String sname;    //年龄    private Integer sage;        @Override    public String toString() {        return "Student [sid=" + sid + ", sname=" + sname + ", sage=" + sage                + "]";    }    public Student() {            }    public Integer getSid() {        return sid;    }    public void setSid(Integer sid) {        this.sid = sid;    }    public String getSname() {        return sname;    }    public void setSname(String sname) {        this.sname = sname;    }    public Integer getSage() {        return sage;    }    public void setSage(Integer sage) {        this.sage = sage;    }}

4.这时我们就需要在Test类中进行数据操作了

public class Text {    Session session;    Transaction tx;    public static void main(String[] args) {        Class clazz=Student.class;        System.out.println(clazz);    }    @After    public void AfterTest()    {        tx.commit();        HibernateUtil.CloseSession();    }    @Before    public void BeforeTest()    {        session=HibernateUtil.getSession();        tx=session.beginTransaction();    }    //用get方法查询        @Test        public void getTest()        {             Student stu=(Student)session.get(Student.class, 2);             System.out.println(stu);        }    //修改        @Test        public void Update()        {            Student stu= (Student)session.load(Student.class,2);            stu.setSname("woshigou");            session.update(stu);                        System.out.println("update OK!");        }    //删除的方法    @Test    public void delecttest()    {            Student stu=new Student();        stu.setSid(1);                session.delete(stu);                System.out.println("delect OK!");    }    @Test    //增加的测试    public void addtest()    {        Student stu=new Student();        stu.setSid(2);        stu.setSname("王小三");        stu.setSage(25);        //1.读取大配置文件,获取要连接的数据库信息        Configuration cfg=new Configuration().configure("hibernate.cfg.xml");        //2.创建SessionFactory工厂        SessionFactory factory=cfg.buildSessionFactory();        //3.加工session        Session session=factory.openSession();        Transaction tx = session.beginTransaction();        //4.Hibernate保存        session.save(stu);        tx.commit();        System.out.println("session");    }}

我们把公共的代码统一封装到类中

public class HibernateUtil {        private static Configuration cfg=new Configuration().configure();        private static SessionFactory factory=cfg.buildSessionFactory();        //公用的方法getSession();        public static Session getSession()        {            return factory.openSession();        }        //关闭的方法        public static void CloseSession()        {            getSession().close();        }}

这样我们就可以使用Hibernate框架进行数据测试了!

                                                            2016年8月28日15:22:27

 

Hibernate入门