使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
我这里使用的数据库是mysql5.0 数据是上课用的。这些都不是重点,重要的是学会这个方法;
创建好数据库:
create database jboadefault character set utf8;
show create database jboa1;
然后执行数据脚本
/*
Navicat MySQL Data Transfer
Source Server : MysqlLoal
Source Server Version : 50022
Source Host : localhost:3306
Source Database : jboa1
Target Server Type : MYSQL
Target Server Version : 50022
File Encoding : 65001
Date: 2014-05-26 07:22:09
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for biz_account
-- ----------------------------
DROP TABLE IF EXISTS `biz_account`;
CREATE TABLE `biz_account` (
`id` int(11) NOT NULL auto_increment,
`usr_id` varchar(13) default NULL,
`acc_type` varchar(2) default NULL,
`acc_money` double default NULL,
`sheet_id` varchar(13) default NULL,
`acc_time` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of biz_account
-- ----------------------------
-- ----------------------------
-- Table structure for biz_check_result
-- ----------------------------
DROP TABLE IF EXISTS `biz_check_result`;
CREATE TABLE `biz_check_result` (
`id` bigint(20) NOT NULL auto_increment,
`checker_sn` varchar(20) NOT NULL COMMENT '审核人',
`sheet_type` varchar(20) NOT NULL COMMENT '单据类型',
`sheet_id` bigint(20) NOT NULL COMMENT '单据编号',
`check_time` datetime NOT NULL COMMENT '审核时间',
`type` varchar(20) NOT NULL COMMENT '审核类型',
`result` varchar(20) NOT NULL COMMENT '审核结果',
`comm` varchar(255) default NULL COMMENT '审核意见',
PRIMARY KEY (`id`),
KEY `FK5E0EAAE06F568938` (`checker_sn`),
CONSTRAINT `FK5E0EAAE06F568938` FOREIGN KEY (`checker_sn`) REFERENCES `sys_employee` (`sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of biz_check_result
-- ----------------------------
-- ----------------------------
-- Table structure for biz_claim_voucher
-- ----------------------------
DROP TABLE IF EXISTS `biz_claim_voucher`;
CREATE TABLE `biz_claim_voucher` (
`id` bigint(20) NOT NULL auto_increment,
`create_sn` varchar(20) NOT NULL COMMENT '填报人',
`next_deal_sn` varchar(20) default NULL COMMENT '待处理人',
`create_time` date NOT NULL COMMENT '填写时间',
`event` varchar(255) NOT NULL COMMENT '事由',
`total_account` double NOT NULL COMMENT '总金额',
`status` varchar(20) NOT NULL COMMENT '状态',
PRIMARY KEY (`id`),
KEY `FKF5F9537FB1925E91` (`create_sn`),
KEY `FKF5F9537F34489BD5` (`next_deal_sn`),
CONSTRAINT `FKF5F9537F34489BD5` FOREIGN KEY (`next_deal_sn`) REFERENCES `sys_employee` (`sn`),
CONSTRAINT `FKF5F9537FB1925E91` FOREIGN KEY (`create_sn`) REFERENCES `sys_employee` (`sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of biz_claim_voucher
-- ----------------------------
-- ----------------------------
-- Table structure for biz_claim_voucher_detail
-- ----------------------------
DROP TABLE IF EXISTS `biz_claim_voucher_detail`;
CREATE TABLE `biz_claim_voucher_detail` (
`id` bigint(20) NOT NULL auto_increment,
`main_id` bigint(20) NOT NULL COMMENT '报销单(主单)编号',
`item` varchar(20) NOT NULL COMMENT '项目',
`account` double NOT NULL COMMENT '金额',
`des` varchar(200) NOT NULL COMMENT '费用说明',
PRIMARY KEY (`id`),
KEY `FKEC02A511C5CE4518` (`main_id`),
CONSTRAINT `FKEC02A511C5CE4518` FOREIGN KEY (`main_id`) REFERENCES `biz_claim_voucher` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of biz_claim_voucher_detail
-- ----------------------------
-- ----------------------------
-- Table structure for sys_department
-- ----------------------------
DROP TABLE IF EXISTS `sys_department`;
CREATE TABLE `sys_department` (
`id` int(11) NOT NULL auto_increment,
`manager_sn` varchar(20) default NULL COMMENT '部门经理',
`name` varchar(45) NOT NULL COMMENT '部门名称',
PRIMARY KEY (`id`),
KEY `FK1AC9880422A0A640` (`manager_sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of sys_department
-- ----------------------------
INSERT INTO `sys_department` VALUES ('1', '1', '1');
-- ----------------------------
-- Table structure for sys_dictionary
-- ----------------------------
DROP TABLE IF EXISTS `sys_dictionary`;
CREATE TABLE `sys_dictionary` (
`id` bigint(20) NOT NULL auto_increment,
`type` varchar(20) NOT NULL,
`item` varchar(20) NOT NULL,
`value` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of sys_dictionary
-- ----------------------------
-- ----------------------------
-- Table structure for sys_employee
-- ----------------------------
DROP TABLE IF EXISTS `sys_employee`;
CREATE TABLE `sys_employee` (
`sn` varchar(20) NOT NULL,
`department_id` int(11) NOT NULL COMMENT '部门',
`position_id` int(11) NOT NULL COMMENT '职务编号',
`password` varchar(45) NOT NULL COMMENT '密码',
`name` varchar(45) NOT NULL COMMENT '姓名',
`status` varchar(20) NOT NULL COMMENT '状态',
PRIMARY KEY (`sn`),
KEY `FKDE6BAFE015B8AA9F` (`department_id`),
KEY `FKDE6BAFE019C7389` (`position_id`),
CONSTRAINT `FKDE6BAFE015B8AA9F` FOREIGN KEY (`department_id`) REFERENCES `sys_department` (`id`),
CONSTRAINT `FKDE6BAFE019C7389` FOREIGN KEY (`position_id`) REFERENCES `sys_position` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of sys_employee
-- ----------------------------
INSERT INTO `sys_employee` VALUES ('admin', '1', '1', 'admin', 'admin', '1');
-- ----------------------------
-- Table structure for sys_position
-- ----------------------------
DROP TABLE IF EXISTS `sys_position`;
CREATE TABLE `sys_position` (
`id` int(11) NOT NULL auto_increment,
`name_cn` varchar(45) NOT NULL COMMENT '职务名称(中文)',
`name_en` varchar(45) NOT NULL COMMENT '职务名称(英文)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of sys_position
-- ----------------------------
INSERT INTO `sys_position` VALUES ('1', '管理员', 'admin');
创建好Web Project后,加入Hibernate支持
选择配置好的数据库:
new 新建一个包:
添加Spring支持:
下面的意思是 : 在配置文件里面创建sessionFactory的引用
反向生成Hibernate 实体类: 右上角却换到Databse Explorer perspective 视图模式 下
选择要生成的表 右击 → Hibernate Reverse Engineering
MySql的主键自动生成策略可以用identity 或者native
需要改生成的类的 类名或者属性名 可以在这里改,一般我们要修改一下实体类的类名,因为有时候不可以和数据库一样的名字;
这里要指定主键类型,因为这个类主键不是自动生成的 是手动添加的,其他不用指定默认是前面指定的(自动生成)。
将自动生成的 类 和配置文件 都整理到com.jboa.model包中
将所有配置文件hbm.xml前面加上整理到的 包
<hibernate-mapping package="com.jboa.model">
然后将他们都配置到hibernate.cfg.xml文件可以直接选中配置文件然后拖拽到图形化界面的Hibernate配置文件,如图:
<mapping resource="com/jboa/model/Employee.hbm.xml" />
…..
在web.xml加上Spring的监听器
<!-- 整合Spring --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
添加Struts2支持
整合好了。
添加dao接口
public interface EmployeeDao extends Serializable {
public Employee findById(String sn);
}
添加接口的实现类
public class EmployeeDaoImpl extends HibernateDaoSupport implements EmployeeDao {
public Employee findById(String sn) {
return this.getHibernateTemplate().get(Employee.class, sn);
}
}
在Spring配置文件applicationContext.xml 配置HibernateDaoSupport的sessionFactory
<bean id="employeeDao" class="com.jboa.dao.impl.EmployeeDaoImpl" depends-on="sessionFactory"> <property name="sessionFactory" ref="sessionFactory"></property> </bean>
创建Action ( EmployeeAction )
private Employee employee;
private EmployeeDao employeeDao;
//设置set方法,这样在Spring配置文件就可以配置值了
public void setEmployeeDao(EmployeeDao employeeDao) {
this.employeeDao = employeeDao;
}
//登陆验证
public String login() {
Employee e = employeeDao.findById(employee.getSn());
if (e != null && employee.getPassword().equals(e.getPassword())) {
ActionContext.getContext().getSession().put("loginUser", e);
return SUCCESS;
}
return INPUT;
}
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
在dao的实现类实现findById方法
public class EmployeeDaoImpl extends HibernateDaoSupport implements EmployeeDao {
public Employee findById(String sn) {
return this.getHibernateTemplate().get(Employee.class, sn);
}
}
在Spring的配置文件applicationContext.xml配置
<!-- scope="prototype"多例,表示每次使用都创建一个新的,单例则不创建新的 --> <bean id="employeeAction" class="com.jboa.action.EmployeeAction" scope="prototype"> <property name="employeeDao" ref="employeeDao"></property> </bean>
配置struts.xml文件
<constant name="struts.devMode" value="true"></constant> <package name="jboa" extends="struts-default" namespace="/"> <action name="login" class="employeeAction" method="login" > <result>/index.jsp</result> <result name="input">/login.jsp</result> </action> </package>
这样就可以了 接下来在WebRoot创建登陆页面测试 login.jsp,在数据库employee表添加登陆测试数据
<form action="login" method="post">
登陆名:<input name="employee.sn" /><br/>
密码:<input type="password" name="employee.password" /><br/>
<input type="submit" />
</form>
测试 部署启动tomcat,访问login.jsp,登陆成功;
成功!
使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆的更多相关文章
- 搭建SSH框架整合Struts2和Spring时,使用@Autowired注解无法自动注入
© 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 搭建SSH框架,在进行Struts2和Spring整合时,使用Spring的@Autowired自动注入失败,运行报错java.lan ...
- [JavaEE] SSH框架笔记_eclipse搭建SSH框架详解
SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hibe ...
- Maven环境下搭建SSH框架
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Fina ...
- Maven环境下搭建SSH框架之Spring整合Hibernate
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...
- eclipse Indigo搭建SSH框架详解
SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hi ...
- Java之基于Eclipse搭建SSH框架(下)
在上篇博客里,我简介了Tomcat滴配置与Struts2滴搭建,假设对这个还不会滴童鞋去看一下我滴上篇博客<Java之基于Eclipse搭建SSH框架(上)>.今天我们接着上篇博客滴内容. ...
- MyEclipse8.5快速搭建SSH框架
来源于:http://jingyan.baidu.com/article/a378c960a78125b3282830cc.html MyEclipse8.5快速搭建SSH框架 使用版本: Strut ...
- myeclipse搭建SSH框架
搭建SSH框架 Struts+hibernater+spring架构(myeclipse) 右击,首先加入spring,加入hibernater,再加入struts2 复制jar包(把tomcat发布 ...
- ODOO v10.0 自动生成财务凭证的科目设置
ODOO v10.0 自动生成财务凭证的科目设置 可以在产品类别及产品档案里设置,建议在产品类别下设置,方便维护. 项目 设置为(具体科目以公司科目表为主) 对应作用业务 Income Account ...
随机推荐
- SRM 558 SurroundingGame
题意: 给定一个网格,每个网格有选取代价和占据收益.每个点被占据,需要满足以下两个条件至少一个条件:1.被选取 2.邻近方格都被选取(有公共边被称为邻近) 不一定要占据所有方格,求最大收益. 输入 ...
- [JSOI2007]麻将
Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数 牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张. ...
- NOIP2015-D2T3运输计划
题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球. 小 P 掌管一家 ...
- SPOJ VLATTICE(莫比乌斯反演)
题意: 在一个三维空间中,已知(0,0,0)和(n,n,n),求从原点可以看见多少个点 思路: 如果要能看见,即两点之间没有点,所以gcd(a,b,c) = 1 /*来自kuangbi ...
- java 实现WebService
1.xml 2. wsdl: webservice description language web服务描述语言 通过xml格式说明调用的地址方法如何调用,可以看错webse ...
- 对I/O设备分配的一般策略是什么?
策略是:独享分配.共享分配.虚拟分配 补充:I/O设备的分配算法 1. 先请求先服务 2. 优先级最高者优先
- C语言第三次程序设计作业
(一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 1)源程序(有错误的程序) #include <stdio.h> int main(v ...
- TensorFlow官方文档
关于<TensorFlow官方文档> <TensorFlow官方文档>原文地址:http://devdocs.io/tensorflow~python/ ,本次经过W3Csch ...
- 07_Linux目录文件操作命令4解压缩,文件查找_我的Linux之路
这一节还是一样学习操作目录文件的命令 在这一节,我会讲到解压压缩tar以及zip命令,以及文本查找命令grep tar 打包压缩命令 tar命令可以为linux的文件和目录创建档案 首先要弄清两个概念 ...
- 关于一些基础的Java问题的解答(四)
16. Java面向对象的三个特征与含义 java中的面向对象的三大基本特征分别是:封装.继承.多态: 封装:把过程和数据包围起来,对数据的访问只能通过已定义的界面,主要是方便类的修改 继承:对象的一 ...