测试Hibernate+Mysql简单的数据存储

想使用Hibernate框架,在网上看了一个Hibernate学习视频,试着做了一个小小的Java连接数据库的操作,Java初学者一个,大家多多包涵

开发环境:

  1.安装MySql,

  2.安装了Eclipse+插件hibernatetools-Update-4.1.2插件

  3.java包导入1.hibernate-core  2.Junit4.0  3.mysql

思路:

  1.配置Hibernate配置文件

  

<?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="connection.username">root</property> <!-- 数据库用户名 -->
    <property name="connection.password"></property>     <!-- 数据库密码 -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&amp;charactertEncoding=UTF-8</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    <property name="show_sql">true</property> <!-- SQL输出到控制台 -->
    <property name="format_sql" >true</property> <!-- 格式化SQL -->
    <property name="hbm2ddl.auto">update</property>    <!-- create|update|create-drop|validate:检查数据表结构是否相同 -->

    <mapping resource="Students.hbm.xml" />    <!-- 学生配置文件 -->
    </session-factory>
</hibernate-configuration>

  2.定义持久话学生类

//学生类
public class Students {
    // 1.公有的类
    // 2.提供公有的不带参数的默认的构造方法
    // 3.属性私有
    // 4.属性setter/getter封装

    private int sid;

    private String sname;

    private String gender;

    private String address;

    public Students() {

    }

    public Students(int sid, String sname, String gender, String address) {
        // super();
        this.sid = sid;
        this.sname = sname;
        this.gender = gender;
        this.address = address;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Students [sid=" + sid + ", sname=" + sname + ", gender="
                + gender + ", address=" + address + "]";
    }

}

3.配置Students.hbm.xml文件,这个是由Hibernate插件工具自动完成的,Src右键-Other-Hibernate-hbm.xml配置文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2015-6-25 19:45:24 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="Students" table="STUDENTS">
        <id name="sid" type="int">
            <column name="SID" />
            <generator class="assigned" />
        </id>
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <property name="gender" type="java.lang.String">
            <column name="GENDER" />
        </property>
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" />
        </property>
    </class>
</hibernate-mapping>

4.定义一个StudentsTest测试类

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

//测试类
//@SuppressWarnings("deprecation")
public class StudentsTest {

    private SessionFactory sessionFactory; //会话工厂
    private Session session;               //会话
    private Transaction transaction;       

    @Before        //之前
    public void init()  //初始化
    {
        //创建配置对象
        Configuration config=new Configuration().configure();
        //创建服务注册对象
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
        //创建会话工厂对象
        sessionFactory=config.buildSessionFactory(serviceRegistry);
        //会话对象
        session=sessionFactory.openSession();
        //开启事务
        transaction=session.beginTransaction();
    }

    @After    //之后
    public void destory()
    {
        transaction.commit();    //提交事务
        session.close();        //关闭会话
        sessionFactory.close(); //关闭会话工厂
    }

    @Test    //测试
    public void testSaveStudents()
    {
        Students s=new Students(3,"张三丰","男","武当山");
        session.save(s);
        Students s1=new Students(4,"shexunyu","男","咸宁");
        session.save(s1);    //保存对象进入数据库
    }

}

5.到这就算完成了,在把工程的目录结构截图给大家

6.大家可以右键StudentsTest右键Runas-JUnit Test进行测试吧,好啦,代码我上传了,点这里下载

http://files.cnblogs.com/files/shexunyu/Java-Hibernate_002.zip

User:shexunyu Date:2015-06-26  Contact:

时间: 2024-12-26 07:35:04

测试Hibernate+Mysql简单的数据存储的相关文章

MySQL更改数据库数据存储目录

MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录.下文总结整理了实践过程的操作步骤. 1:确认MySQL数据库存储目录 [[email protected] tmp]# mysqladmin -u root -p variables | grep datadir   Enter password:   | datadir | /var/lib/mysql/   2:关闭MySQL服务 在更改MySQL的数据目录前

Android学习之简单的数据存储

在Android中,数据存储是开发人员不可以避免的.Android为开发者提供了很多的存储方法,在前面的博客中,已经讲述了sqlite存储数据.今天将介绍用SharedPreferences来存储数据,它可以将数据保存在应用软件的私有存储区,存储区的数据只能被写入这些数据的软件读取.SharedPreference通过键值对的方法存储数据. 1.SharedPreference存储简单数据 SharedPreference可以存放简单的String.Boolean.Int等对象. 1 <Rela

cocos2d-x中的简单的数据存储

Cocos2d-x中的数据存储方式很多,下面我来简单的介绍几种,有说的不准确的地方,大家指出来吧,共同学习进步.谢谢! 首先介绍的是  UserDefault 这个类: //用userdefault进行数据存储 UserDefault::getInstance()->setStringForKey("testKey","testValue");//将String类型的数据存储起来 //读取上面写入的数据 std::string val = UserDefaul

android SharedPreferences 简单的数据存储

SharedPreferences 简单数据存储,我的理解是类似于windows的ini文件 可以存储很多种类型,写了个小例子 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLa

简单的数据存储——plist、NSKeyedArchiver归档、NSUserDefaults(偏好设置)、SQLite(嵌入式数据库)

数据存储的五种方法: 1.xml属性列表(plist归档) 2.NSKeyedArchiver归档(加密形式) 3.NSUserDefaults(偏好设置) 4.SQLite(嵌入式数据库) 5.Core Date(面向对象方式的嵌入式数据库) 一.plist的读写 缺点: 1.明文保存 2.操作对象有限只有NSArray.NSMutableArray.NSDictionary.NSMutableDictionary支持 (归档时只要调用对应的writeToFile方法即可,解档调用arrayW

mysql修改默认数据存储目录

今天在linux安装了mysql,是用的是centos系统,我用的是yum安装的. yum install mysql-server mysql-devel mysql 修改数据的存储目录的时候遇到了些问题,记录一下步奏. 默认的数据存储目录:/var/lib/mysql 我修改后的存储目录:/data/mysqldata/mysql mysql 修改数据目录: 1.停止mysql服务 service mysqld stop 2.复制原来的数据到新目录,新目录不存在请创建 mkdir -p /d

Android开发7:简单的数据存储(使?SharedPreferences)和文件操作

前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 Android 界面编程. 直接进入正题~ 基础知识 1.SharedPreferences 的使用 使用SharedPreferences储存用户名和密码,SharedPreferences是直接处理xml文件,不需要做字符串分割,存储效率会比使用内部存储,和外部存储存储用户名和密码高. (1) Sh

2016.3.25(mySQL简单的数据查询)

要从数据库中查询,要使用SQL的select语句,标准select查询有select子句,where子句,order by子句组成. 查询数据的标准结构为:select 列名 from 表名 where 条件 order by 列名 asc(升序)/desc(降序) 查询操作的分类:1.投影操作,指定查询结果中能显示哪些列 2.选择操作,指定哪行出现在结果中 3.排序操作,指定查询的结果以什么样的顺序显示 投影操作:select 列1,列2 from 表名 表前缀:select 表名.列名 fr

简单的数据存储

bool WelcomeLayer::isHaveSaveFile()//判断存档是否存在 { if(!CCUserDefault::sharedUserDefault()->getBoolForKey("isHaveSaveFileXml"))//通过设置的bool型标志位判断,如果不存在 { CCUserDefault::sharedUserDefault()->setBoolForKey("isHaveSaveFileXml", true);//写