Hibernate简单实例
来源:互联网 发布:湖北文理学院网络 编辑:程序博客网 时间:2024/06/01 09:49
#数据库为mysql 编译器为idea,操作环境linux mint!
数据库:
create database leehuan;
use leehuan //进入leehuan数据库中
创建表CREATE TABLE USER (USER_ID int(25),NAME varchar(25),PASSWORD varchar(25),TYPE varchar(25),PRIMARY KEY (USER_ID))
创建映射关系bean类
import java.io.Serializable;/** * Created by user on 16-12-19. */public class User implements Serializable { //每创建一个类似Bean的类,我们需要创建一个xml文件,而xml文件及映射设数据库中对应的每一个row private int id; private String name; private String password; private String type; public User() { } public int getId() { return id; } public String getName() { return name; } public String getPassword() { return password; } public String getType() { return type; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setPassword(String password) { this.password = password; } public void setType(String type) { this.type = type; }}
创建映射关系的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> <class name="User" table="USER"> <!--此id用来做标识--> <id name="id" type="java.lang.Integer" column="USER_ID"> <generator class="increment"/> </id> <property name="name" type="java.lang.String" column="NAME" length="25"/> <property name="password" type="java.lang.String" column="PASSWORD" length="25"/> <property name="type" type="java.lang.String" column="TYPE" length="25"/> </class></hibernate-mapping>
创建主类(一般选择idea hibernate会自动创建)
import org.hibernate.HibernateException;import org.hibernate.SessionFactory;import org.hibernate.Session;import org.hibernate.Query;import org.hibernate.cfg.Configuration;import org.hibernate.metadata.ClassMetadata;import java.util.Map;/** * Created by user on 16-12-19. */public class Main { private static final SessionFactory ourSessionFactory; static { try { ourSessionFactory = new Configuration(). configure("hibernate.cfg.xml"). buildSessionFactory(); } catch (Throwable ex) { throw new ExceptionInInitializerError(ex); } } public static Session getSession() throws HibernateException { return ourSessionFactory.openSession(); } public static void main(final String[] args) throws Exception { final Session session = getSession(); try { System.out.println("querying all the managed entities..."); final Map metadataMap = session.getSessionFactory().getAllClassMetadata(); for (Object key : metadataMap.keySet()) { final ClassMetadata classMetadata = (ClassMetadata) metadataMap.get(key); final String entityName = classMetadata.getEntityName(); final Query query = session.createQuery("from " + entityName); System.out.println("executing: " + query.getQueryString()); for (Object o : query.list()) { System.out.println(" " + o); } } } finally { session.close(); } }}
配置hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!--配置数据库JDBS的驱动--> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/leehuan</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">lihuan</property> <property name="connection.pool_size">1</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <mapping resource="User-hbm.xml"></mapping> </session-factory></hibernate-configuration>
创建UserDao以及UserDaoimp
/** * Created by user on 16-12-19. */public interface UserDao { void delete(User user); void update(User user); User findByid(int id); //根据用户标识查找用户 void save(User user); //添加用户}--------------------------------------------------------import org.hibernate.Session;import org.hibernate.Transaction;/** * Created by user on 16-12-20. */public class UserDaoImpl implements UserDao { @Override public void delete(User user) { Session session = Main.getSession(); Transaction transaction = session.beginTransaction(); try { session.delete(user); transaction.commit(); }catch (Exception ex){ ex.printStackTrace(); transaction.rollback(); }finally { HibernateUtil.closeSession(); } } @Override public void update(User user) { Session session = Main.getSession(); Transaction transaction = session.beginTransaction(); try { session.update(user); transaction.commit(); }catch (Exception ex){ ex.printStackTrace(); transaction.rollback(); }finally { HibernateUtil.closeSession(); } } @Override public User findByid(int id) { User user = null; Session session = Main.getSession(); Transaction transaction = session.beginTransaction(); try { user = (User)session.get(User.class,id); transaction.commit(); }catch (Exception ex){ ex.printStackTrace(); transaction.rollback(); }finally { HibernateUtil.closeSession(); } return user; } @Override public void save(User user) { Session session = Main.getSession(); Transaction transaction = session.beginTransaction(); try{ //保存user session.save(user); //提交 transaction.commit(); }catch (Exception ex){ ex.printStackTrace(); transaction.rollback(); }finally { //最后清除close HibernateUtil.closeSession(); } }}
创建获取UserDao获取实例的DaoFactory
/** * Created by user on 16-12-20. */public class DaoFactory { public static UserDao getUserDaoinstan(){ return new UserDaoImpl(); }}
最后进行单元测试:我选择的为Junit4的Testing library测试,需要导入Junit-4.8.2.jar和hamcrest-core-1.3.jar的包
import org.junit.Before;import org.junit.Test;/** * Created by user on 16-12-20. */public class UserDaoImplTest { @Before public void setUp() throws Exception { } @Test public void save(){ UserDao userDao = DaoFactory.getUserDaoinstan(); try { User user = new User(); user.setId(6); user.setName("JACK"); user.setPassword("123"); user.setType(null); userDao.save(user); }catch (Exception e){ e.printStackTrace(); } }}
0 0
- 简单的hibernate实例
- Hibernate简单实例
- hibernate初学简单实例
- hibernate简单实例
- hibernate简单实例
- Hibernate框架,简单实例
- 【Hibernate】简单应用实例
- Hibernate-CRUD简单实例
- Hibernate+MySQL简单实例
- Hibernate简单实例
- Hibernate简单实例
- Hibernate简单实例
- hibernate简单实例
- struts+hibernate+spring简单实例
- 一个简单的Hibernate实例
- Hibernate注解及简单实例
- Hibernate 4.2 简单入门实例
- Hibernate 注解及简单实例
- Python基础
- 第一个web程序总结
- linux:jdk的安装
- 用installAnywhere2009 打包安装java web程序 (详细图表操作)
- Web项目部署到Linux服务器
- Hibernate简单实例
- 使用 Spring Data JPA 简化 JPA 开发
- Android 动画深入分析
- Mysql学习(七)
- iOS block小记
- [Leetcode] Maximum Product Subarray
- chrome使用技巧(看了定不让你失望)
- 你所不知道的伪元素 CSS 中::before 和 ::after 的用法
- android studio 之修改包名导致所有R文件报错的解决办法(简单、暴力)