1. 第二天 重点内容
搭建SSH 完成框架
以用户管理为例
• 用户登录
• 用户退出
• 修改密码
2. 开发流程
2.1. 业务分析
2.2. 数据库设计
MySQL : 新建 DataBase 、 新建用户 User 、进行授权
Oracle : 新建用户 User 、 创建表空间 、 在表空间进行操作
MySQL 操作步骤 :
步骤: 新建数据库
查看字符集 show variables like ‘%char%’;
client、connection、results 这三个字符集 和 安装mysql命令窗口相关
database 、 server 、system 这三个字符集服务器 (设置 utf8 )
修改 my.ini 文件 [mysqld] 下面
character-set-server=utf8
创建数据库使用默认字符集
新建用户
create user 用户名@localhost (本机)/ 用户名@%(远程) identified by ‘密码’ ;
为账户授权
2.3. 完成项目SSH 配置集成
在Spring 的applicationContext.xml 连接数据库 (整合Hibernate )
步骤:
整合Hibernate ,配置SessionFactory
事务管理
引入外部属性文件,为了项目维护更加方便
config.properties
配置事务
建立项目包结构
cn.itcast.bos.domain 数据实体类
cn.itcast.bos.dao 数据层
cn.itcast.bos.service 业务逻辑层
cn.itcast.bos.web 表现层
2.4. 数据库建模工具 PD的使用
安装12.5版本,进行破解
PD 是最专业数据建模工具, 是 Sybase 公司一个 产品
PD 提供四种模型文件
PDM 物理数据模型,面向数据库表结构设计,直接生成SQL语句或者通过ODBC工具直接导入数据
(JDBC 类型 jdbc-odbc桥、 NativeAPI、 Middleware 、 纯java驱动)
CDM 概念数据模型,类似E-R图 主要数据模型分析
OOM 面向对象模型,将表关系,表示类之间关系
BPM 业务流程模型,业务流程图
CDM 、PDM、OOM 三者相互转换
PDM 直接生成数据库文件,完成数据库建表
课程: PDM设计使用
2.5. 建立 user数据表
/* 创建user数据表 */
create table user (
id varchar(32) primary key,
username varchar(20),
password varchar(32), /* md5加密密码 */
salary double ,
birthday date ,
gender varchar(10),
station varchar(40),
telephone varchar(11),
remark varchar(255)
);
/* 初始化一条记录 */
insert into user(id,username,password) values('abcdefghijklmn','admin',md5('admin'));
作业: 使用PowerDesigner 绘制 user 数据模型
使用 Hibernate 开发
第一条: 创建数据表,根据数据表 编写PO类和 hbm映射
第二条: 面向对象设计 表关系,使用类动态 生成数据表
使用 MyEclipse 反转引擎,生成
步骤:
1、 新建 Database 连接
2、 新建web项目 temp
添加myeclipse hibernate 能力
3、 Hibernate 反转构建
将 User.java 类 复制 src/main/java , User.hbm.xml 复制 src/main/resources
3. 编程实现 用户登录操作
3.1. 设计 数据访问层 DAO
企业实际项目中,各层之间面向接口整合 ,好处将业务和实现解耦合,方便程序维护和扩展 ,程序中面向接口编程,在程序中看不到实现类,实现类都是通过Spring 配置
在企业开发各层内部,一定会存在重复可复用的代码 ,设计BaseXXX 类,是抽象类 ,将重复代码放入抽象类中, 自定义DAO 或者 Service 基础BaseDAO 或者 BaseService
设计通用 DAO 组件,只编写 一个DAO 工具类完成 所有表 CURD
需要依赖 反射和泛型 技术
在 cn.itcast.bos.dao.impl 提供 GenericDAO 实现
使用Session操作 Hibernate
使用HibernateTemplate 操作 Hibernate
public class GenericDAOImpl<T> extends HibernateDaoSupport implements GenericDAO<T> {
…
}
因为基础 HibernateDaoSupport 向DAO 注入SessionFactory 使用HibernateTemplate
配置具体DAO
applicationContext.xml 分离