项目结构图
首先需要在WEB-INF下创建lib包,导入SSH项目整合jar包
云盘链接:https://pan.baidu.com/s/1MEla6fzTLH3pSDMZvqqv5Q
提取码:5zka
接下来配置WEB-INF=>web.xml
org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:applicationContext.xml struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 public String save() { userService.addName(names); return NONE; } public String delete(){ userService.deleteName(names); return "index"; } }
写到这里启动Tomcat看项目测试项目是否能够正常启动,和能否进入controller层
配置resources=>hibernate.cfg.xml
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/m?serverTimezone=UTC&characterEncoding=utf-8 root org.hibernate.dialect.SQLServer2008Dialect 5 true true update
创建com.tang.pojo=>Names.java
package com.tang.pojo;
public class Names {
private Integer id;
private String name;
}
写完实体类后配置names.hbm.xml
com.dao=>UserDao.java
package com.tang.dao;
import com.tang.pojo.Names;
import java.util.List;
public interface UserDao {
boolean addName(Names names);
boolean deleteName(int id);
boolean updateName(Names names);
List namesList();
}
com.tang.dao.Impl=>UserDaoImpl.java
package com.tang.dao.Impl;
import com.tang.dao.UserDao;
import com.tang.pojo.Names;
import org.hibernate.*;
import org.hibernate.classic.Session;
import java.util.List;
public class UserDaoImpl implements UserDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@Override
public boolean addName(Names names) {
System.out.println("UserDaoImpl=>addName()");
Session session = sessionFactory.openSession();
Transaction ts = session.beginTransaction();
try {
session.save(names);
ts.commit();
return true;
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
System.out.println(e);
}
return false;
}
@Override
public boolean deleteName(int id) {
System.out.println("UserDaoImpl=>delete()");
Session session = sessionFactory.openSession();
Transaction ts = session.beginTransaction();
try {
Names names = (Names) session.get(Names.class, id);
session.delete(names);
ts.commit();
return true;
} catch (Exception e) {
e.printStackTrace();
ts.rollback();
System.out.println(e);
}
return false;
}
@Override
public boolean updateName(Names names) {
return false;
}
@Override
public List namesList() {
List namesList=null;
Session session = sessionFactory.openSession();
try {
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from Names");
namesList = query.list();
tx.commit();
} catch (HibernateException e) {
System.out.println(e);
}
return namesList;
}
}
com.tang.service=>UserService.java
package com.tang.service;
import com.tang.pojo.Names;
import java.util.List;
public interface UserService {
boolean addName(Names names);
boolean deleteName(Names names);
boolean updateName();
List namesList();
}
com.tang.service.Impl=>UserServiceImpl.java
package com.tang.service.Impl;
import com.tang.dao.UserDao;
import com.tang.pojo.Names;
import com.tang.service.UserService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional //作用于类,那么整个类的所有方法度开启事务
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public boolean addName(Names names) {
userDao.addName(names);
return true;
}
@Override
public boolean deleteName(Names names) {
userDao.deleteName(names.getId());
return true;
}
@Override
public boolean updateName() {
return false;
}
@Override
public List namesList() {
return null;
}
}
简单的增加页面 web=>index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
$Title$
简单的删除页面 web=>a.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
结论:整合时,敲代码须步步为营,写一步测一步,这样最能节省时间,也能最大程度提高效率,减少出现bug的概率,就算出现了bug,也能轻松找到bug所在的位置。



