本人初学ssh,现在尝试使用eclipse写一个基于ssh的工程,就想实现简单的增删改查功能。但是访问的时候错误,请大神帮忙分析一下。
一、 准备工作
导包(此处省略)
二、建立数据库 (一张用户表)
CREATE TABLE `user` (
`userId` int(20) NOT NULL AUTO_INCREMENT,
`userName` varchar(255) DEFAULT NULL,
`age` mediumint(20) DEFAULT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', '张三', '20');
INSERT INTO `user` VALUES ('2', '李四', '21');
INSERT INTO `user` VALUES ('3', '王五', '22');
INSERT INTO `user` VALUES ('4', '刘六', '23');
三、建立数据化持久层
1、建立实体类
package com.niit.app.entity;
public class User {
private Integer userId;
private String userName;
private Integer age;
public User() {
}
public User(Integer userId, String userName, Integer age) {
this.userId = userId;
this.userName = userName;
this.age = age;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
2、把实体类User的属性映射到User表,生成下面的User.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 2014-9-3 21:30:52 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.niit.app.entity.User" table="USER">
<id name="userId" type="java.lang.Integer">
<column name="USERID" />
<generator class="identity" />
</id>
<property name="userName" type="java.lang.String">
<column name="USERNAME" />
</property>
<property name="age" type="java.lang.Integer">
<column name="AGE" />
</property>
</class>
</hibernate-mapping>
四、建立DAO层
1、建立DAO的接口类:UserDAO
package com.niit.app.dao;
import java.util.List;
import com.niit.app.entity.User;
public interface UserDAO {
List<User> findAllUsers();
}
2、实现此接口的类文件,UserDAOImpl
package com.niit.app.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.niit.app.dao.UserDAO;
import com.niit.app.entity.User;
public class UserDAOImpl implements UserDAO{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate()
{
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate)
{
this.hibernateTemplate = hibernateTemplate;
}
@Override
public List<User> findAllUsers() {
System.out.println("dao");
String hql = "select * from user";
@SuppressWarnings("unchecked")
List<User> uList = (List<User>) hibernateTemplate.find(hql);
return uList;
}
}
五、 建立业务逻辑层
1、创建服务接口类UserService
package com.niit.app.service;
public interface UserService {
boolean findAllUsers();
}
2、实现该接口的类UserServiceImpl
package com.niit.app.service.impl;
import java.util.List;
import com.niit.app.dao.UserDAO;
import com.niit.app.entity.User;
import com.niit.app.service.UserService;
import com.opensymphony.xwork2.ActionContext;
public class UserServiceImpl implements UserService{
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
@Override
public boolean findAllUsers() {