博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH登录与增删改查demo详解+源代码
阅读量:4342 次
发布时间:2019-06-07

本文共 5061 字,大约阅读时间需要 16 分钟。

下载地址:http://download.csdn.net/detail/qq_33599520/9784679

 

一、框架概述

+Struts2+(SSH)整合框架是一种非常典型与实用的Web项目MVC,其中:

Spring主要通过控制反转(IOC)与依赖注入(DI)控制对象的创建与维护,与实现面向切片编程(AOP),核心配置文件为:applicationContext.xml。

Struts2是MVC的Controller控制器,主要控制请求与对应业务逻辑、视图的对应关系,核心配置文件为:struts.xml。

Hibernate是持久层框架,主要用于与交互,它的优势在于它把实体类与数据库表建立了映射关系,在进行数据库操作时省去了繁琐的sql语句的构造过程与结果集的配置,使编程者可以以面向对象的思路来方便的进行编程,核心配置文件为:hibernate.cfg.xml与*.hbm.xml。

 

二、项目包结构

 

 

三、实体层(com.mstf.bean)

Javabean的基本构成,包括与数据库表列名对应的私有成员变量,有参与无参的构造方法,成员变量对应的get、set方法,很简单,在此不再赘述。本例中包括User类(用于登录)与Info类(用于增删改查测试)。

四、JUnit测试类(com.mstf.test)

用于测试数据库操作是否正确,以TestUser类为例:

public class TestUser {	//获取Spring资源文件	ApplicationContext ac = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");	SessionFactory sessionFactory = (SessionFactory) ac.getBean("sessionFactory");;	Session session = sessionFactory.openSession();	Transaction transaction = session.beginTransaction();	@Test	public void testInsert() throws Exception{			User user = new User("Alin", "123456", 1, 0);		session.save(user);		transaction.commit();		session.close();	}		@Test	public void testDelete() throws Exception{		User user = new User();		user.setUser_id(3);		session.delete(user);		transaction.commit();		session.close();	}		@Test	public void testUpdate() throws Exception{		User user = new User("rose", "666666", 1, 0);		user.setUser_id(2);		session.update(user);		transaction.commit();		session.close();	}		@Test	public void testSelect1() throws Exception{		//当查询全部字段时,可省略select *		Query query = session.createQuery("from User");		List
users = query.list(); for (User user : users) { System.out.println(user.toString()); } } @Test public void testSelect2() throws Exception{ //查询部分字段 Query query = session.createQuery("select new User(username,age,priority) from User"); List
users = query.list(); for (User users2 : users) { System.out.println(users2.toString()); } }}

  五、业务层(com.mstf.service服务接口com.mstf.service.impl实现类)

以UserService与UserServiceImpl为例:

public interface UserService {	public User loginServce(User user);}public class UserServiceImpl implements UserService {		//hibernate的SessionFactory对象由spring自动注入,入口为getSessionFactory方法	private SessionFactory sessionFactory;		@Override	public User loginServce(User user) {		//执行数据库查询		String sql = "from User where username = ? and password = ?";		@SuppressWarnings("unchecked")		List
list = sessionFactory.getCurrentSession().createQuery(sql) .setString(0, user.getUsername()) .setString(1, user.getPassword()).list(); if(list != null && list.size() == 1){ //返回结果 return list.get(0); } return null; } public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; }}

  

 

六、控制层(com.mstf.action)
以UserAction为例:

public class UserAction extends ActionSupport implements ModelDriven
{ //用于ModelDriven填充对象,入口为getModel方法 private User user; //用于spring自动注入,入口为setUserService方法 private UserService userService; private static final long serialVersionUID = 1L; //方法名对应login_*.action中的*通配符 public String login(){ //调用service方法,返回从数据库取出的数据 User returnUser = userService.loginServce(user); if(returnUser != null){ //获取当前request对象 HttpServletRequest request = ServletActionContext.getRequest(); //将对象装入session request.getSession().setAttribute("User", user); //返回视图 return SUCCESS; } return ERROR; } public UserService getUserService(){ return userService; } public void setUserService(UserService userService){ this.userService = userService; } @Override public User getModel() { user = new User(); return user; } }

  

七、Spring配置文件核心代码

  

八、Hibernate配置文件核心代码

org.hibernate.dialect.MySQL5Dialect
true
update

  

九、struts2配置文件核心代码

/userHomepage.jsp
/addUI.jsp
/updateUI.jsp
info_list.action
info_list.action
/error.jsp

  

十、效果图

 

访问地址:http://localhost:8080/HSS/

                                

                           

                       

 

转载于:https://www.cnblogs.com/ceet/p/6566667.html

你可能感兴趣的文章
JS实现弹出层效果
查看>>
wazuh安装手册
查看>>
windbg调试C#代码(一)
查看>>
你必须了解的java内存管理机制(四)-垃圾回收
查看>>
BZOJ4719 NOIP2016天天爱跑步(线段树合并)
查看>>
前端打包文件在 nginx 上 403 的解决办法
查看>>
JFreeChart(一)
查看>>
python--12、pymysql模块
查看>>
CSS隐藏页面元素方法
查看>>
2016.6.16_GUI_DOWNLOAD函数生成word & html
查看>>
loj#2542. 「PKUWC2018」随机游走(树形dp+Min-Max容斥)
查看>>
洛谷P5055 【模板】可持久化文艺平衡树(FHQ Treap)
查看>>
pycharm 常用快捷键操作
查看>>
万科20年老臣肖莉请辞 王石“梦一代”团队淡出
查看>>
Linux学习之CentOS--CentOS6.下Mysql数据库的安装与配置
查看>>
Asp.net 简单实现无闪刷分页
查看>>
linux shell 查看进程的可执行程序路径
查看>>
mysql join left join区别
查看>>
实施可持续发展战略
查看>>
Convert Sorted Array to Binary Search Tree
查看>>