hibernate如何使用小demo

来源:互联网 发布:博客绑定域名 编辑:程序博客网 时间:2024/06/07 15:09

hibernate如何使用小demo


a.建立数据库表

drop table if exists admin_info;create table admin_info(   admin_id int primary key auto_increment,   admin_code varchar(30) unique not null,   password varchar(30) not null,   name varchar(30) not null,   telephone varchar(15),   email varchar(50),   enrolldate timestamp default current_timestamp);insert into admin_info (admin_code,password,name,telephone,email,enrolldate) values('admin','test','ADMIN','123456789','admin@tarena.com.cn',null);


b.建立java工程,引入hibernate开发包+数据库驱动包

  

c.添加src/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"><hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="connection.url">jdbc:mysql://localhost:3306/netctoss</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="myeclipse.connection.profile">mysql</property><mapping resource="entity/admin.hbm.xml" /></session-factory></hibernate-configuration>


d.编写Entity实体类

package entity;import java.sql.Timestamp;public class Admin{private int admin_id;  //idprivate String admin_code;  //账号private String password;  //密码private String name;  //真实姓名private String telephone;  //电话private String email;  //邮箱private Timestamp enrolldate;  //创建时间public int getAdmin_id() {return admin_id;}public void setAdmin_id(int adminId) {admin_id = adminId;}public String getAdmin_code() {return admin_code;}public void setAdmin_code(String adminCode) {admin_code = adminCode;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Timestamp getEnrolldate() {return enrolldate;}public void setEnrolldate(Timestamp enrolldate) {this.enrolldate = enrolldate;}public String toString() {return "Admin [admin_id=" + admin_id + ",admin_code=" + admin_code+ ", password=" + password + "]";}}


e.编写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>    <class name="entity.Admin" table="admin_info">        <id name="admin_id" type="java.lang.Integer">            <column name="admin_id" />            <generator class="assigned" />        </id>        <property name="admin_code" type="java.lang.String">            <column name="admin_code" length="20" />        </property>        <property name="password" type="java.lang.String">            <column name="password" length="20" />        </property>        <property name="name" type="java.lang.String">            <column name="name" length="20" />        </property>        <property name="telephone" type="java.lang.String">            <column name="telephone" length="20" />        </property>        <property name="email" type="java.lang.String">            <column name="email" length="50" />        </property>        <property name="enrolldate" type="java.sql.Timestamp">            <column name="enrolldate" />        </property>    </class></hibernate-mapping>


f.利用hibernate API实现DAO

HibernateUtil.java

package util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil {private static SessionFactory sf;static{//加载主配置hibernate.cfg.xmlConfiguration conf = new Configuration();conf.configure("/hibernate.cfg.xml");//获取SessionFactorysf = conf.buildSessionFactory();}public static Session openSession(){//获取SessionSession session = sf.openSession();return session;}}

AdminDAOHibernateImpl.java

package dao.impl;import org.hibernate.Session;import util.HibernateUtil;import dao.AdminDAO;import entity.Admin;public class AdminDAOHibernateImpl implements AdminDAO{@Overridepublic Admin findById(Integer id) throws Exception {//获取SessionSession session = HibernateUtil.openSession();//执行查询Admin admin = (Admin)session.get(Admin.class, id);return admin;}}

TestAdminDAO.java

package test;import org.junit.Test;import util.Factory;import dao.AdminDAO;import entity.Admin;public class TestAdminDAO {private AdminDAO adminDAO = Factory.getAdminDAO();@Testpublic void testFindById() throws Exception{Admin admin = adminDAO.findById(2);System.out.println(admin);}}

注意事项:

1.hibernate.cfg.xml里面不要忘记写

   <mapping resource="entity/admin.hbm.xml" />

2.hbm.xml里面实体类的名称与表中字段要对应好





0 0
原创粉丝点击