当前位置:编程学习 > JS >>

一道Struts面试题

 
题目是这样的
有两张表 
一张为新闻类别表 
有2个字段: 
 
nid(pk)         sort 
 
 
有一张新闻内容表 
 
有三个字段 
 
cid(pk)       nid(fk)     title     content 
 
要求通过下拉列表框的方法选择新闻类别然后显示该类别的新闻标题(在当前页中显示)
 我是用Struts2+Hibernate3.2+JPA实现的.
数据库脚本:
 create database if not exists news;
drop table if exists newssort;
create table newssort 
(
  nid int primary key AUTO_INCREMENT,
  sort varchar(50)
);
 
drop table if exists news;
create table news
(
  cid int primary key AUTO_INCREMENT,
  title varchar(50) not null,
  content varchar(500) not null,
  nid  int null
);
 
insert into newssort values(null,'娱乐');
insert into newssort values(null,'时事');
 
insert into news values(null,'好事','好事连连哈哈',1);
insert into news values(null,'坏事','坏事不断',1);
insert into news values(null,'爱情是什么','爱情是什么啊,还没知道呢',2);
insert into  news values(null,'什么啊','测试内容',2);
 
select * from news;
select * from newssort;
 
两个VO类:
News.java:
package com.vo;
 
import java.io.Serializable;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
@SuppressWarnings("serial")
@Entity
@Table(name="news")
public class News implements Serializable
{
    private Integer cid;
    private String title;
    private String content;
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    public Integer getCid()
    {
        return cid;
    }
 
    public void setCid(Integer cid)
    {
        this.cid = cid;
    }
 
    public String getTitle()
    {
        return title;
    }
 
    public void setTitle(String title)
    {
        this.title = title;
    }
 
    public String getContent()
    {
        return content;
    }
 
    public void setContent(String content)
    {
        this.content = content;
    }
}
 
Newssort.java:
package com.vo;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
 
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
 
@SuppressWarnings("serial")
@Entity
@Table(name = "newssort")
public class Newssort implements Serializable
{
    private Integer nid;
    private String sort;
    private List<News> news = new ArrayList<News>();
    @OneToMany
    @JoinColumn(name="nid")
    @LazyCollection(LazyCollectionOption.FALSE)
    public List<News> getNews()
    {
        return news;
    }
 
    public void setNews(List<News> news)
    {
        this.news = news;
    }
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Integer getNid()
    {
        return nid;
    }
 
    public void setNid(Integer nid)
    {
        this.nid = nid;
    }
    
    public String getSort()
    {
        return sort;
    }
 
    public void setSort(String sort)
    {
        this.sort = sort;
    }
}
 
 
写个测试类先测试一个持久层操作:
package com.test;
 
import java.util.Iterator;
import org.hibernate.Session;
import org.hibernate.cfg.AnnotationConfiguration;
import org.junit.After;
import org.junit.Before;
 
import com.vo.News;
import com.vo.Newssort;
public class Test
{
    private Session session ;
    @Before
    public void setUp()
    {
        session = new AnnotationConfiguration().configure().buildSessionFactory().openSession();
    }
    @After
    public void tearDown()
    {
        session.close();
    }
    
    @SuppressWarnings("unchecked")
    @org.junit.Test
    public void testFind()
    {
        @SuppressWarnings("unused")
        //List<Newssort> newssort = session.createCriteria(Newssort.class).list();
        Newssort newssort = (Newssort) session.load(Newssort.class, 2);
        for(Iterator<News> i = newssort.getNews().iterator();i .hasNext();)
        {
            String title = i.next().getTitle();
            System.out.println(title);
        }
    }
补充:Web开发 , Jsp ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,