课程内容
1.HelloWorld
A)xml
B)annotation
2.什么是O/RMapping以及为什么要有O/RMapping
3.常见的O/R框架
4.Hibernate基础配置
5.Hibernate核心接口介绍
6.对象的三种状态
7.ID生成策略
8.关系映射
9.Hibernate查询(HQL)
10.性能优化
Hibernate HelloWorld
1.建立新的java项目,名为:hibernate_HelloWorld
2.学习建立User-library-hibernaet,并加入相应的jar包
A)项目右键build path-configure build path-add library
B)选择User-library,在其中新建library,命名为hibernate
C)在该library中加入hibernate所需jar包
Hibernate core
Required
Slf-non.jar
3.引入mysql的JDBC驱动包
4.在mysql中建立对应的数据库以及表
A)create database hibernate;
B)use hibernate;
C)create table student(id int primary key,name varchar(2),age int);
5.建立hibernate配置文件hibernate.cfg.xml
A)从参考文档中copy
B)修改对应的数据库连接
C)注释掉暂时用不上的内容
6.建立Student类
7.建立Student映射文件Student.hbm.xml
A)参考文档
8.将映射文件加入到hibernate.cfg.xml中
A)参考文档
9.写测试类Main,在Main中对Student对象进行直接的存储测试
A)参考文档
10.FAQ
A)要调用new Configuration().configure().buildSessionFactory(),而不是省略configure,否则会出
hibernate dialect must be set异常
建立Annotation版本的HelloWorld
1.创建teacher表,create table teacher(id int primary key,name varchar(20), title varchar(10)); 2.创建Teacher类
3.在hibernate lib中加入annotation的jar包
A)hibernate annotation jar
B)ejb3 persistence jar
C)hibernate common annotations jar
D)注意文档中没有提到hibernate common annotations jar文件
4.参考Annotation文档建立对应的注释
5.在hibernate.cfg.xml中建立映射
6.参考文档进行测试(注意文档中缺少configure()的小bug)
7.FAQ:@不给提示
A)window—preference content assist—activation—加上@
What is and a Why O/R Mapping
1.JDBC操作数据库很繁琐
2.Sql语句编写并不是面向对象的
3.可以在对象和关系表之间建立关联来简化编程
4.O/R Mapping简化编程
5.O/R Mapping跨越数据库平台
Hibernate基础配置
1.对应项目:Hibernate _0300_Basic Configuration
1.Hibernate.cfg.xml: hbm2dd.auto
A)先建表还是先建实体类
2.搭建日志环境并配置显示DDL语句
3. Hibernate.cfg.xml: show_sql
4.Hibernate.cfg.xml: format_sql
5.表名和类名不同,对表名进行配置
A)Annotation:@Table
B)Xml:自己查询
6.字段名和属性相同
A)默认为@Basic
B)Xml中不用写column
7.字段名和属性名不同
A)Annotation:@Column
B)Xml:自己查询
8.不需要persistence的字段
A)Annotation:@Transient
B)Xml不写
9.映射日期与时间类型,指定时间精度
A)Annotation:@Temporal
B)Xml:指定type
10.映射枚举类型
A)Annotation:@Enumerated
B)Xml:麻烦
11.字段映射的位置(field或者get方法)
A)best practice:保持field和get set方法的一致
ID 生成策略
1.对应项目:hibernate_0400_ID
2.注意:
A)我们观察hibernate生成表的结构并不是为了将来就用它生成,(可能还有自己的扩展,比如index等)而是为了明白我们应该建立什么样的表和实体类映射
3.Xml生成id
A)generator
B)常用四个:native identity sequence uuid
4.@GeneratedValue
A) 自定义ID
B)AUTO
1)默认:对MySQL,使用auto_increment
2)对Oracle,使用hibernate_sequence(名称固定)
C)IDENTITY(Teacher3)
D)SEQUENCE(Teacher4)
1)@SequenceGenerator
E)TABLE(Teacher5)
1)@TableGenerator
5.联合主键
A)@IdClass
i.@Embeddable @Id
ii.@EmbeddeID
iii.@Id @IdClass
B)xml:composite-id
1) 为什么要重写equals和hasCode
2)为什么要实现serializable
B) Annotation
i.@Embeddble @Id
ii.@EmbeddedID(*)
iii.@ Id @IdClass(*)
核心开发接口介绍
1.HibernateAPI文档需要单独下载
2.Configuration
A)AnnotationConfiguration
B)进行配置信息的管理
C)用来产生SessionFactory:维护数据库连接池
D)只需关注一个方法即:buildSessionFactory()
3.SessionFactory
A)用来产生和管理Session
B)通常情况下每个应用只需要一个SessionFactory
C)除非要访问多个数据库的情况
D)关注两个方法即:openSession:创建一个新的session getCurrentSession:获得当前的sesssion,没有则创建一个,在session没有提交前,多次调用getCurrentSession得到的都是同一个session,session一旦提交,再调用getCurrentSession得到的就是一个新session,这两个方法不能混用
i.openSession每次都是新的,需要close
ii.G etCurrentSession从上下文找,如果有,用旧的,如果没有,创建新的
1.用途,界定事务边界
2.事务提交自动close
3.Current-session_context_class ( jta thread) (java transcation API)j
A)Thread使用connection
B)Jta是针对分布式事务,由Application Server的支持(Tomcat不行)
4.Session 等同于数据库的连接
A)管理一个数据库的任务单元
B)方法
i.Save()
ii.Delete
iii.Load
iv.Get
v.Get与load的区别(重点)
1.不存在对应记录时表现不一样
2.Load返回的是代理对象,等到真正用到对象的内容时才发出sql语句
3.Get直接从数据库加载,不会延迟
Vi. update
1.用来更新detached对象,更新完成后转为persistent状态
2.更新transient对象会报错
3.更新自己设定id的transient对象可以(前提是数据库有对应记录)
4.P状态的对象只要设定不同字段就会发生更新
5.更新部分更改的字段
A)xml设定property标签的upadte属性,annotation设定@Column 的updatable属性,不过这种方式很少用,因为不灵活
B)使用xml中的dynamic-update,JPA1.0Annotation没有对应的属性,hibernate扩展?
i.同一个session可以,跨session不行,不过可以用merge()
C)使用hql
vii. saveOrUpdate
viii. clear方法
1.无论是load还是get,都会首先查找缓存(一级缓存),如果没有,才
会去数据库查找,调用clear方法可以强制清除session缓存ix. flush() 方法
1.可以强制进行从内存到数据库的同步
5. SchemaExport
6. Note
A)hibernate涉及很多非常非常细节的区别,但在实际应用中用得极少,请大家先享受写项目的乐趣,再来探讨这些细节问题
i.比如save和persist的区别
ii.Merge、evict等方法
iii.比如refresh、lock等
B)建议学习的方法:动手实验
关系映射
对象之间的关系
1.这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题
是当对象之间处于下列关系之一时,数据库表该如何映射,编程上该如何对待
2.简化问题
B)怎么写Annotaion
C)增删改查怎么写
3.一对一单向外键关联
A)Annotation:@one2one @joinColumn
B)Xml: 4. 一对一双向外键关联 A)Annotation:@one2one (mappedBy) C)Xml: D)规律:凡是双向关联,必设mappedBy 2.一对一单向主键关联(不重要) 3.一对一双向主键关联(不重要) 4.联合主键 @JoinColumns 组件映射 A)单向(主键,外键) B)双向(主键,外键) C)中间表 多对一与一对多 1.多对一单向关联 A)数据库表设计:在多方加外键 i.错误做法:在一方加冗余 B) C)Xml: 2.一对多单向关联 A)类:在一的一方存在多方的集合 B)数据库表同上 C)Annotation:@One2Many D)Xml: 3.一对多(多对一)双向关联 多对多 1.单向关联: A)例如:老师和学生的关系,老师需要知道自己教了哪些学生B)数据库:中间表 C)@Many2Many D)X ml: 1.上一个project 2.三种状态的区分关键在于 A)有没有ID B)ID在数据库中有没有 C)ID在内存中有没有(session缓存) 3.三种状态: A)transient:内存中一个对象,没有ID,缓存中也没有 B)persistent:内存中有,缓存中有,数据库有(ID) C)detached :内存有,缓存没有,数据库有,ID 4.对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比如改变属性的值会不会发出update语句? A)强烈建议动手实验 B)进行正常人的思考 C)绝对不要去背这些东西 5.调用flush方法可以强制进行从内存到数据库的同步 关联关系中的CRUD 1.设定cascade可以设定在持久化时对于关联对象的操作 2.Cascade仅仅是帮我们省了编程的麻烦而已,不要把它的作用看得太大A)cascade的属性指明做什么操作的时候关联对象是绑在一起的 B)Refresh=A里面需要读B改过之后的数据 3.规律:双向关系在程序中要设定双向关联 4.规律:双向一定要设定mappedBy 5.Fetch A)规律:双向不要两边设置Eager(会有多余的查询语句发出) B)对多方设置fetch的时候要谨慎,结合具体应用,一般用lazy不用eager,特殊情况(多方数量不多的时候可以考虑,提高效率的时候可以考虑) 6.要想删除或者更新,先做load,除了精确知道ID之外 7.如果想消除关联关系,先设定关系为null,再删除对应记录,如果不删记录,该记录就变成垃圾数据 8.如果指定@One2One的属性fetch为FetchType。LAZY,会延迟对于关联对象的加载,不管是load还是get 关系映射总结 1.什么样的关系,设什么样的表,进行什么样的映射 2.CRUD,按照自然的理解即可 集合映射(不太重要) 1.Set 2.List @OrderBy 3.Map @MapKey 作业: 1.学生、课程、分数的设计 2.设计: A)实体类(表) B)导航(编程方便) C)确定了编程方式 3.树状结构的设计 A)在同一个类中使用 One2Many和Many2One 性能优化 HQL vs EJB QL 1、NativeSQL>HQL>EJB QL>QBC(Query By Criteria)>QBE(Query By Example) 2、总结:QL应该和导航关系结合,共同为查询提供服务。 性能优化 1、注意session.clear()的运用,尤其在不断分页循环的时候 a) 在一个大集合中进行遍历,遍历msg,取出其中的含有敏感字样的对象 b) 另外一种形式的内存泄露 2、1+N问题(当所需数据可以从一个表中取出时,因导航原因导致与该数据有联系的数 据被一起取出而出现的,只需发一个SQL 便可满足需求,但实际发出了N条) 处理办法: a) 将多一边添加LAZY属性,从而使后边的SQL不会主动发出,只有当有调用的时候才会发出后边 的SQL语句 b) 在被动取数据的表中(多那边)实体类上增加BatchSize属性 c) 在查询的时候用join fetch 语句 3、list 和iterate不同之处 a) list取所有 b) iterate先取ID,等用到的时候再根据ID来取对象 c) session中list第二次发出,仍会到数据库查询 d) iterate第二次,首先找session级缓存 4、一级缓存和二级缓存和查询缓存 a)什么时缓存 b)什么是一级缓存,session级别的缓存 c)什么是二级缓存,SessionFactory级别的缓存,可以跨越session而存在 适合放置对象 i.经常被访问 ii.改动不大 iii.数量有限 d)打开二级缓存 i.hibernate.cfg.xml配置 ii.注释 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_基础语法 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第03章_面向对象 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第05章_数组 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第06章_常用类 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理 尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式 反射avi ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 第二部分:j2se练习项目视频内容包括: 马士兵hibernate学习笔记 课程内容 (6) 1HelloWorld (6) 2Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping (6) 3常见的0/R框架(了解) (6) 4hibernate基础配置(重点) (6) 5ID生成策略(重点 AUTO) (6) 6Hibernate核心开发接口介绍(重点) (6) 7对象的三种状态(了解) (6) 8关系映射(重点) (6) 9Hibernate査询(HQL) (6) 10在Struts基础上继续完善BBS200 (6) 11性能优化(重点) (6) 12补充话题 (6) 风格 (6) 1先脉络,后细节 (6) 2先操作,后原理 (6) 3重Annotation,轻xml配置文件 (6) 资源 (6) 1http://www. https://www.sodocs.net/doc/937166140.html, (6) 2hibernate zh_CN文档 (6) 3hibernate annotation references (6) 环境准备 (6) 1下载hibernate-distribution-3.3.2.GA-dist (6) 2下载hibernate-annotations-3[1].4.0.GA (6) 3注意阅读hibernate compatibility matrix(hibernate 网站download) (6) 4下载slf4jl.5.8 (7) Hibernate HelloWorld (7) 1建立新java 项目,名为hibernate_0100_HelloWorld (7) 2学习建User-library-hibernate,并加入相应的jar包 (7) 3引入mysql的JDBC驱动包 (7) 4在mysql中建立对应的数据库以及表 (7) 5建立hibernate 配置文件hibernate.cfg.xml (7) 6建立Student 类 (7) 7建立Student 映射文件 Student.hbm.xml (7) 第一阶段:J2SE基础数据结构正则表达式反射机制 第零部分:60分钟零基础体验项目开发 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充 *尚学堂科技_马士兵_JA VA视频教程_J2SE_5.0_第02章_基础语法 *尚学堂科技_马士兵_JA VA视频教程_J2SE_5.0_第03章_面向对象 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理 *尚学堂科技_马士兵_JA VA视频教程_J2SE_5.0_第05章_数组 *尚学堂科技_马士兵_JA VA视频教程_J2SE_5.0_第06章_常用类 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络 //尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI 尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理 尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式 尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_递归 尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_CLASSPA TH 尚学堂教学安排 第一部分学习总周期26天: 1. --j2se(chat + tank + snake)-----------------------13 days 2. --oracle--------------------------------- 4 days 3. --jsp+jdbc+mysql------------------------------- 1 days 4. --html+css+js--------------------------- 3 days 5. --html+css+js--------------------------- 3 days 6. --bbs----------------------------------- 2 days 第二部分学习总周期27天 7. --drp-----------------------------------12 days 8. --struts--------------------------------- 6 days 9. --hibernate-------------------------------- 6 days 10.--spring--------------------------------- 3 days 第三部分学习总周期26天 11.--uml----------------------------------- 2 days 12.--oa-----------------------------------15 days 13.--crm----------------------------------- 5 days 14.--ejb 3.0---------------------------------3 days 15.--bankproject(简介)---------------------------1 days 16.--面试技巧+3g+j2me(简介)-------------------------1 days 第四部分linux学习总周期4天 教学视频资源列表 q、jshtmlcss 这是基础 l、尚学堂科技_马士兵_轻松愉快linux视频教程 n、oracle.马士兵 r、mysql_avi.马士兵 这些单独的数据库和系统模块可以在任何时候都可以,建议在学j2ee之前学 j、尚学堂马士兵视频教程_scm_cvs_svn cvs是存档工具,建议在学j2ee当中学习 p、junit4 这个是测试工具,建议在学j2ee中学习 s、设计模式.马士兵 3. hibernate.hbm2ddl.auto : 在SessionFactory 创建时,自动检查数据库结构,或者将数据库schema 的DDL 导出到数据库。使用create-drop 时,在显式关闭SessionFactory 时,将删除掉数据库schema。 例如:validate | update | create | create-drop create :如果没有表就创建 update :如果表结构更新,就更新 validate :每次插入表的时候看看表结构有没有更新。 理论上是先建类后建表:这个时候只要你的类建好了,可以跨数据库。 实际中先建表比先建类多,建好表以后要对数据库进行优化,比如建索引,建试图,各种各样的优化。 project\etc目录下面有很多示例性的文档,log4j的文档就在那个下面。 SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); SessionFactory的建立是很耗费时间的,应该像连接池一样,只建立一次,以后要用就直接从那用。 Hibernate文档建议我们自己写一个辅助类,用单例来做。 JUnit的一个bug: @BeforeClass public static void beforeClass() { sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } 在这句话的时候 配置文件如果有的时候写错了,她悄悄把错误隐藏起来了。 解决的方法:可以对这句话加try catch块 8.表名和类名不一致的时候: @Entity @Table(name="_teacher") 尚学堂视频学习顺序 1. 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第1章_JAVA简介_源代码_及重要说明尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第2章_基础语法 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第2章_递归补充 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第3章_面向对象 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第4章_异常处理 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第5章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第5章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第6章_常用类 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第7章_容器 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第8章_IO 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第9章_线程 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI 2. 尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse 3 尚学堂科技_马士兵_坦克大战视频教程_java_eclipse 4 尚学堂科技_马士兵_坦克大战图片版 5 尚学堂科技_马士兵_坦克大战网络版视频教程 6 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_日期处理 7 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_正则表达式 8 尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版 9 尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程 10 尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程 11 马士兵Spring学习笔记2011 目录 课程内容 (1) 面向接口编程(面向抽象编程) (2) 什么是IOC(DI),有什么好处 (2) Spring简介 (2) Spring IOC配置与应用 (2) 什么是AOP (4) Spring AOP配置与应用 (4) Spring整合Hibernate (7) Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2 (11) 课程内容 1.面向接口(抽象)编程的概念与好处 2.IOC/DI的概念与好处 a)inversion of control b)dependency injection 3.AOP的概念与好处 4.Spring简介 5.Spring应用IOC/DI(重要) a)xml b)annotation 6.Spring应用AOP(重要) a)xml b)annotation 7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) a)opensessionInviewfilter(记住,解决什么问题,怎么解决) 8.Spring JDBC 面向接口编程(面向抽象编程) 1.场景:用户添加 2.Spring_0100_AbstractOrientedProgramming a)不是AOP:Aspect Oriented Programming 3.好处:灵活 什么是IOC(DI),有什么好处 1.把自己new的东西改为由容器提供 a)初始化具体值 b)装配 2.好处:灵活装配 Spring简介 1.项目名称:Spring_0200_IOC_Introduction 2.环境搭建 a)只用IOC i.spring.jar , jarkata-commons/commons-loggin.jar 3.IOC容器 a)实例化具体bean b)动态装配 4.AOP支持 a)安全检查 b)管理transaction Spring IOC配置与应用 1.FAQ:不给提示: a)window – preferences – myeclipse – xml – xml catalog b)User Specified Entries – add i.Location:D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsd ii.URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd iii.Key Type: Schema Location 尚学堂马士兵Spring文档 课程内容 1.面向接口(抽象)编程的概念与好处 2.IOC/DI的概念与好处 a)inversion of control b)dependency injection 3.AOP的概念与好处 4.Spring简介 5.Spring应用IOC/DI(重要) a)xml b)annotation 6.Spring应用AOP(重要) a)xml b)annotation 7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) a)opensessionInviewfilter(记住,解决什么问题,怎么解决) 8.Spring JDBC 面向接口编程(面向抽象编程) 1.场景:用户添加 2.Spring_0100_AbstractOrientedProgramming a)不是AOP:Aspect Oriented Programming 3.好处:灵活 什么是IOC(DI),有什么好处 1.把自己new的东西改为由容器提供 a)初始化具体值 b)装配 2.好处:灵活装配 Spring简介 1.项目名称:Spring_0200_IOC_Introduction 2.环境搭建 a)只用IOC i.spring.jar , jarkata-commons/commons-loggin.jar 3.IOC容器 a)实例化具体bean b)动态装配 4.AOP支持 a)安全检查 b)管理transaction Spring IOC配置与应用 1.FAQ:不给提示: a)window – preferences – myeclipse – xml – xml catalog b)User Specified Entries – add i.Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\sprin g-beans-2.5.xsd ii.URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resource s/spring-beans-2.5.xsd iii.Key Type: Schema Location iv.Key: https://www.sodocs.net/doc/937166140.html,/schema/beans/spring-beans-2.5.xsd 2.注入类型 a)Spring_0300_IOC_Injection_Type b)setter(重要) c)构造方法(可以忘记) d)接口注入(可以忘记) 3.id vs. name a)Spring_0400_IOC_Id_Name b)name可以用特殊字符 4.简单属性的注入 a)Spring_0500_IOC_SimpleProperty b) ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 针对很多java爱好者对尚学堂课程不是十分了解,特此介绍课程学习内容及学习周期: 第一部分学习总周期26天: 1. ---j2se(chat + Tank + snake)---------------------------------------------13 days 2. ---Oracle------------------------------------------------------------------ 4 days 3. ---JDBC+Mysql-------------------------------------------------------------- 1 days 4. ---Html+css+javascript----------------------------------------------------- 3 days 5. ---Html+css+javascript----------------------------------------------------- 3 days 6. ---BBS--------------------------------------------------------------------- 2 days 第二部分学习总周期27天 7. ---DRP---------------------------------------------------------------------12 days 8. ---Struts------------------------------------------------------------------ 6 days 9. ---Hibernate--------------------------------------------------------------- 6 days 10.---Spring------------------------------------------------------------------ 3 days 第三部分学习总周期26天 11.---UML--------------------------------------------------------------------- 2 days 12.---OA----------------------------------------------------------------------15 days 13.---CRM--------------------------------------------------------------------- 5 days 14.---EJB 3.0------------------------------------------------------------------3 days 15.---BankProject(简介)------------------------------------------------------1 days 16.---面试技巧+3G+j2me(简介)-------------------------------------------------1 days 第四部分Linux学习总周期4天 课堂资料介绍(您的资料缺少什么,请对照) 00_开课 java 开门三件事.txt 01_J2SE chapter1(代码) chapter2(代码) chapter3(代码) …… chapter11(代码) java(代码) ppt 理解抽象类与接口的区别.htm 02_Oracle 教学视频资源列表 q、jshtmlcss 这是基础 l、尚学堂科技_马士兵_轻松愉快linux视频教程 n、oracle.马士兵 r、mysql_avi.马士兵 这些单独的数据库和系统模块可以在任何时候都可以,建议在学j2ee之前学 j、尚学堂马士兵视频教程_scm_cvs_svn cvs是存档工具,建议在学j2ee当中学习 p、junit4 这个是测试工具,建议在学j2ee中学习 s、设计模式.马士兵 j2ee中会提到这块的 f、马士兵jsp_servlet视频 这个是j2ee的基础 a、ejb3.0李腾飞 ejb现在用的真的不多了 d、struts马士兵 b、hibernate马士兵 c、spring马士兵 struts是学习j2ee的第一个框架,简单易上手,也可以考虑struts2,这个跟struts没啥关系,是webwork的升级版 hibernate对于懒人来说很好用,但是不适合面对大客户量的访问,那样机器会死的很惨spring还不错,就是要适应繁琐的配置文件 g、尚学堂科技_马士兵_java_网上商城项目视频讲解 h、尚学堂09年drp项目 i、尚学堂科技_马士兵_jdbc_mysql_bbs项目课堂实录视频教程 k、尚学堂科技_马士兵_java_系列视频教程_bbs_2007 o、尚学堂马士兵视频教程_xml_ajax_dom4j_javadb_metadata 学完三大框架之后就可以做上面的项目了,然后ajax的学习也用不了太久,可以边学边学着做 e、oa项目 最好是在有以上项目经验的基础上,加上学完了ajax再做oa项目,因为oa项目涉及到的技术太多 课程内容---…详细 包括整合struts hibernate ------------------------------------ 1.面向接口(抽象)编程的概念与好处 2.IOC/DI的概念与好处 a)inversion of control b)dependency injection 3.AOP的概念与好处 4.Spring简介 5.Spring应用IOC/DI(重要) a)xml b)annotation 6.Spring应用AOP(重要) a)xml b)annotation 7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) a)opensessionInviewfilter(记住,解决什么问题,怎么解决) 8.Spring JDBC 面向接口编程…(面向抽象编程) 1.场景:用户添加 2.Spring_0100_AbstractOrientedProgramming a)不是AOP:Aspect Oriented Programming 3.好处:灵活 什么是IOC(DI),,,有什么好处 1.把自己new的东西改为由容器提供 a)初始化具体值 b)装配 - 课程内容 1.HelloWorld a)xml b)annotation 2.Hibernate原理模拟–什么是O/RMapping以及为什么要有O/RMapping 3.常见的O/R框架(了解) 4.hibernate基础配置(重点) 5.ID生成策略(重点掌握AUTO) 6.Hibernate核心开发接口介绍(重点) 7.对象的三种状态(了解) 8.关系映射(重点) 9.Hibernate查询(HQL) 10.在Struts基础上继续完善BBS2009 11.性能优化(重点) 12.补充话题 风格 1.先脉络,后细节 2.先操作,后原理 3.重Annotation,轻xml配置文件 a)JPA b)hibernate - extension 资源 1.https://www.sodocs.net/doc/937166140.html, 2.hibernate zh_CN文档 3.hibernate annotation references 环境准备 1.下载hibernate3.3.2 2.下载hibernate 3. 4.0 3.注意阅读hibernate compatibility matrix(hibernate网站,download) 4.下载slf4j1. 5.8 Hibernate HelloWorld 1.建立新的java项目,名为:hibernate_0100_HelloWorld 2.学习建立User-library – hibernate,并加入相应的jar包 a)项目右键-build path-configure build path-add library b)选择User-library,在其中新建libraray,命名为hibernate c)在该library中加入hibernate所需jar包 i.hibernate core ii./required iii.slf-nop jar 3.引入mysql的JDBC驱动包 4.在mysql中建立对应的数据库以及表 a)create database hibernate; b)use hibernate; c)create table Student (id int primary key, name varchar(20), age int); 5.建立hibernate配置文件hibernate.cfg.xml a)从参考文档中copy b)修改对应的数据库连接 c)注释掉暂时用不上的内容 6.建立Student类 7.建立Student映射文件Student.hbm.xml a)参考文档 8.将映射文件加入到hibernate.cfg.xml中 a)参考文档 9.写测试类Main,在Main中对Student对象进行直接的存储测试 a)参考文档 10.FAQ: a)要调用new Configuration().configure().buildSessionFactory(),而不是省略configure, 否则会出hibernate dialect must be set的异常 11.Note: a)请务必建立自己动手查文档的能力 b)重要的是: i.要建立自己动手查一手文档的信心 ii.还有建立自己动手查一手文档的习惯! iii.主动学习,放弃被动接受灌输的习惯! 12.建立能力: a)错误读完整 b)读出错误的关键行 c)排除法 d)比较法 e)google老师 课程内容 1.面向接口(抽象)编程的概念与好处 2.IOC/DI的概念与好处 a)inversion of control b)dependency injection 3.AOP的概念与好处 4.Spring简介 5.Spring应用IOC/DI(重要) a)xml b)annotation 6.Spring应用AOP(重要) a)xml b)annotation 7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) a)opensessionInviewfilter(记住,解决什么问题,怎么解决) 8.Spring JDBC 面向接口编程(面向抽象编程) 1.场景:用户添加 2.Spring_0100_AbstractOrientedProgramming a)不是AOP:Aspect Oriented Programming 3.好处:灵活 什么是IOC(DI),有什么好处 1.把自己new的东西改为由容器提供 a)初始化具体值 b)装配 2.好处:灵活装配 Spring简介 1.项目名称:Spring_0200_IOC_Introduction 2.环境搭建 a)只用IOC i.spring.jar , jarkata-commons/commons-loggin.jar 3.IOC容器 a)实例化具体bean b)动态装配 4.AOP支持 a)安全检查 b)管理transaction Spring IOC配置与应用 1.FAQ:不给提示: a)window – preferences – myeclipse – xml – xml catalog b)User Specified Entries – add i.Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\sprin g-beans-2.5.xsd ii.URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resource s/spring-beans-2.5.xsd iii.Key Type: Schema Location iv.Key: https://www.sodocs.net/doc/937166140.html,/schema/beans/spring-beans-2.5.xsd 2.注入类型 a)Spring_0300_IOC_Injection_Type b)setter(重要) c)构造方法(可以忘记) d)接口注入(可以忘记) 3.id vs. name a)Spring_0400_IOC_Id_Name b)name可以用特殊字符 4.简单属性的注入 a)Spring_0500_IOC_SimpleProperty b) 目录 JAVA自学之路一: 学会选择 (1) JAVA自学之路二: JAVA自学路线图 (2) JAVA自学之路三: 要动手 (3) JAVA自学之路四: 要事为先 (4) JAVA自学之路五: 问题解决之道 (5) 1:要仔细的观察错误的现象,是的,要仔细 (5) 2:要仔细思考问题会出在哪些环节(重要) (6) 3:如何定位错误(重要)分析清楚有哪些环节之后,下一步就是定位到底什么环节出错了。 (6) 4:如果还不行,google吧 (7) 5:什么?还不行?那么就BBS吧 (7) 6:还解决不了?问老师吧,这个只能是在你参加了培训的前提下了。 (8) 7:还解决不了?天哪,是不是思路从根上就搞错了?写信给我,让我也学习一下,共同进步吧。 (8) JAVA自学之路六: 项目的自学 (8) JAVA自学之路七: 路线图明细 (9) 一:J2SE (9) 二:数据库(Oracle或者MySQL) (9) 三:JDBC (10) 四:HTML_CSS_JAVASCRIPT (10) 五:Servlet & JSP (10) 六:Struts (10) 七:XML (11) 八:Hibernate (11) 九:Spring (11) 十:EJB3.0 (11) 十一:至于SOA,对于自学的同学来说,暂时不用特别关注。 (12) JAVA自学之路一: 学会选择 为了就业,不少同学参加各种各样的培训。 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。 每个培训机构都会宣传自己的好处,并不能说明大的趋势。一些新闻文章很有可能是枪手写的,不必太过相信。国外背景的教师和课程,未必适合你。那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出一条路? 我讲一个通过招聘网站的观察方法。 可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如: https://www.sodocs.net/doc/937166140.html, https://www.sodocs.net/doc/937166140.html, https://www.sodocs.net/doc/937166140.html, https://www.sodocs.net/doc/937166140.html,/招聘频道https://www.sodocs.net/doc/937166140.html,,综合了各大招聘网站的数据。这些数据都是最真实不掺假的原始数据,你可以每隔一段时间搜索一次,一些规律就会被总结出来了。比如说我在https://www.sodocs.net/doc/937166140.html,中搜索java,全国大概提供了3万个职位。位然后要多翻几页,这样不仅能够看清楚大概有多少是有效的职位,而且还可以看清楚用人单位最关心的技能是什么,这个很重要,决定着你将来要花多少时间和精力在特定的知识点上,比如说swing,搜了一下,全国只有700个左右的职位,仔细读了一下,也并非全是有效的职位,花太多时间和精力在这个上面就不值得了,当然自己感兴趣或者为了研究的话另当别论。不过如果是为了快速的就业,把太多时间和精力花在很多职业生涯的前一、二年用不到的知识上就太可惜了。同时,并非某一个行业的职位数目少,就不能当作一个方向进行选择,比如.NET,我搜索到的职位数是1.6万左右,比java少,是不是就选java 了呢?不一定,因为java职位虽然多,但是可能竞争者可能也多,有些方向虽然职位数不多,但是和你竞争这些职位的人数量也少,不见得就不能选择。不过,如果某一个方向的职位数目过少,你可就要小心了,选择这样的方向风险会非常大,如J2ME。 我个人觉得java/J2EE、.net、嵌入式开发是不错的三个方向。 如果非要在java和.net中选择的话,我个人是推荐java的,原因: 1:Java能够开发linux、unix服务器上的程序 2:JavaEE和.NET在企业应用方面的关注点是差不多的,但是学习了java如果将来想转到.net上会比较简单,几天的学习然后上手开发应该是问题不大的,但是反之就不行了。 当然如果有了些经验之后,你就会发现语言或者平台不再是技术上的阻碍,一些原理性的东西学到手,然后再加上项目经验,使用什么平台,反而不是最重要的。不过如果非要用一种平台进入企业开发的领域,至少在目前,2007年9月,我推荐java。 完全可以不同意我的观点,但是无庸置疑,如果是为了就业,多到招聘网站阅读阅读职位的信息,对你将来的方向和学习是大有益处的。选择是最痛苦的,看看《天生购物狂》中的刘青云就知道了,不过既然无法逃避,就作出自己的选择吧。每个人都会受到别人的影响,在作出决定之前,要想尽各种办法让自己理性一些吧。这样,你的选择会离正确的方向更近一些。 JAVA自学之路二: JAVA自学路线图 有不少的同学发信给我,和我探讨java的自学过程应该是什么样的,毕竟有很多人因为各种各样的原因不能参加培训。我试着给出自己的见解,抛砖引玉吧。这个路线图是给那些为了就业的人准备的,如果只是兴趣,不一定照这个走。这里只是讲了路线图,关于路线中的各个阶段,学到什么程度,如何学习等,可以参考后面的JAVA自学之路七:《路线图明细》。 尚学堂科技.马士兵.JAVA.系列视频教程 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重要说明 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_递归补充 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_基础语法 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第03章_面向对象 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第04章_异常处理 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_ 第05章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第06章_常用类 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第08章_IO 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第09章_线程 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI 尚学堂科技_马士兵_JAVA 视频教程_J2SE_5.0_专题_日期处理 尚学堂科技_马士兵_JAVA视频教程_J2SE_专题_正则表达式 反射avi ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 第二部分:j2se练习项目视频内容包括: 尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse 尚学堂视频学习顺序(必看) 尚学堂视频学习顺序2009-04-22 21:19尚学堂科技_马士兵_JDK5.0下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第1章_JAVA简介_源代码_及重要说明 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第2章_基础语法 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第2章_递归补充 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第3章_面向对象 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第4章_异常处理 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第5章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第5章_数组 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第6章_常用类 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第7章_容器 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第8章_IO 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第9章_线程 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI 尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse 尚学堂科技_马士兵_坦克大战视频教程_java_eclipse 尚学堂科技_马士兵_坦克大战图片版 尚学堂科技_马士兵_坦克大战网络版视频教程 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_日期处理 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_正则表达式 尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版 尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程 尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程 尚学堂科技_马士兵_JAVA_系列视频教程_BBS_2007 尚学堂科技_马士兵_JAVA_网上商城项目视频讲解 尚学堂科技_马士兵_轻松愉快LINUX视频教程 尚学堂科技_马士兵_设计模式_01_Observer 尚学堂科技_王勇_JAVA视频教程_XML01_XML 尚学堂科技_王勇_JAVA视频教程_XML02_XSL 尚学堂科技_王勇_JAVA视频教程_XML03_DTD_Schema 尚学堂科技_王勇_JAVA视频教程_XML04_JDOM对XML文件的读取 尚学堂科技_王勇_JAVA视频教程_Struts01_源代码及重要说明 尚学堂科技_王勇_JAVA视频教程_Struts02_多层架构及MVC 尚学堂科技_王勇_JAVA视频教程_Struts03_第一个项目 尚学堂科技_王勇_JAVA视频教程_Struts04_小结及作业 尚学堂科技_王勇_JAVA视频教程_Struts05_Struts标签库 尚学堂科技_王勇_JAVA视频教程_Struts06_JSTL_EL表达式 尚学堂科技_王勇_JAVA视频教程_Struts07_JSTL_核心库 尚学堂科技_王勇_JAVA视频教程_Struts08_JSTL_格式化库及函数库马士兵 Java视频教学顺序
马士兵hibernate学习笔记(原版)-你信不信,我反正是信了
Java学习顺序讲解
尚学堂_马士兵 Java学习路线图_教学大纲_视频资源列表
马士兵hibernate文档 (个人完善版)
尚学堂java视频学习顺序(由十年整理)
马士兵Spring学习笔记2011
尚学堂视频教程马士兵Spring文档
马士兵视频观看顺序
马士兵视频列表及Java学习教学大纲【VIP专享】
马士兵Spring课堂笔记(超级详细版)
Hibernate_new(完整版)
马士兵Spring学习笔记
马士兵Java自学之路——(精华版)
尚学堂科技.马士兵.JAVA.系列视频教程 [全]
尚学堂视频学习顺序(必看)