package com.s2sh.mobel;
import java.io.Serializable;
public class User implements Serializable{
private static final long serialVersionUID = -2974230401163436730L;
private Integer id;
private String name;
private String password;
private String firstname;
private String lastname;
private Integer age;
private User(){}
private User(Integer id , String firstname , String lastname , Integer age,String name,String password){
this.id = id;
this.firstname = firstname;
this.lastname = lastname;
this.age = age;
this.name=name;
this.password=password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
将User.xml放在同一包下,模版与数据库映射。
/p>
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
提供hibernate配置文件
hibernate.cfg.xml
/p>
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
在spring中,本身没有提供ORM的实现,但是提供了一些帮助类他们会提供ORM工具的支持,例如Hibernate、Ojdbc、iBatis等。
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/s2sh
root
wj
注意:bean的id 可以随便写,sessionfactory依赖数据源,所以要注射进来bean id=“”,接下来要设置成数据源,
工厂:
com/s2sh/mobel/User.hbm.xml
org.hibernate.dialect.MySQLDialect
true
还有一个,mvc三层架构,dao实现类注入,Servce业务逻辑注入,action注入
简单的用户登录填写:
注意,url请求找web.xml,通过拦截器和监听器进行操作,然后寻找struts.xml,然后struts class=“”会告诉继续找spring,spring的class=“”,会告诉具体找那个struts的action类,找到之后 获取rquest 参数,然后调用业务逻辑,把记过放进作用于,返回。在这里,我采用action注入servce,action注入user对象,servce类中注入dao,dao类中注入hibernateTemplate。
2.可以使用spring中的HibernateDaoSupport和HibernateTemplate类简化HibernateDao的实现类的编写。
public void delete(User id){
//获得hibernate事务
template =getHiberanteTemplate();
//获得对象
user =(User)template.get(User.class,id);
//spring事务会进行操作删除对象
template.delete(user);
}
注意:因为dao继承HibernateDaoSupper 所以要重写delete(),然后获取hibernateTemplate,HibernateTemplate封装了session的操作,user =(User)template.get(User.class,id);查找User对象,查找后在通过template在把这个对象删除掉。现在不用管session,因为我们用到spring,我们注射进来了,所以session关闭交给spring。
3.修改web.xml文件
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">
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
注意:url请求过来首先找web.xml,通过过滤器进行拦截,找对应的action。
4.接着编写web.xml
org.springframework.web.context.ContextLoaderListener
注意:监听器是spring,其实就是struts不管事务了,交给spring进行管理,对象交给spring进行管理。
5.web.xml架构
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">
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
org.springframework.web.context.ContextLoaderListener
编写struts.xml文件
/p>
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
/list.jsp
/error.jsp
注意name可以随便写,真正的寻找action类交给了spring,所以class=“”是spring的id=“”。他会继续到spring中找。
applicationContext.xml
注意:spring的id一定是struts的class =“”,然后spring的class=“”会告诉这个action类在哪里?jurisdiction 另外说名action要调业务逻辑,所以要注入业务逻辑类。
action编写:
package com.s2sh.action.user;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.s2sh.mobel.User;
import com.s2sh.service.UserService;
public class UserAction extends ActionSupport {
private static final long serialVersionUID = -7467352669343037994L;
private User user;
private UserService userService;
public static long getSerialversionuid() {
return serialVersionUID;
}
public UserService getUserService() {
return userService;
}
private String name;
private String password;
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setUser(User user) {
this.user = user;
}
public String login()throws Exception{
System.out.println(user.getName());
if(null!=this.userService.findUser(user)){
return SUCCESS;
}else {
return ERROR;
}
}
dao接口编写
package com.s2sh.dao;
import java.util.List;
import com.s2sh.mobel.User;
public interface UserDao {
//根据用户用户来登录,不过你可以根据自己需求来写
public User findUser(User user);
}
dao接口实现类
package com.s2sh.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.s2sh.dao.UserDao;
import com.s2sh.mobel.User;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
//用户登录
public User findUser(User user) {
try{
String hql="from User where name=? and password=?";
List list = (List) this.getHibernateTemplate().find(hql,new String[]{user.getName(),user.getPassword()});
if(list.size()>=1){
return (User)list.get(0);
}else {
return null;
}
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
编写servce接口
package com.s2sh.service;
import java.util.List;
import com.s2sh.mobel.User;
public interface UserService {
//根据user登录
public User findUser(User user);
}
编写servce实现类
package com.s2sh.service.impl;
import java.util.List;
import com.s2sh.dao.UserDao;
import com.s2sh.mobel.User;
import com.s2sh.service.UserService;
public class UserServiceImpl implements UserService{
private UserDao userDao;
//注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
//用户登录
public User findUser(User user){
return (User)this.userDao.findUser(user);
}
}
编写jsp名为login.jsp
pageEncoding="utf-8"%>
用户登录function longin(){
var name = document.getElementById("UserName").value;
var password = document.getElementById("UserPassword").value;
if(name.length==""){
alert("用户名不能为空");
return false;
}else if(password.length<6){
alert("密码长度不能小于6位");
return false;
}else if(password.length>6){
alert("密码长度不能大于6位");
}
return login.submit();
}
用户名:
密码:
失败页面 error.jsp
pageEncoding="utf-8"%>
Insert title here------------------>程序失败
注意:如果有什么需要帮助的可以加我QQ503229799 备注:s2sh寻求帮助,我会同意添加好友,另外我有QQ开发群,看我的首页,在群里喊我也行!这只是简单的登录,如果想要整个模块的增删改查的代码,请在本片评价上留言!我会给你们整合一个完整的代码,包括jar包上传····数据库设计····另外加注释·····
接下来咱们开始演示吧~~~~
url输入地址:http://localhost:8088/s2sh/login.jsp
大小: 55.7 KB
大小: 56.4 KB
分享到:
2011-09-20 22:11
浏览 2635
评论
6 楼
高级java工程师
2015-05-25
文思涌动 写道
楼主新年好。可否再传一遍给我,我没有收到, 不清楚您的邮箱地址是哪个。
最近比较忙,很久没弄博客了,刚看到
5 楼
文思涌动
2015-02-19
楼主新年好。可否再传一遍给我,我没有收到, 不清楚您的邮箱地址是哪个。
4 楼
高级java工程师
2014-02-26
文思涌动 写道
楼主传我一个w.ang-chao08@163.com
已给你发到你邮箱
3 楼
文思涌动
2014-02-25
楼主传我一个w.ang-chao08@163.com
2 楼
EyeJava6688
2012-08-31
非常不错的例子,希望大家多多关注。
1 楼
DYF123CXL123
2012-05-30
版主给一个增删改查的全代码!邮箱zzu_dyf@163.com 谢谢!