zoukankan      html  css  js  c++  java
  • hibernate基础15:组合主键2

    1、Java实体bean类

    package com.project.pojo;
    
    import java.io.Serializable;
    
    public class ResultPk implements Serializable{
        private int stuid;//学生id
        private int subid;//学科id
        public int getStuid() {
            return stuid;
        }
        public void setStuid(int stuid) {
            this.stuid = stuid;
        }
        public int getSubid() {
            return subid;
        }
        public void setSubid(int subid) {
            this.subid = subid;
        }
        
    }
    package com.project.pojo;
    
    import java.io.Serializable;
    /**
     * 如果组合索引是类的属性时,该类必须实现Serializable
     * @author Administrator
     *
     */
    public class Result implements Serializable{
        private ResultPk id;
        private double score;
        
        public ResultPk getId() {
            return id;
        }
        public void setId(ResultPk id) {
            this.id = id;
        }
        public double getScore() {
            return score;
        }
        public void setScore(double score) {
            this.score = score;
        }
        
    }

    2、配置hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.project.pojo">
        <class name="Result" table="t_result">
            <!-- 组合索引映射 -->
            <composite-id name="id" class="ResultPk">
                <key-property name="stuid"/>
                <key-property name="subid"/>
            </composite-id>
            <property name="score" />
        </class>
    
    </hibernate-mapping>

    3、测试

    package com.project.test;
    
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import com.project.pojo.Result;
    import com.project.pojo.ResultPk;
    import com.project.util.HibernateUtil;
    
    public class HibernateTest {
        Session session = null;
        Transaction ts = null;
        
        @Before
        public void setUp(){
            session = HibernateUtil.getSession();
            ts = session.beginTransaction();
        }
        
        @After
        public void tearDown(){
            HibernateUtil.closeSession();
        }
        
        @Test
        public void testCreateDB(){
            Configuration cfg = new Configuration().configure();
            //使得hibernate映射信息转换为数据库识别的dll语言
            SchemaExport se = new SchemaExport(cfg);
            //第一个参数:是否打印dll语句
            //第二个参数:是否将dll到数据库中执行
            se.create(true, true);
        }
        
        @Test
        public void testInit(){
            try {
                ResultPk pk = new ResultPk();
                pk.setStuid(1);
                pk.setSubid(1);
                Result r = new Result();
                r.setId(pk);
                r.setScore(70.5);
                session.save(r);
                ts.commit();
            } catch (Exception e) {
                if(ts!=null)ts.rollback();
                e.printStackTrace();
            }
        }
        @Test
        public void testSelect(){
             ResultPk pk = new ResultPk();
             pk.setStuid(1);
             pk.setSubid(1);
             Result r = (Result) session.get(Result.class, pk);
            System.out.println(r.getScore());
        }
        
    }
  • 相关阅读:
    javascript的严格模式:use strict
    Ionic在线打包IOS平台应用
    安装nodejs6.9x以后,原来在nodejs4.2.x中运行正常的ionic项目出现问题的解决
    cordova插件分类
    ionic 启用sass
    ngCordova
    为Asp.net WebApi 添加跨域支持
    使用ionic framework创建一个简单的APP
    研究主题
    近两天让我羞愧难当的遭遇
  • 原文地址:https://www.cnblogs.com/chai-blogs/p/12952439.html
Copyright © 2011-2022 走看看