我用了action->service->dao->javabean来实现一个简单新闻分类,用的是mysql数据库;
类型表是type,有两个属性:id和typeName;
新闻表是news,有id,typeId(对应type表中的id字段),title,content字段;
现在我实现了单独对type和news的增删改查,部分代码如下:javabean层:
public class Type {
private int id;
private String typeName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
}public class News {
private int id;
private int typeId;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getTypeId() {
return typeId;
}
public void setTypeId(int typeId) {
this.typeId = typeId;
}
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;
}
}
DAO层:public class TypeDAOImpl extends HibernateDaoSupport implements TypeDAO{ @SuppressWarnings("unchecked")
@Override
public List<Type> findAllType() {
String hql="from Type type order by type.id desc";
return (List<Type>)this.getHibernateTemplate().find(hql);
} @Override
public Type findTypeById(int id) {
Type type=(Type)this.getHibernateTemplate().get(Type.class, id);
return type;
} @Override
public void removeType(Type type) {
this.getHibernateTemplate().delete(type);
} @Override
public void saveType(Type type) {
this.getHibernateTemplate().save(type);
} @Override
public void updateType(Type type) {
this.getHibernateTemplate().update(type);
}}public class NewsDAOImpl extends HibernateDaoSupport implements NewsDAO{ @SuppressWarnings("unchecked")
@Override
public List<News> findAllNews() {
String hql="from News news order by news.id desc";
return (List<News>)this.getHibernateTemplate().find(hql);
} @Override
public News findNewsById(int id) {
News news=(News)this.getHibernateTemplate().get(News.class, id);
return news;
} @Override
public void removeNews(News news) {
this.getHibernateTemplate().delete(news);
} @Override
public void saveNews(News news) {
this.getHibernateTemplate().save(news);
} @Override
public void updateNews(News news) {
this.getHibernateTemplate().update(news);
}}service层:public class TypeServiceImpl implements TypeService{
private TypeDAO typeDAO;
public TypeDAO getTypeDAO() {
return typeDAO;
} public void setTypeDAO(TypeDAO typeDAO) {
this.typeDAO = typeDAO;
} @Override
public void delete(Type type) {
this.typeDAO.removeType(type);
} @Override
public List<Type> findAll() {
return this.typeDAO.findAllType();
} @Override
public Type findById(int id) {
return this.typeDAO.findTypeById(id);
} @Override
public void save(Type type) {
this.typeDAO.saveType(type);
} @Override
public void update(Type type) {
this.typeDAO.updateType(type);
}}public class NewsServiceImpl implements NewsService{
private NewsDAO newsDAO;
public NewsDAO getNewsDAO() {
return newsDAO;
} public void setNewsDAO(NewsDAO newsDAO) {
this.newsDAO = newsDAO;
} @Override
public void delete(News news) {
this.newsDAO.removeNews(news);
} @Override
public List<News> findAll() {
return this.newsDAO.findAllNews();
} @Override
public News findById(int id) {
return this.newsDAO.findNewsById(id);
} @Override
public void save(News news) {
this.newsDAO.saveNews(news);
} @Override
public void update(News news) {
this.newsDAO.updateNews(news);
}}hbm.xml配置如下:type.hbm.xml:
<?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.test.bean.Type" table="type">
<id name="id" type="int" column="id">
<generator class="increment"></generator>
</id> <property name="typeName" type="string" column="typeName"
length="50">
</property>
</class>
</hibernate-mapping>news.hbm.xml:
<?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.test.bean.News" table="news">
<id name="id" type="int" column="id">
<generator class="increment"></generator>
</id> <property name="typeId" type="int" column="typeId">
</property>
<property name="title" type="string" column="title">
</property>
<property name="content" type="string" column="content">
</property>
</class>
</hibernate-mapping>
我想法是在News javabean类中增加个字段private Type type;这样是不是就能把这两者关联起来了,那配置文件要怎么修改,dao层的类哪里需要改下,请指教个思路
类型表是type,有两个属性:id和typeName;
新闻表是news,有id,typeId(对应type表中的id字段),title,content字段;
现在我实现了单独对type和news的增删改查,部分代码如下:javabean层:
public class Type {
private int id;
private String typeName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
}public class News {
private int id;
private int typeId;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getTypeId() {
return typeId;
}
public void setTypeId(int typeId) {
this.typeId = typeId;
}
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;
}
}
DAO层:public class TypeDAOImpl extends HibernateDaoSupport implements TypeDAO{ @SuppressWarnings("unchecked")
@Override
public List<Type> findAllType() {
String hql="from Type type order by type.id desc";
return (List<Type>)this.getHibernateTemplate().find(hql);
} @Override
public Type findTypeById(int id) {
Type type=(Type)this.getHibernateTemplate().get(Type.class, id);
return type;
} @Override
public void removeType(Type type) {
this.getHibernateTemplate().delete(type);
} @Override
public void saveType(Type type) {
this.getHibernateTemplate().save(type);
} @Override
public void updateType(Type type) {
this.getHibernateTemplate().update(type);
}}public class NewsDAOImpl extends HibernateDaoSupport implements NewsDAO{ @SuppressWarnings("unchecked")
@Override
public List<News> findAllNews() {
String hql="from News news order by news.id desc";
return (List<News>)this.getHibernateTemplate().find(hql);
} @Override
public News findNewsById(int id) {
News news=(News)this.getHibernateTemplate().get(News.class, id);
return news;
} @Override
public void removeNews(News news) {
this.getHibernateTemplate().delete(news);
} @Override
public void saveNews(News news) {
this.getHibernateTemplate().save(news);
} @Override
public void updateNews(News news) {
this.getHibernateTemplate().update(news);
}}service层:public class TypeServiceImpl implements TypeService{
private TypeDAO typeDAO;
public TypeDAO getTypeDAO() {
return typeDAO;
} public void setTypeDAO(TypeDAO typeDAO) {
this.typeDAO = typeDAO;
} @Override
public void delete(Type type) {
this.typeDAO.removeType(type);
} @Override
public List<Type> findAll() {
return this.typeDAO.findAllType();
} @Override
public Type findById(int id) {
return this.typeDAO.findTypeById(id);
} @Override
public void save(Type type) {
this.typeDAO.saveType(type);
} @Override
public void update(Type type) {
this.typeDAO.updateType(type);
}}public class NewsServiceImpl implements NewsService{
private NewsDAO newsDAO;
public NewsDAO getNewsDAO() {
return newsDAO;
} public void setNewsDAO(NewsDAO newsDAO) {
this.newsDAO = newsDAO;
} @Override
public void delete(News news) {
this.newsDAO.removeNews(news);
} @Override
public List<News> findAll() {
return this.newsDAO.findAllNews();
} @Override
public News findById(int id) {
return this.newsDAO.findNewsById(id);
} @Override
public void save(News news) {
this.newsDAO.saveNews(news);
} @Override
public void update(News news) {
this.newsDAO.updateNews(news);
}}hbm.xml配置如下:type.hbm.xml:
<?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.test.bean.Type" table="type">
<id name="id" type="int" column="id">
<generator class="increment"></generator>
</id> <property name="typeName" type="string" column="typeName"
length="50">
</property>
</class>
</hibernate-mapping>news.hbm.xml:
<?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.test.bean.News" table="news">
<id name="id" type="int" column="id">
<generator class="increment"></generator>
</id> <property name="typeId" type="int" column="typeId">
</property>
<property name="title" type="string" column="title">
</property>
<property name="content" type="string" column="content">
</property>
</class>
</hibernate-mapping>
我想法是在News javabean类中增加个字段private Type type;这样是不是就能把这两者关联起来了,那配置文件要怎么修改,dao层的类哪里需要改下,请指教个思路
解决方案 »
- extJs 传到后台的字符串成[object object]
- hibernate 级联删除问题
- filter with jsp?????
- 请问中文名称的图片怎么才能显示呢??
- [300分]为什么spring运行在tomcat中,aop的不能拦截,同样的代码而用junit.framework.TestCase;测试可以拦截呢
- 编写服务器程序的问题
- 请教log4j的用法?
- Mastering EJB II 哪儿有下载的?
- 关于dzhcheng问题的回答
- 关于一个java的项目,关于网络,高手请进指教!!
- 求助:struts2类型转化的问题
- MyEclipse8.5 配置Ext 提示代码详细配置 求解!(不要给我从百度Copy来的解答,谢谢)
我改为了<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Save news</title>
</head>
<body>
<center>
<h1>
<font color="red">增加信息</font>
</h1>
<s:form action="saveNews">
<s:textfield name="news.type" label="类别">
</s:textfield>//我这样写提交时出现了Invalid field value for field "news.type"
错误,请问是什么原因
<s:textfield name="news.title" label="标题"></s:textfield>
<s:textfield name="news.content" label="内容"></s:textfield>
<s:submit></s:submit>
</s:form>
</center>
</body>
</html>