zoukankan      html  css  js  c++  java
  • 06-编写Hibernate API编写访问数据库的代码,使用Junit进行测试

    用到的注解:

    @Test:测试方法

    @Before:初始化方法。

    @After:是否资源

    先执行Befere,然后执行Test,最后执行After

    第一步:新建一个Junit目录。

    第二步:取名

    该目录下新建一个类:

    代码如下:

    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    //测试类
    public class StudentsTest {
        
        @Before
        public void init()
        {
            
        }
        @After
        public void destory()
        {
            
        }
        
        @Test
        public void testSaveStudents()
        {
            
        }
    
    }

    通过hibernate API编写访问数据库的代码

    Before初始化需要执行以下操作:

    Configuration config=new Configuration().configure();//创建配置对象

    ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().

    applySettions(config.getProperties() ).buildServiceRegistry();//创建服务注册对象。

    sessionFactory=config.buildSessionFactory(serviceRegistry);//创建会话工厂对象。

    session=sessionFactory.openSession();//打开会话

    transaction=session.beginTransaction();//打开事务

    在Test类里面如下写:

    import java.util.Date;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    //测试类
    public class StudentsTest {
        
        private SessionFactory sessionFactory;
        private Session session;
        private Transaction transaction;
        @Before
        public void init()
        {
            //创建配置对象
            Configuration config=new Configuration().configure();
            config.addClass(Students.class);//这个需要加上(视频里面没有)
            //创建服务注册对象。
            ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder()
                    .applySettings(config.getProperties()).build(); //通过config.getProperties()读取配置文档。
            //创建会话工厂对象
            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(1,"张三丰","男",new Date(),"武当山");
            session.save(s);//保存对象进入数据库
        }
    
    }

    在里面,通过session对象自带的save执行保存方法。

     之前调试的时候一堆错误,最后发现主要是以下问题:

    1,缺少这句话,后期加上了:config.addClass(Students.class);/

    2,hbm.xml文件默认不在src下,手动加到下面,与cfg.xml一个目录,否则: <mapping resource="Students.hbm.xml"/>就需要加入包名。

    3,数据库配置重新弄了一下:

    <property name="connection.url">jdbc:mysql://localhost:3306/sys</property>

  • 相关阅读:
    Android开发 使用 adb logcat 显示 Android 日志
    【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
    C语言 结构体相关 函数 指针 数组
    C语言 命令行参数 函数指针 gdb调试
    C语言 指针数组 多维数组
    Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
    C语言 内存分配 地址 指针 数组 参数 实例解析
    CRT 环境变量注意事项
    hadoop 输出文件 key val 分隔符
    com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections
  • 原文地址:https://www.cnblogs.com/alsf/p/7819864.html
Copyright © 2011-2022 走看看