java做一个添删改查的项目,Web项目Spring+hibernate+Spring mvc简单的添删改查

----------------------------------------------一.WEB项目的执行流程---------------------------------

1.web项目的运行流程大致如下:

启动tomcat,先到web.xml里面查看等等几个tag,查看里面的配置,查找相应的配置文件。

如下列文件所示:

SpringMVC12

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

contextConfigLocation

classpath*:config/springAnnotation-*.xml

org.springframework.web.context.ContextLoaderListener

springMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath*:config/springAnnotation-servlet.xml

1

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encodingFilter

/*

springMVC

/

openSession

org.springframework.orm.hibernate4.support.OpenSessionInViewFilter

openSession

/*

首先查看那几个标签,找到对应的配置文件,如中配置的classpath*:config/springAnnotation-*.xml。

---------------------------------------2.到配置文件查看相关信息----------------------------------------------

(1)里的classpath*:config/springAnnotation-*.xml,即在config目录下匹配springAnnotation-*.xml的文件

7c1299bf1f19f87d510fa3225c8bcc3a.png

(1.1)查看springAnnotation-core.xml

]>

对应的路径如下com/zyh/web/controller/spring/springAnnotation-import.xml

(1.2)查看springAnnotation-import.xml

]>

对应关于就已经配置在容器里面了。

(2.1)查看springAnnotation-hibernate.xml(配置数据源,sessionFactory,和事物)

]>

org.hibernate.dialect.MySQL5InnoDBDialect

update

true

true

classpath*:com/zyh/web/controller/hibernate/hibernate.cfg.test.xml

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_NEVER

配置的对应的 classpath*:com/zyh/web/controller/hibernate/hibernate.cfg.test.xml

(3)springAnnotation-servlet.xml,内容如下

xmlns:context="http://www.springframework.org/schema/context"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:mvc="http://www.springframework.org/schema/mvc"

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-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

xmlns:context="http://www.springframework.org/schema/context"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:mvc="http://www.springframework.org/schema/mvc"

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-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

springAnnotation-hibernate.xml<?xml version="1.0" encoding="UTF-8"?>

]>

org.hibernate.dialect.MySQL5InnoDBDialect

update

true

true

classpath*:com/zyh/web/controller/hibernate/hibernate.cfg.test.xml

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_REQUIRED,-Exception

PROPAGATION_NEVER

这个写的有点乱,理清思路,其实很简单,就是配置spring容器,里面扫描了所有的bean及一些依赖关系,hibernate配置数据源建立数据库连接,SessionFactory用于管理数据库,还有就是Springmvc用于控制视图与后台之间的页面转向,传递数据,发送请求。

配置工作就到此结束,然后就是写bean,dao,service,control与联系配置文件的对应关系,实际开发中当然不会把配置文件都写好才来写java代码。我的做法是同时进行,漏了就相应的加上。

-----------------------------------------------------------3对应的实现--------------------------------------

3.1 为了简单,我们建立一个单表的添删改查,就一个对象吧User,对应的表T_User,里面有userName和age两个属性,当然还要建立一个主键id,如下列代码所示:

com.zyh.web.controller.entity.User

package com.zyh.web.controller.entity;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity

@Table(name="T_USER")

public class User {

@GeneratedValue(generator = "system-uuid")

@GenericGenerator(name = "system-uuid", strategy = "uuid")

@Column(length=32)

@Id

private String id;

@Column(length=32)

private String userName;

@Column(length=32)

private String age;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

}

3.2 dao层结构如下:接口IUserDAO与实现类UserDAO,我们实现添删改查,查询包括一个User和所以User

com.zyh.web.controller.dao.IUserDAO

package com.zyh.web.controller.dao;

import java.util.List;

import com.zyh.web.controller.entity.User;

public interface IUserDAO {

public void addUser(User user);

public List getAllUser();

public User getUser(String id);

public boolean delUser(String id);

public boolean updateUser(User user);

}

实现类UserDAO:

package com.zyh.web.controller.dao;

import java.util.List;

import org.hibernate.Query;

import org.hibernate.SessionFactory;

import com.zyh.web.controller.entity.User;

public class UserDAO implements IUserDAO {

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

@Override

public void addUser(User user) {

// TODO Auto-generated method stub

sessionFactory.getCurrentSession().save(user);

}

@Override

public List getAllUser() {

// TODO Auto-generated method stub

String hql = "from User";

Query query =  sessionFactory.getCurrentSession().createQuery(hql);

return query.list();

}

@Override

public User getUser(String id) {

// TODO Auto-generated method stub

String hql = "from User u where u.id=?";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setString(0, id);

return (User) query.uniqueResult();

}

@Override

public boolean delUser(String id) {

// TODO Auto-generated method stub

String hql = "delete User u where u.id=?";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setString(0, id);

return (query.executeUpdate()>0);

}

@Override

public boolean updateUser(User user) {

// TODO Auto-generated method stub

String hql = "update User u set u.userName=?,u.age=? where u.id=?";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setString(0, user.getUserName());

query.setString(1, user.getAge());

query.setString(2, user.getId());

return (query.executeUpdate()>0);

}

}

3.3 service层结构如下:接口IUserManager与实现类UserManager,我们实现添删改查,查询包括一个User和所以User

com.zyh.web.controller.service.IUserManager

package com.zyh.web.controller.service;

import java.util.List;

import com.zyh.web.controller.entity.User;

public interface IUserManager {

public void addUser(User user);

public List getAllUser();

public boolean delUser(String id);

public User getUser(String id);

public boolean updateUser(User user);

}

实现类UserManager.java

package com.zyh.web.controller.service;

import java.util.List;

import com.zyh.web.controller.dao.IUserDAO;

import com.zyh.web.controller.entity.User;

public class UserManager implements IUserManager {

private IUserDAO userDao;

public void setUserDao(IUserDAO userDao) {

this.userDao = userDao;

}

@Override

public void addUser(User user) {

// TODO Auto-generated method stub

userDao.addUser(user);

}

@Override

public List getAllUser() {

// TODO Auto-generated method stub

return userDao.getAllUser();

}

@Override

public boolean delUser(String id) {

// TODO Auto-generated method stub

return userDao.delUser(id);

}

@Override

public User getUser(String id) {

// TODO Auto-generated method stub

return userDao.getUser(id);

}

@Override

public boolean updateUser(User user) {

// TODO Auto-generated method stub

return userDao.updateUser(user);

}

}

4.Control层结构如下:实现类UserController.java,代码如下:

package com.zyh.web.controller;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.zyh.web.controller.entity.User;

import com.zyh.web.controller.service.IUserManager;

@Controller

@RequestMapping("/user")

public class UserController {

@Resource(name="userManager")

private IUserManager userManager;

@RequestMapping("/toAddUser")

public String toAddUser(){

return "/addUser";

}

@RequestMapping("/addUser")

public String addUser(User user){

userManager.addUser(user);

return "redirect:/user/getAllUser";

}

@RequestMapping("/getAllUser")

public String getAllUser(HttpServletRequest request){

List user = userManager.getAllUser();

request.setAttribute("user", user);

return "/userManager";

}

@RequestMapping("/delUser")

public void delUser(String id,HttpServletResponse response){

String result = "{\"result\":\"error\"}";

if(userManager.delUser(id)){

result = "{\"result\":\"success\"}";

}

response.setContentType("application/json");

PrintWriter pw;

try {

pw = response.getWriter();

pw.write(result);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@RequestMapping("/getUser")

public String getUser(String id,HttpServletRequest request){

User user = userManager.getUser(id);

request.setAttribute("user", user);

return "editUser";

}

@RequestMapping("/updateUser")

public String updateUser(User user,HttpServletRequest request){

if(userManager.updateUser(user)){

userManager.getUser(user.getId());

request.setAttribute("user", user);

return "/editUser";

}else{

return "/error";

}

}

}--

--

package com.zyh.web.controller;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.List;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.zyh.web.controller.entity.User;

import com.zyh.web.controller.service.IUserManager;

@Controller

@RequestMapping("/user")

public class UserController {

@Resource(name="userManager")

private IUserManager userManager;

@RequestMapping("/toAddUser")

public String toAddUser(){

return "/addUser";

}

@RequestMapping("/addUser")

public String addUser(User user){

userManager.addUser(user);

return "redirect:/user/getAllUser";

}

@RequestMapping("/getAllUser")

public String getAllUser(HttpServletRequest request){

List user = userManager.getAllUser();

request.setAttribute("user", user);

return "/userManager";

}

@RequestMapping("/delUser")

public void delUser(String id,HttpServletResponse response){

String result = "{\"result\":\"error\"}";

if(userManager.delUser(id)){

result = "{\"result\":\"success\"}";

}

response.setContentType("application/json");

PrintWriter pw;

try {

pw = response.getWriter();

pw.write(result);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@RequestMapping("/getUser")

public String getUser(String id,HttpServletRequest request){

User user = userManager.getUser(id);

request.setAttribute("user", user);

return "editUser";

}

@RequestMapping("/updateUser")

public String updateUser(User user,HttpServletRequest request){

if(userManager.updateUser(user)){

userManager.getUser(user.getId());

request.setAttribute("user", user);

return "/editUser";

}else{

return "/error";

}

}

}

package com.zyh.web.controller.service;

import java.util.List;

import com.zyh.web.controller.dao.IUserDAO;

import com.zyh.web.controller.entity.User;

public class UserManager implements IUserManager {

private IUserDAO userDao;

public void setUserDao(IUserDAO userDao) {

this.userDao = userDao;

}

@Override

public void addUser(User user) {

// TODO Auto-generated method stub

userDao.addUser(user);

}

@Override

public List getAllUser() {

// TODO Auto-generated method stub

return userDao.getAllUser();

}

@Override

public boolean delUser(String id) {

// TODO Auto-generated method stub

return userDao.delUser(id);

}

@Override

public User getUser(String id) {

// TODO Auto-generated method stub

return userDao.getUser(id);

}

@Override

public boolean updateUser(User user) {

// TODO Auto-generated method stub

return userDao.updateUser(user);

}

}

--

package com.zyh.web.controller.service;

import java.util.List;

import com.zyh.web.controller.entity.User;

public interface IUserManager {

public void addUser(User user);

public List getAllUser();

public boolean delUser(String id);

public User getUser(String id);

public boolean updateUser(User user);

}

--3.2 dao层结构如下:接口IUserDAO与实现类UserDAO,我们实现添删改查,查询包括一个User和所以User

com.zyh.web.controller.dao.IUserDAO--

package com.zyh.web.controller.dao;

import java.util.List;

import org.hibernate.Query;

import org.hibernate.SessionFactory;

import com.zyh.web.controller.entity.User;

public class UserDAO implements IUserDAO {

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

@Override

public void addUser(User user) {

// TODO Auto-generated method stub

sessionFactory.getCurrentSession().save(user);

}

@Override

public List getAllUser() {

// TODO Auto-generated method stub

String hql = "from User";

Query query =  sessionFactory.getCurrentSession().createQuery(hql);

return query.list();

}

@Override

public User getUser(String id) {

// TODO Auto-generated method stub

String hql = "from User u where u.id=?";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setString(0, id);

return (User) query.uniqueResult();

}

@Override

public boolean delUser(String id) {

// TODO Auto-generated method stub

String hql = "delete User u where u.id=?";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setString(0, id);

return (query.executeUpdate()>0);

}

@Override

public boolean updateUser(User user) {

// TODO Auto-generated method stub

String hql = "update User u set u.userName=?,u.age=? where u.id=?";

Query query = sessionFactory.getCurrentSession().createQuery(hql);

query.setString(0, user.getUserName());

query.setString(1, user.getAge());

query.setString(2, user.getId());

return (query.executeUpdate()>0);

}

}

package com.zyh.web.controller.dao;

import java.util.List;

import com.zyh.web.controller.entity.User;

public interface IUserDAO {

public void addUser(User user);

public List getAllUser();

public User getUser(String id);

public boolean delUser(String id);

public boolean updateUser(User user);

}

--

package com.zyh.web.controller.entity;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity

@Table(name="T_USER")

public class User {

@GeneratedValue(generator = "system-uuid")

@GenericGenerator(name = "system-uuid", strategy = "uuid")

@Column(length=32)

@Id

private String id;

@Column(length=32)

private String userName;

@Column(length=32)

private String age;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

}

--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值