dao:
public interface UserDao {
public boolean findUserByName(String username);
public List<User> findUser();
public User getUserById(Integer id);
public boolean UpdateUser(User user);
public boolean DeleteUser(User user);
public boolean add(User user);
}
daoimple:
public class UserDaoImpl implements UserDao{
private SessionFactory sessionFactory;
//定义Hibernate2个对象
Session session=null;
Transaction trans=null;
public void close(){
try{
if(session!=null)session.close();
}catch(Exception e){
e.printStackTrace();
}
} //销毁对象
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public boolean add(User user){
//通过SessionFactory实例对象获取session对象
session =sessionFactory.openSession();
//开始事务
trans=session.beginTransaction();
try{
// User u=new User();
// u.setUsername(user.getUsername());
// u.setPassword(user.getPassword());
// u.setBirthday(user.getBirthday());
//把数据放入一级缓存session中
session.save(user);
//提交事务,与数据库开始交互
trans.commit();
return true;
}catch(Exception e){
return false;
}
finally{
close();
}
}
@Override
public boolean findUserByName(String username){
//通过SessionFactory实例对象获取session对象
session =sessionFactory.openSession();
trans = session.beginTransaction();
try{
String hql="from User user where user.username=?";
Query query=session.createQuery(hql);
query.setParameter(0,username);
List<User> list=query.list();
if(list.isEmpty()) return false;
else return true;
}catch(Exception e){
return true;
}
}
@Override
public List<User> findUser(){
session = sessionFactory.openSession();
trans = session.beginTransaction();
try{
String hql="from User";
Query query=session.createQuery(hql);
List<User> list=query.list();
if(list.isEmpty()) return null;
else return list;
}catch(Exception e){
return null;
}
}
@Override
public User getUserById(Integer id) {
// TODO Auto-generated method stub
session =sessionFactory.openSession();
//trans = session.beginTransaction();
try{
String hql="from User user where user.id=?";
Query query=session.createQuery(hql);
query.setParameter(0,id);
List<User> list=query.list();
if(list.isEmpty()) return null;
else return list.get(0);
}catch(Exception e){
return null;
}
}
@Override
public boolean UpdateUser(User user) {
// TODO Auto-generated method stub
session =sessionFactory.openSession();
//开始事务
trans=session.beginTransaction();
try{
session.update(user);
//提交事务,与数据库开始交互
trans.commit();
return true;
}catch(Exception e){
return false;
}
finally{
close();
}
}
@Override
public boolean DeleteUser(User user) {
// TODO Auto-generated method stub
session =sessionFactory.openSession();
//开始事务
trans=session.beginTransaction();
try{
String hql="delete from User user where user.id=?";
session.delete(user);
//提交事务,与数据库开始交互
trans.commit();
return true;
}catch(Exception e){
return false;
}
finally{
close();
}
}
}
action:
public class RegAction extends ActionSupport{
private User user;//对应regist.jsp中的user.username中的user对象,用user对象将name,password,birthday关联起来
private String comments;
public List<User> userlist;
private UserDao userdao;
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public UserDao getUserdao() {
return userdao;
}
public void setUserdao(UserDao userdao) {
this.userdao = userdao;
}
public List<User> getUserlist(){
return userlist;
}//get方法必须要有,显示所有用户信息
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public String regUser() throws Exception{
// UserDao userdao=new userdao();
if(userdao.findUserByName(user.getUsername())){
setComments("用户已存在");
return "input";
}
else{
boolean flag=userdao.add(user);//按ctrl键再将鼠标移至add上即可查看add的定义
if(flag){
userlist=userdao.findUser();//获取数据
return "success";
}
else{
setComments("注册失败");
return "input";
}
}
}
public String getUserById(){
user=userdao.getUserById(Integer.parseInt(this.getId()));
if(user!=null){
return "success";
}
else{
return "input";
}
}
public String updateUser(){
String result = "input";
try{
userdao.UpdateUser(user);
result = "success";
}catch(Exception e){
e.printStackTrace();
}
return result;
}
public String deleteUser(){
user=userdao.getUserById(Integer.parseInt(this.getId()));
if(user!=null){
userdao.DeleteUser(user);
return "success";
}
else{
return "input";
}
}
}
struts:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<!-- 注册动作类TestAction及其方法 -->
<struts>
<constant name="struts.multipart.maxSize" value="1048576000"></constant>
<constant name="struts.objectFactory" value="spring"></constant>
<package name="struts2" extends="struts-default">
<action name="regUser" class="action.RegAction" method="regUser">
<result name="success">/success.jsp</result>
<result name="input">/error.jsp</result>
<interceptor-ref name="defaultStack"/>
</action>
</package>
</struts>
页面:
点击删除之后