clean
compile编译 test测试
site javadoc文档 install安装 deploy
submit->servlet
转换到合适的数据类型
封装到一个javabean中
***处理 Action
反馈 result:一个页面 ajax:返回一个json
package区分类名相同的类
Action:java类 其实是一个方法, public,返回类型 String 无参
包含这个方法的类叫action类 有时也简称action Result:jsp页面
Struts2 mvc framework
webwork 内核:xwork
start:
filter:org.apache.struts.ng.filter.StrutsPrepareAndExecuteFilter
映射成/* 建议*.action
“单例模式,不给servlet创建成员变量” Action: 每次产生一个对象
request 交给action:method 公有的 无参的 而不是一个页面,如jsp /admin/add.action
Result:actio方法的返回值 servlet模型:单例 singleton action模型:原型 prototype
对象:学生【姓名,年龄,生日】
StudentAction
add()//打开add.jsp
save()//接收add.jsp 表单中的数据 //
action中成员变量的用途 接收页面数据 成员变量
myBatis:提供sql,参数
剩下的执行,结果转换为java对象。。。有框架做
ORM:连提供sql都省略,只需告诉框架存取那种类型的框架即可 JPA:java persistent 框架 Hibernate topLike openjpa
ORM:Object Relation Mapping O:java对象
R:rdbms关系型数据库
juit 测试框架
@Before @Test @After
创建Hibernate项目 1创建mavenproject
2添加jar依赖:声明在pom.xml
javasisst, mysql ,juit,hibernate 3hibernate.xml->main/resource
4建立HibernateUtil工具类 用来获取session
private static SessionFactory factory;
static{
factory= new Config }
创建实体类:被@entity注解的类 1、写一个类,普普通通的类 POJO 2、配置数据库中的表的映射信息 3、添加到hibernate.cfg.xml中 注:映射信息写到get方法 写到成员变量的方式不推荐 两种方法不能混用。
Hibernate 中session:entity对象的存取器 entity对象的暂存器 commit给数据库做同步
Student s;
session.save(s) session.delete(s) 班级
自顶向下开发hibernate应用的步骤如下
1、配置hibernate应用环境,在应用中添加hibernate所需要的jar包并创建hibernate配置文件 2、编写PO
3、创建Configuration对象 4、创建SessionFactory对象 5、获取Session对象
6、使用Transaction管理事务 7、使用
多对一 Manytoone
在hibernate中的实体的定义:普通的java类以@entity标记 @Id标记主键
@generatedValue:主键生成策略 @Basic:普通的一列可以省略
@Transient:瞬态属性,与数据库无关
@ManyToOne:标记两个实体之间的关系 @JoinColumn:外键列 @cascade:级联 主键生成策略
1、手动生成,在调用save之前必须给id赋值 2、自动生成:
@generatedValue:自动生成策略取决于底层数据库
@generatedValue(strategy=generationType.IDENTITY) 使用identity,auto_increment的方式
@generatedValue(strategy=generationType.SEQUENCDE) 使用序列生成主键
@generatedValue(strategy=generationType.Table) 表策略 不懂啊
@map
一对一OneToOne 电脑显示器
@OneToOne(mappedBy=\);
要用非mapby定义的类(studet)来作为主者(会控制级联关系),一对多,多对一也一样道理 @joincolumn(name=\
多对多:@ManyToMany 通过中间表
@jointable(name=\,joincloums=@joincolumn(name=\)中间表
Session Api get() save() update()
saveOrUpdate()
HQL查询:跟sql非常类似,把sql中的表明列名替换为类名属性名 位置参数:? ,下标从0开始 setParameter(int,object) 命名参数: :name setParameter(name,object)
setParamenter(Map); key=name,value=object;
查询结果排序
和sql一样 desc降序 esc 升序 hibernate查询是基于对象的查询 默认查询对象的所有属性
查询部分属性: 投影 hql=\ Query q=ssn.createQuery(hql); //把查询的数据转换成类
q.setResultTransformer(Transformers.aliasToBean(emp.class));
List
for(int i=0;i Object [] row=(Object []) list.get(i); String name=(String) row[0]; Double sal=(Double) } 以上做投影查询需用 transformer 一行转化成对象 iterator String Hql=\ Query q=ssn.createQuery(hql); Iterator