您的位置:首页 > 数据库

Hibernate的数据库操作

2016-05-03 09:19 417 查看
1、编写数据库表users对应的实体类Users.javapackage com.hibtest1.entity;import java.io.Serializable;public class Users implements Serializable {private Integer id;private String loginName;private String loginPwd;public Users() {}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName = loginName;}public String getLoginPwd() {return loginPwd;}public void setLoginPwd(String loginPwd) {this.loginPwd = loginPwd;}}2、编写映射文件Users.hbm.xml,告知hibernate框架实体类Users映射到数据库中的哪个表,以及哪个属性对应的哪个字段<?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="com.hibtest1.entity.Users" table="users" catalog="bookshop"><!-- 配置一个实体类的映射信息,name=实体类的名字,table=数据库表的名字 --><id name="id" type="java.lang.Integer"> <!-- <id></id>=对应数据库的主键 name=对应实体类(users.java)的属性 type=该属性的Java类(users.java)型--><column name="Id" /><!-- 指定对应数据库表的主键 --><generator class="native"></generator><!-- 指定数据库主键的生成策略 自增字段(native) --></id><property name="loginName" type="java.lang.String"><!-- 指定一对属性和字段的对应关系 --><column name="LoginName" length="50" /><!-- 相应的数据库字段名 --></property><property name="loginPwd" type="java.lang.String"><column name="LoginPwd" length="16" /></property></class></hibernate-mapping>
3、在项目的src目录下添加hibernate配置文件,默认文件名为hibernate.cfg.xml
<pre name="code" class="html"><?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><!-- 该配置文件中需要配置数据库的连接信息和hibernate的参数 --><session-factory><property name="show_sql">true</property><!-- 程序运行时在控制台输出(true)执行的sql语句 --><property name="myeclipse.connection.profile">bookshop</property><!-- 连接的数据库名 --><property name="connection.url"><!-- 定义数据库连接URL -->jdbc:mysql://localhost:3306/bookshop</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="dialect"><!-- 用于配置hibernate使用的不同数据库类型 -->org.hibernate.dialect.MySQLDialect</property><mapping resource="com/hibtest1/entity/Users.hbm.xml" /><!-- 配置实体类和数据表的映射信息的映射文件需要在此声明 --></session-factory></hibernate-configuration>
4、新建TestAdd.java 测试添加数据package com.hibtest1;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import com.hibtest1.entity.Users;public class TestAdd {/*** @param args*/public static void main(String[] args) {new TestAdd().addUser();}private void addUser(){//建立持久化对象Users user=new Users();//可从前台获取值后 在执行set方法user.setLoginName("zhangsan");user.setLoginPwd("123456");//1.初始化,读取配置文件 hibernate.cfg.xmlConfiguration config=new Configuration().configure();//2.读取创建 sessionFactorySessionFactory sessionFactory=config.buildSessionFactory();//3.打开 sessionSession session=sessionFactory.openSession();Transaction tx=null;try {tx=session.beginTransaction();    //4.开始一个事务session.save(user);		 //5.持久化操作tx.commit();    //6.提交事务} catch (Exception e) {if(tx!=null){tx.rollback();  //事务回滚}e.printStackTrace();}finally{session.close();   //7.关闭 session}}}5、测试加载数据,新建TestLoad.javapackage com.hibtest1;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import com.hibtest1.entity.Users;public class TestLoad {/*** @param args*/public static void main(String[] args) {new TestLoad().testLoad();}private void testLoad() {// 1.初始化,读取配置文件 hibernate.cfg.xmlConfiguration config = new Configuration().configure();// 2.读取创建 sessionFactorySessionFactory sessionFactory = config.buildSessionFactory();// 3.打开 sessionSession session = sessionFactory.openSession();// 4.加载数据Users user = (Users) session.get(Users.class, new Integer(1));// 控制台输出用户名密码System.out.println(user.getLoginName() + " " + user.getLoginPwd());}}5、测试删除数据,新建TestDelete.javapackage com.hibtest1;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import com.hibtest1.entity.Users;public class TestDelete {/*** @param args*/public static void main(String[] args) {new TestDelete().testDelete();}private void testDelete(){Configuration config=new Configuration().configure();SessionFactory sessionFactory=config.buildSessionFactory();Session session=sessionFactory.openSession();Transaction tx=null;Users user=(Users)session.get(Users.class, new Integer(1));try {tx=session.beginTransaction();session.delete(user);tx.commit();} catch (Exception e) {if(tx!=null){tx.rollback();}e.printStackTrace();}finally{session.close();}}}6、测试修改数据package com.hibtest1;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import com.hibtest1.entity.Users;public class TestUpdate {/*** @param args*/public static void main(String[] args) {new TestUpdate().testUpdate();}private void testUpdate(){Configuration config=new Configuration().configure();SessionFactory sessionFactory=config.buildSessionFactory();Session session=sessionFactory.openSession();Transaction tx=null;Users user=(Users)session.get(Users.class, new Integer(2));user.setLoginName("popopo");try {tx=session.beginTransaction();session.update(user);tx.commit();} catch (Exception e) {if(tx!=null){tx.rollback();}e.printStackTrace();}finally{session.close();}}}
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 hibernate 框架