现在做的一个SSH项目出了一个问题:
保存用户信息,
实体类字段有:姓、名、年龄
数据库user表有:用户id、姓、名、年龄,id是自增长的
struts2、Hibernate3.1、spring2.0整合后运行,控制台有打印出一条插入语句:
Hibernate: insert into mytest.dbo.users (firstname, lastname, age) values (?, ?, ?), 但是我在数据库打开user表,想看看数据有没有插入表,他会出现这样一个提示框:
SQL执行错误。
已执行SQL语句:select id, firstname, lastname, age from users
错误源:.Net SqlClient Data Provider
错误信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应。只要tomcat启动了,打开数据库的表都会弹出提示框,断开tomcat,数据库表就能正常打开。在数据库里写SQL语句是可以插入的
我搞了很久,都不知道是什么问题。请帮忙看看那里出问题了。
现把源代码贴出来,请各位高手帮忙看看。谢谢!users.java类package com.workflow.entity;/**
* Users entity.
*
* @author MyEclipse Persistence Tools
*/public class Users implements java.io.Serializable { // Fields private Integer id;
private String firstname;
private String lastname;
private Integer age; // Constructors /** default constructor */
public Users() {
} /** full constructor */
public Users(String firstname, String lastname, Integer age) {
this.firstname = firstname;
this.lastname = lastname;
this.age = age;
} // Property accessors public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
} public String getFirstname() {
return this.firstname;
} public void setFirstname(String firstname) {
this.firstname = firstname;
} public String getLastname() {
return this.lastname;
} public void setLastname(String lastname) {
this.lastname = lastname;
} public Integer getAge() {
return this.age;
} public void setAge(Integer age) {
this.age = age;
}}users.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.workflow.entity.Users" table="users" schema="dbo" catalog="mytest">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="firstname" type="java.lang.String">
<column name="firstname" length="50" not-null="true" />
</property>
<property name="lastname" type="java.lang.String">
<column name="lastname" length="50" not-null="true" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" not-null="true" />
</property>
</class>
</hibernate-mapping>userdao/userdaoImplpackage com.workflow.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.workflow.dao.UserDao;
import com.workflow.entity.Users;public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
@SuppressWarnings("unchecked")
@Override
public List<Users> findAllUsers() {
// TODO Auto-generated method stub
String hql="from Users user order by user.id desc";
return (List<Users>)this.getHibernateTemplate().find(hql);
} @Override
public Users findUserById(int id) {
// TODO Auto-generated method stub
Users user =new Users();
user=(Users) this.getHibernateTemplate().get(Users.class, id);
return user;
} @Override
public void removeUser(Users user) {
// TODO Auto-generated method stub
this.getHibernateTemplate().delete(user);
} @Override
public void saveUser(Users user) {
// TODO Auto-generated method stub
super.getHibernateTemplate().save(user);
} @Override
public void updateUser(Users user) {
// TODO Auto-generated method stub
this.getHibernateTemplate().update(user);
}}
保存用户信息,
实体类字段有:姓、名、年龄
数据库user表有:用户id、姓、名、年龄,id是自增长的
struts2、Hibernate3.1、spring2.0整合后运行,控制台有打印出一条插入语句:
Hibernate: insert into mytest.dbo.users (firstname, lastname, age) values (?, ?, ?), 但是我在数据库打开user表,想看看数据有没有插入表,他会出现这样一个提示框:
SQL执行错误。
已执行SQL语句:select id, firstname, lastname, age from users
错误源:.Net SqlClient Data Provider
错误信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应。只要tomcat启动了,打开数据库的表都会弹出提示框,断开tomcat,数据库表就能正常打开。在数据库里写SQL语句是可以插入的
我搞了很久,都不知道是什么问题。请帮忙看看那里出问题了。
现把源代码贴出来,请各位高手帮忙看看。谢谢!users.java类package com.workflow.entity;/**
* Users entity.
*
* @author MyEclipse Persistence Tools
*/public class Users implements java.io.Serializable { // Fields private Integer id;
private String firstname;
private String lastname;
private Integer age; // Constructors /** default constructor */
public Users() {
} /** full constructor */
public Users(String firstname, String lastname, Integer age) {
this.firstname = firstname;
this.lastname = lastname;
this.age = age;
} // Property accessors public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
} public String getFirstname() {
return this.firstname;
} public void setFirstname(String firstname) {
this.firstname = firstname;
} public String getLastname() {
return this.lastname;
} public void setLastname(String lastname) {
this.lastname = lastname;
} public Integer getAge() {
return this.age;
} public void setAge(Integer age) {
this.age = age;
}}users.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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.workflow.entity.Users" table="users" schema="dbo" catalog="mytest">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="firstname" type="java.lang.String">
<column name="firstname" length="50" not-null="true" />
</property>
<property name="lastname" type="java.lang.String">
<column name="lastname" length="50" not-null="true" />
</property>
<property name="age" type="java.lang.Integer">
<column name="age" not-null="true" />
</property>
</class>
</hibernate-mapping>userdao/userdaoImplpackage com.workflow.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.workflow.dao.UserDao;
import com.workflow.entity.Users;public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
@SuppressWarnings("unchecked")
@Override
public List<Users> findAllUsers() {
// TODO Auto-generated method stub
String hql="from Users user order by user.id desc";
return (List<Users>)this.getHibernateTemplate().find(hql);
} @Override
public Users findUserById(int id) {
// TODO Auto-generated method stub
Users user =new Users();
user=(Users) this.getHibernateTemplate().get(Users.class, id);
return user;
} @Override
public void removeUser(Users user) {
// TODO Auto-generated method stub
this.getHibernateTemplate().delete(user);
} @Override
public void saveUser(Users user) {
// TODO Auto-generated method stub
super.getHibernateTemplate().save(user);
} @Override
public void updateUser(Users user) {
// TODO Auto-generated method stub
this.getHibernateTemplate().update(user);
}}
import com.workflow.dao.UserDao;
import com.workflow.entity.Users;public class UserBizImpl implements UserBiz {
private UserDao userDao; public UserDao getUserDao() {
return userDao;
} public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} @Override
public void delete(Users user) {
// TODO Auto-generated method stub
this.userDao.removeUser(user);
} @Override
public List<Users> findAll() {
// TODO Auto-generated method stub
return this.userDao.findAllUsers();
} @Override
public Users findById(int id) {
// TODO Auto-generated method stub
return this.userDao.findUserById(id);
} @Override
public void save(Users user) {
// TODO Auto-generated method stub
this.userDao.saveUser(user);
} @Override
public void update(Users user) {
// TODO Auto-generated method stub
this.userDao.updateUser(user);
}}actionpackage com.workflow.web.action;import com.opensymphony.xwork2.ActionSupport;
import com.workflow.biz.UserBiz;
import com.workflow.entity.Users;
public class SaveUserAction extends ActionSupport {
private Users user;
private UserBiz userBiz;
public Users getUser() {
return user;
}
public void setUser(Users user) {
this.user = user;
}
public UserBiz getUserBiz() {
return userBiz;
}
public void setUserBiz(UserBiz userBiz) {
this.userBiz = userBiz;
}
@Override
public String execute() throws Exception{
this.userBiz.save(this.user);
return SUCCESS;
}}hibernate.cfg.xml<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration><session-factory>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;databaseName=mytest</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="myeclipse.connection.profile">flow</property>
<property name="show_sql">true</property>
<mapping resource="com/workflow/entity/Users.hbm.xml" /></session-factory></hibernate-configuration>struts.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts>
<package name="user" extends="struts-default">
<action name="saveUser" class="saveUserAction">
<result name="success" type="redirect">listUser.action</result>
<result name="input">/saveUser.jsp</result>
</action>
</package>
</struts>applicationContext.xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean> <!-- dao -->
<bean id="userDao" class="com.workflow.dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- biz/serive -->
<bean id="userBiz" class="com.workflow.biz.impl.UserBizImpl">
<property name="userDao" ref="userDao"></property>
</bean> <!-- action -->
<bean id="saveUserAction"
class="com.workflow.web.action.SaveUserAction">
<property name="userBiz" ref="userBiz"></property>
</bean></beans>web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>index.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1><font color="red">Operation List</font></h1>
<s:a href="save.jsp">Save User</s:a><br><br><br>
<s:a href="listUser.action">List User</s:a>
</body>
</html>save.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>Save User</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<h1>
<font color="red">Save User</font>
</h1>
<s:form action="saveUser">
<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
<s:textfield name="user.lastname" label="%{getText('lastname')}"></s:textfield>
<s:textfield name="user.age" label="%{getText('age')}"></s:textfield>
<s:submit value="%{getText('submit')}"></s:submit>
</s:form>
</body>
</html>