




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Sp ring 1. spring 概述 Spring的创始人: Spring大大简化了 Java企业级开发,提供了强大,稳定的功能,又没有带来额外的 负担。Spring有两个主要目标:一是让现有技术更易于使用,二是促进良好的编程 习惯(或称为最佳实践)。 Spring是一个全面的解决方案。但它坚持一个原则:不重造轮子。已经有较好解决 方案的领域,Spring决不做重复性的实现,比如对象持久化和OR映射,Spring只是 对现有的JDBC,Hibernate,JPA等技术提供支持。 4)Spring框架包含许多特性,并被很好地组织在下图所示的七个模块中。下面将依次 介绍每个模块。 1) 2)
2、3) Rod Joh nson。 Spring AOP Source dfivcl M eta data AOP infrastructure Spring ORM Hibernate sippori tBdls support JDO Silicon Spring Web WetApplicahonCqriltxt iMuUpart feSoKef HWot iilhhes Spring DAO Ir-anMction infrastructure JO6C Bup冲rt QAO supfjort Spring Context Ap(4icEiiioiii cignrejrt Ul supp
3、vt Validation JNDL EJ6 suppDft arxl remodeling Mnil Spring Web MVC Web 仙 C FrainewDfk W Bea nF actory bea n = new XmlBea nF actory(resource); 以上两个方法都是创建 getBea n( Stri ng)方法取得 AppIicationContext 的方法: ApplicationContext ctx=new ClassPathXmlApplicationContext(Spring.xml ); bean工厂,此工厂将从XML文件中读取 bean定义。
4、通过使用 bean的实例。一般最好不要用。这样可以避免对 Spring API的依赖。 1) Spring DAO Spring提供的 的数据访问技术, 在这些持久化技术间切换, 的异常。 DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同 如JDBC,Hibernate或者JDO,JPA等。它不仅可以让你方便地 而且让你在编码的时候不用考虑处理各种技术中特定 Hibernate, Spring提供了一套抽象DAO类供你扩展。这些抽象类提供了一些方法, 通过它们你可以获得与你当前使用的数据访问技术相关的数据源和其他配置信 息。 Dao支持类: JdbcDaoSupport - JD
5、BC数据访问对象的基类。需要一个DataSource,同时为 子类提供 JdbcTemplate。 HibernateDaoSupport - Hibernate 数据访问 对象的基类。需 要一个 SessionFactory,同时为子类提供HibernateTemplate。也可以选择直接通过提供一 个HibernateTemplate来初始化,这样就可以重用后者的设置,例如SessionFactory, flush 模式,异常翻译器( exception translator) 等等。 JdoDaoSupport - JDO 数据访 问对 P ersiste nceMa nagerFact
6、ory,同时为子类提供 象的基类。 需要设置一个 JdoTe mp late。 Jp aDaoSu pport - JPA数据访问对象的基类。 同时 为子类提供 JpaTemplate。 下面我们举个例子来看看Spring JdbcTemplate的使用: 需要一个 EntityManagerFactory , /* *查询所有用户信息 p ublic private p ublic */ classUserDaol mplexte ndsJdbcDaoSu pp ortimp leme ntslUserDao amedParameterJdbcTemplate namet; List sea
7、rchAllUser() List list= new ArrayListO; Stri ng sql= list= this select * from t_user new RowMa pper() .getJdbcTe mp lateO.query(sql, /实现RowMapper 里面的方法,他负责对ResultSet的处理返回一个对象,这个对象我 们对他进行了打包,每一个User对象里面存了用户名和密码. P ublicObject map Row(ResultSet rs, int rown um) throwsSQLExce pti on User user= new User
8、(); user.setld(rs.getl nt( user.setName(rs.getStri ng( user.set Password(rs.getStri ng( user.setBirthday(rs.getDate( user.setAddress(rs.getStri ng( user.setState(rs.getI nt( id); name); p assword birthday address state ); ); ); ); retur nuser; ); return list; 说明:在这个UserDaolmpl类中继承了 JdbcDaoSupport类,这
9、个类最重要的功能就是使 子类可以通过.getJdbcTemplate()方法,获得 JdbcTemplate对象。那么你会自动的从 JdbcDaoSupport类中继承了 setDataSource() 方法,JdbcTemplate 是 Spring JDBC 框架 中最重要的类,它简化了 JDBC的使用,有助于避免常见的错误,比如忘记关闭数据连接。 /* *保存用户 *以传统(?)为占位符 */ int saveUser(User user) public dt =this.getJdbcTe mp lateO; Stri ng sql=in sert into t_user(id ,n
10、ame ,p assword,birthday,address,state) values(?,?,?,?,?,?) int uid= dt .update(sqL new Objectl nteger.valueOf(user.getld(),user.getName(),user.get Passwor d(),user.getBirthday(),user.getAddress(),I nteger.valueOf (user.getStat e(); return gid; /* *修改用户 *使用命名参数 例如(:name ) */ p ublicint up dateUser(Us
11、er user) n amedt =new Named ParameterJdbcTe mp late( String sql=up date t_user set n ame= :n ame ,p assword= :p assword,birthday= :birthday, address= :address,state= :state where id= :id SqlP arameterSource namedParam= new BeanPropertySqlParameterSource(user); int cou nt=n amedt .up date(sql, named
12、Param); this.getDataSourceO); 说明:使用命名参数必须使用Named ParameterJdbcTe mp late 参数里的 BeanPropertySqlParametersource,使用 javaBean 值。 类。在这个方法里使用命名 的属性作为参数的名称和 /* *使用SimpleJdbcCall类实现存储过程的调用 */ p ublicint up dateUser(User user) /通过这样的设置就可以无需担心返回参数值的大小写问题啦 this .getJdbcTe mp late().setResultsMa pCase Insen siti
13、ve( this . simpleCall=new SimpleJdbcCall(this .getJdbcTemplate() /存储过程包名称 .withCatalogName(lrq_user ) /存储过程名称 .with ProcedureName(UserU pdate); /创建一个SqlParametersource实现类来制定传入的参数 SqlP arameterSource sqlp aram=new MapSqlP arameterSource() true ); .addValue( v_n ame ,user.getName() .addValue( v_p assw
14、ord ,user.get Password。) .addValue( v_birthday ,user.getBirthdayO) .addValue( v_address ,user.getAddress() .addValue( v_state, ,user.getState() .addValue( v_id , user.getId(); /execute 方法接受传入的参数 simp leCall Map out= .execute(sq Ip aram); int code=In teger. if (code=0 p arse Int(out.get( errCode errM
15、sg )= n ull ) ).toStri ng(); else return 0; 说明: 调用存储过程必须使用 Sim pleJdbcCall 类。 沁园春 北国风光, 里冰封, 里雪飘。 望长城内外, 下,顿失滔滔。 惟余莽莽; 大河 山舞银蛇,原驰蜡象, 比高。 欲与天公试 须晴日,看红装素裹, 分外妖娆。 江山如此多娇,引无数英雄竞折腰 惜秦皇汉武,略输文采;唐宗宋 祖,稍逊风骚。 一代天骄,成吉思汗, 大雕。 只识弯弓射 俱往矣,数风流人物, V克 还看今朝。 出师表 两汉:诸葛亮 此诚危急存亡之秋也。然侍卫之臣 先帝创业未半而中道崩殂, 今天下三分,益州疲弊, 不懈于内,忠志之
16、士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光 先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。 宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其 刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。 侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚 以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。 能”,是以众议举宠为督: 将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰 愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。 亲贤臣,远小人,此先汉所以兴隆也; 亲小人,远贤臣,此后汉所以倾颓也。 先帝在时, 每与臣论此事,未尝不叹息痛恨于桓、 灵也。侍中、尚书、长史、参军,此悉贞良死节之臣, 愿陛下亲之、信之,则汉室之隆,可计日而待也 臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉 屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于 败军
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB31/T 1160-2019畜禽养殖过程细菌耐药性监测技术规范
- DB31/T 1111-2018采摘体验基地旅游服务规范
- DB31/T 1044-2017军队离休退休干部服务管理机构服务规范
- DB31/ 17-2012资源综合利用发电运行管理规范
- CAB 1023-2014便携式节水洗车器
- 2025设备采购合同书协议范本
- 2025年终止合同赔偿金标准是多少
- 环境污染治理项目管理考核试卷
- 2024年氨纶锦纶包覆丝资金申请报告代可行性研究报告
- 2024年水电站计算机监控装置项目资金需求报告代可行性研究报告
- 信息技术基础知识试题及答案
- 中国鸦胆子油行业市场现状调查及前景战略研判报告
- 2025雅思考试写作专项预测试卷:时态与语态运用试题
- 高中生物易错点
- 车库赠送协议书范本
- 旅拍安全协议书
- 会展危机事件与管理应对策略
- 2025年江苏南通苏北七市高三三模高考数学试卷试题(含答案详解)
- 2025届高考押题作文10篇(含题目)
- 顺丰公司外包协议合同书
- 安全意识提升策略试题及答案
评论
0/150
提交评论