BOS物流管理系统第2天内容安排:1、Springdata完成数据访问层2、封装dao项目使用STS3、登陆业务1.登陆业务1.1.使用PD根据大纲绘制用户表PowerDesigner点击菜单Database---genreateDatabase---点击预览注意:PD生成表,默认脚本自带顺引号设置一定去掉双引号否则逆向生成实体类失败!一般习惯脚本采用大写!Oracle数据库生成脚本!去掉双引号设置步骤:---EditcurrentDatabase选项点击生成脚本预览...引号就没有了!预览用户的脚本使用plsql工具完成脚本执行!开发中一般新建一个用户授予resouce+connect角色即可!plsql/develepor工具使用管理员创建用户并且授权ITCAST29开发bos采用oracleITCAST29用户!1.2.创建实体类Springdatajpa注解:@Entity@Table@Id@GenerateValue实体类的注册需要编写ApplicationContext.xml1.3.配置ApplicationContext连接池和Bean注册1:数据库配置文件2:配置连接池以及sessionFactory测试:启动tomcatcontext:property-placeholderlocation=classpath:jdbc.properties/beanid=dataSourceclass=com.mchange.v2.c3p0.ComboPooledDataSource!--配置连接数据库参数c3p0连接池--propertyname=driverClassvalue=${jdbc.driverClass}/propertypropertyname=jdbcUrlvalue=${jdbc.url}/propertypropertyname=uservalue=${jdbc.username}/propertypropertyname=passwordvalue=${jdbc.password}/property/bean!--连接池给sessionFactory注解版本--beanid=sessionFactoryclass=org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBeanpropertyname=dataSourceref=dataSource/property!--配置其他hibernate信息--propertyname=hibernatePropertiespropspropkey=hibernate.show_sqltrue/proppropkey=hibernate.format_sqltrue/proppropkey=hibernate.hbm2ddl.autovalidate/prop!--propkey=hibernate.hbm2ddl.autoupdate/prop--propkey=hibernate.dialect${jdbc.dialect}/prop/props/propertypropertyname=packagesToScanlistvaluecn.itcast.mavenbos.domain/value/list/property/beanoraclevalidate校验报错:数据库表字段类型numeric(10,2)----实体类BigDecimal类型.需要导入:hibernate-entity.jarspring-data.jpa依赖的jardependencygroupIdorg.hibernate/groupIdartifactIdhibernate-entitymanager/artifactIdversion${hibernate.version}/version/dependency1.4.配置Springdata学习1:引入spring-data.jar+依赖包参阅文档45页2:spring主配置文件(以前:学习hibernate需要连接池---SessionFactory)现在springdata不用sessionFactory+注解支持需要配置springdata名称空间缺少jpa名称空间参照background章节找到quickstartapplicationContext.xml引入名称空间beansxmlns=:xsi=:context=:aop=:jpa=:tx=:schemaLocation=://://://://://://://://://配置连接池!--使用Springdata--context:property-placeholderlocation=classpath:jdbc.properties/beanid=dataSourceclass=com.mchange.v2.c3p0.ComboPooledDataSource!--配置连接数据库参数c3p0连接池--propertyname=driverClassvalue=${jdbc.driverClass}/propertypropertyname=jdbcUrlvalue=${jdbc.url}/propertypropertyname=uservalue=${jdbc.username}/propertypropertyname=passwordvalue=${jdbc.password}/property/bean配置EntityManagerFactory参照文档==sessionFactorybeanid=entityManagerFactoryclass=org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBeanpropertyname=dataSourceref=dataSource/propertyname=packagesToScanvalue=cn.itcast.bos.domain/propertyname=jpaVendorAdapterbeanclass=org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapterpropertyname=databasevalue=ORACLE/!--自动建表--propertyname=generateDdlvalue=true/!--方言--propertyname=databasePlatformvalue=org.hibernate.dialect.Oracle10gDialect/property!--显示sql--propertyname=showSqlvalue=true/property/bean/property/bean配置:注解包扫描是pring注解扫描以及springdata支持dao扫描!--依赖注入扫描spring注解--context:componen-scanbase-package=cn.itcast.bos.service,cn.itcast.bos.web/!--扫描springdata继承dao接口--jpa:repositoriesbase-package=cn.itcast.bos.dao/jpa:repositories配置事务!--注解事务管理器--beanid=transactionManagerclass=org.springframework.orm.jpa.JpaTransactionManagerpropertyname=entityManagerFactoryref=entityManagerFactory//beantx:annotation-driventransaction-manager=transactionManager/测试:配置完成启动tomcat导入jar1.5.UserDao设计Reposistory接口最大接口!根据目录继承树结构---F4开发中XxxxDaoextendsJpaRepostoryUser/Staff,String/Integer即可springdata提供一套接口以及实现类编写UserDao继承指定接口即可完成cruduserDao完成!专门针对dao测试!1.6.UserService设计设计简单业务方法注解完成业务层实现测试业务层:UserDao扫描需要配置事务管理器采用springdata提供事务管理器开启spring注解扫描测试:1.7.JPQL查询说明1:根据方法名称自动生成jpql语句参照文档案例1测试业务层+junit业务层调用userDao:userDao业务方法必须符合命名规范测试:s2:命名查询推荐注解name查询要求:类名.方法名springdata自动扫描实体类找寻注解@NamedQuery(name=xxx)案例2:要求使用@NamedQuery注解在目标查询实体类上声明实体类添加注解springdata自动搜索类名.方法名称找寻对应HQL语句junit3:@Query注解的查询dao方法名称可以自定义注解中编写JPQL语句==HQL案例三演示4:@Query注解完成本地sql查询需要添加nativeQuery=true告知springdata书写语句本地sql5:参数注入查询@Param注解指定参数类似HQL占位符@Param(lastname')自动将参数值赋予:lastnamespringdatajpa查询结束!webaction抽取1.8.通用Acti