当前位置: 首页 > news >正文

首页重庆网站建设浏览器提醒 WordPress

首页重庆网站建设,浏览器提醒 WordPress,旅游的网站怎么做的,互联网技术专业Spring Data JPA初使用我们都知道Spring是一个非常优秀的JavaEE整合框架#xff0c;它尽可能的减少我们开发的工作量和难度。在持久层的业务逻辑方面#xff0c;Spring开源组织又给我们带来了同样优秀的Spring Data JPA。通常我们写持久层#xff0c;都是先写一个接口#…Spring Data JPA初使用  我们都知道Spring是一个非常优秀的JavaEE整合框架它尽可能的减少我们开发的工作量和难度。  在持久层的业务逻辑方面Spring开源组织又给我们带来了同样优秀的Spring Data JPA。  通常我们写持久层都是先写一个接口再写接口对应的实现类在实现类中进行持久层的业务逻辑处理。  而现在Spring Data JPA帮助我们自动完成了持久层的业务逻辑处理我们要做的仅仅是声明一个持久层接口。   1、下载开发所需要的发布包。    1spring-framework-3.1.2.RELEASE-with-docs.zip        下载地址http://www.springsource.org/spring-framework    2hibernate-release-4.1.6.Final.zip      下载地址http://olex.openlogic.com/packages/hibernate    3Spring Data JPA      Spring Data JPA        下载地址http://www.springsource.org/spring-data/jpa      Spring Data Commons        下载地址http://www.springsource.org/spring-data/commons    4其他一些依赖包可以从 http://ebr.springsource.com/repository/app/library 上查找下载   2、新建一个Web项目 spring-data-jpa把相应的jar包放到/WebRoot/WEB-INF/lib目录下。    我也没有挑选哪些是不需要的最后用到的jar如下antlr-2.7.7.jar com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.apache.commons.logging-1.1.1.jar com.springsource.org.aspectj.weaver-1.6.3.RELEASE.jar commons-lang3-3.1.jar dom4j-1.6.1.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.6.Final.jar hibernate-entitymanager-4.1.6.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar javassist-3.15.0-GA.jar jboss-logging-3.1.0.GA.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar log4j-1.2.17.jar mysql-connector-java-5.0.4-bin.jar org.springframework.aop-3.1.2.RELEASE.jar org.springframework.asm-3.1.2.RELEASE.jar org.springframework.aspects-3.1.2.RELEASE.jar org.springframework.beans-3.1.2.RELEASE.jar org.springframework.context-3.1.2.RELEASE.jar org.springframework.context.support-3.1.2.RELEASE.jar org.springframework.core-3.1.2.RELEASE.jar org.springframework.expression-3.1.2.RELEASE.jar org.springframework.instrument-3.1.2.RELEASE.jar org.springframework.instrument.tomcat-3.1.2.RELEASE.jar org.springframework.jdbc-3.1.2.RELEASE.jar org.springframework.jms-3.1.2.RELEASE.jar org.springframework.js.resources-2.3.0.RELEASE.jar org.springframework.orm-3.1.2.RELEASE.jar org.springframework.oxm-3.1.2.RELEASE.jar org.springframework.test-3.1.2.RELEASE.jar org.springframework.transaction-3.1.2.RELEASE.jar org.springframework.web-3.1.2.RELEASE.jar org.springframework.web.portlet-3.1.2.RELEASE.jar org.springframework.web.servlet-3.1.2.RELEASE.jar slf4j-api-1.6.6.jar slf4j-log4j12-1.6.6.jar spring-data-commons-core-1.3.0.M1.jar spring-data-jpa-1.0.2.RELEASE.jar    3、在MySql数据库中建立一个叫spring_data_jpa的数据库。create database spring_data_jpa default character set utf8;   4、JPA配置文件persistence.xml    1在src目录下建立一个叫META-INF的文件夹    2在META-INF文件夹下建立persistence.xml文件      persistence.xml内容如下?xml version1.0 encodingUTF-8? persistence version2.0 xmlnshttp://java.sun.com/xml/ns/persistence xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd persistence-unit namemyJPA transaction-typeRESOURCE_LOCAL providerorg.hibernate.ejb.HibernatePersistence/provider properties !--配置Hibernate方言 -- property namehibernate.dialect valueorg.hibernate.dialect.MySQL5Dialect / !--配置数据库驱动 -- property namehibernate.connection.driver_class valuecom.mysql.jdbc.Driver / !--配置数据库用户名 -- property namehibernate.connection.username valueroot / !--配置数据库密码 -- property namehibernate.connection.password valueroot / !--配置数据库url -- property namehibernate.connection.url valuejdbc:mysql://localhost:3306/spring_data_jpa?useUnicodetrueamp;characterEncodingUTF-8 / !--设置外连接抓取树的最大深度 -- property namehibernate.max_fetch_depth value3 / !--自动输出schema创建DDL语句 -- property namehibernate.hbm2ddl.auto valueupdate / property namehibernate.show_sql valuetrue / property namehibernate.format_sql valuetrue / property namejavax.persistence.validation.mode valuenone/ /properties /persistence-unit /persistence    5、Spring配置文件applicationContext.xml   在src目录下建立applicationContext.xml   applicationContext.xml内容如下?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/context xmlns:aophttp://www.springframework.org/schema/aop xmlns:txhttp://www.springframework.org/schema/tx xmlns:phttp://www.springframework.org/schema/p xmlns:cachehttp://www.springframework.org/schema/cache xmlns:jpahttp://www.springframework.org/schema/data/jpa xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd context:annotation-config / context:component-scan base-packagecn.luxh.app/ !-- 定义实体管理器工厂 -- bean identityManagerFactory classorg.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean property namepersistenceUnitName valuemyJPA/ /bean !-- 配置事务管理器 -- bean idtransactionManager classorg.springframework.orm.jpa.JpaTransactionManager property nameentityManagerFactory refentityManagerFactory / /bean !-- 启用 annotation事务-- tx:annotation-driven transaction-managertransactionManager/ !-- 配置Spring Data JPA扫描目录-- jpa:repositories base-packagecn.luxh.app.repository/ /beans    6、web.xml  web.xml内容如下?xml version1.0 encodingUTF-8? web-app version2.5 xmlnshttp://java.sun.com/xml/ns/javaee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd display-name/display-name !-- log4j配置 -- context-param param-namewebAppRootKey/param-name param-valuespringdatajpa.root/param-value /context-param context-param param-namelog4jConfigLocation/param-name param-valueclasspath:log4j.properties/param-value /context-param listener listener-classorg.springframework.web.util.Log4jConfigListener/listener-class /listener !-- 编码过滤器 -- filter filter-namecharacterEncodingFilter/filter-name filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class init-param param-nameencoding/param-name param-valueUTF-8/param-value /init-param /filter filter-mapping filter-namecharacterEncodingFilter/filter-name url-pattern/*/url-pattern /filter-mapping !-- 配置spring监听器 -- context-param param-namecontextConfigLocation/param-name param-valueclasspath:applicationContext.xml/param-value /context-param listener listener-classorg.springframework.web.context.ContextLoaderListener/listener-class /listener !-- 配置缓存清除监听器,负责处理由 JavaBean Introspector 功能而引起的缓存泄露 -- listener listener-classorg.springframework.web.util.IntrospectorCleanupListener/listener-class /listener welcome-file-list welcome-fileindex.jsp/welcome-file /welcome-file-list /web-app   7、日志配置    在src目录下建立log4j.properties文件    log4j.properties内容如下log4j.rootLoggerINFO,CONSOLE,FILE log4j.addivity.org.apachetrue # 应用于控制台 log4j.appender.CONSOLEorg.apache.log4j.ConsoleAppender log4j.appender.ThresholdINFO log4j.appender.CONSOLE.TargetSystem.out log4j.appender.CONSOLE.layoutorg.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n #log4j.appender.CONSOLE.layout.ConversionPattern[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n #应用于文件 log4j.appender.FILEorg.apache.log4j.DailyRollingFileAppender log4j.appender.FILE.File${springdatajpa.root}/springdatajpa.log log4j.appender.FILE.Appendtrue log4j.appender.FILE.layoutorg.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n     8、所有环境配完毕开始写一个Spring Data JPA 的增删改查    1建立相应的包                                                    2领域模型实体类Userpackage cn.luxh.app.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; /** * 用户信息 * author Luxh * 2012-8-30 */ Entity Table(namet_user) public class User { Id GeneratedValue private Integer id; //账号 private String account; //姓名 private String name; //密码 private String password; //省略 getter和setter方法 }    3声明持久层接口UserRepository    让UserRepository接口继承CrudRepositoryT,IDT是领域实体ID是领域实体的主键类型。CrudRepository实现了相应的增删改查方法。package cn.luxh.app.repository; import org.springframework.data.repository.CrudRepository; import cn.luxh.app.domain.User; /** * 用户持久层接口 * author Luxh * 2012-8-31 */ public interface UserRepository extends CrudRepositoryUser,Integer{ }    不再需要持久层接口实现类。     4业务层      一般多层架构是控制层调用业务层业务层再调用持久层。所以这里写个业务层。      a、业务层接口package cn.luxh.app.service; import cn.luxh.app.domain.User; /** * 用户业务接口 * author Luxh * 2012-8-31 */ public interface UserService { /** * 保存用户 * param user */ void saveUser(User user); /** * 根据id查找用户 * param id * return */ User findUserById(Integer id); /** * 更新用户 * param user */ void updateUser(User user); /** * 根据ID删除用户 * param id */ void deleteUserById(Integer id); }    b、业务层接口实现类package cn.luxh.app.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.luxh.app.domain.User; import cn.luxh.app.repository.UserRepository; /** * 用户业务服务实现类 * author Luxh * 2012-8-31 */ Service(userService) public class UserServiceImpl implements UserService{ Autowired private UserRepository userRepository;//注入UserRepository Override Transactional public void saveUser(User user) { userRepository.save(user); } Override Transactional(readOnlytrue) public User findUserById(Integer id) { return userRepository.findOne(id); } Override Transactional public void updateUser(User user) { userRepository.save(user); } Override Transactional public void deleteUserById(Integer id) { userRepository.delete(id); } }   9编写测试用例    在执行测试的时候发现如下错误Caused by: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode; at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:633) at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:268) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ... 51 more  网上说是新版本的Hibernate跟javaee.jar里面的JPA接口冲突了。  解决方法移除MyEclipse自带的Java EE 5 Libraries自己新建一个user libraries加入Java EE中的jsf-api.jar、jsf-impl.jar和jstl-1.2.jar再加入Tomcat中自带的     servlet-api.jar                                                    用servlet-api.jar替换掉javaee.jar就没问题了。  测试代码package cn.luxh.app.test; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import cn.luxh.app.domain.User; import cn.luxh.app.service.UserService; RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration({/applicationContext.xml}) public class UserTest { Autowired private UserService userService; //保存用户 Test public void testSaveUser() { User user new User(); user.setAccount(LiHuai); user.setName(李坏); user.setPassword(123456); userService.saveUser(user); } //根据id查找用户 Test public void testFindUserById() { Integer id 1; User user userService.findUserById(id); Assert.assertEquals(李坏,user.getName()); } //更新用户 Test public void testUpdateUser() { Integer id 1; User user userService.findUserById(id); user.setName(李寻欢); userService.updateUser(user); } //根据id删除用户 Test public void testDeleteUserById() { Integer id 1; userService.deleteUserById(id); } }     使用Spring Data JPA相当的简单我们只需要定义持久层的接口不需要编写实现代码。  步骤和注意点  1在spring配置文件中添加仓库接口的扫描路径 jpa:repositories base-packagecn.luxh.app.repository/  2编写领域实体需要按照JPA规范  3编写仓库RepositoryT,ID接口依靠Spring Data规范定义接口方法。     比如按照规范定义一个数据访问接口方法  ListUser findByName(String name);     Spring Data JPA 就会自动转化为 select u from User u where u.name ?1     可以使用的仓库接口有    Repository           是 Spring Data的一个核心接口它不提供任何方法开发者需要在自己定义的接口中声明需要的方法。    CrudRepository          继承Repository提供增删改查方法可以直接调用。    PagingAndSortingRepository    继承CrudRepository具有分页查询和排序功能    JpaRepository                         继承PagingAndSortingRepository针对JPA技术提供的接口    JpaSpecificationExecutor          可以执行原生SQL查询                                转载于:https://www.cnblogs.com/daniell003/p/3529940.html
http://www.pierceye.com/news/514427/

相关文章:

  • 网站建设不足之处2017网站设计尺寸
  • 网站架构招聘怎么免费的安装wordpress主题
  • 海天建设集团网站深圳西乡地铁站
  • 上海html5网站建设第九影院用wordpress版权信息
  • 东莞网站建设运营方案尺寸在线做图网站
  • 萍乡网站推广陕西省住房和城乡建设厅网站上查询
  • 南京市浦口区建设局网站多商户商城app开发
  • 网站设置不能通过链接访问中专网站建设与管理就业前景
  • 大连网站建设哪个公司好郑州最新通告
  • 如何自己搭建网站做装修的业务网站
  • app网站的优点手机自助建站永久免费
  • 搜索栏搜索网站?热?文市场调研流程
  • 外贸网站建设课本建设网站群的好处
  • 网站开发文献综述范文网络推广计划书格式
  • 有免费网站服务器吗在线美图
  • 电商网站设计的原则免费下载app软件下载大全
  • 餐饮网站建设优化建站wordpress copyright
  • 腾讯建站官网设计网页步骤
  • 网站建设三方合同范本wordpress数字链接出现404
  • 下载用的网站怎么做网站模板怎么使用教程
  • 没有网站 可以做百度口碑吗展馆的科普网站建设
  • 河北网站备案查询系统商城网站seo
  • 网站申请页面网站空间不够用怎么办
  • 网站开发最合适的搭配螺栓球网架
  • 广东网站建设排名凡科建站下载
  • 建设厅网站预算员报名时间网站建设策划书的编制
  • 厦门手机网站建设公司哪家好鲜花网站源码
  • 北京家居网站建设如何制作软件手机软件
  • 北京网站建设策划解决方案长沙建设工程造价网站
  • 北京网站设计公司价格阿里云wordpress插件