- 浏览: 233979 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (105)
- JFreeChart (3)
- DbUtil (1)
- Struts2 (17)
- Ruby or Rails (4)
- Eclipse插件 (2)
- 英文一角 (2)
- IT生活 (7)
- 社会盘点 (0)
- Maven3 (3)
- Java (17)
- Jquery (12)
- Hibernate (8)
- Ajax (4)
- Oracle (2)
- SSH2 OA项目 (4)
- jsptags分页插件 (1)
- Javascript (4)
- Ubuntu (4)
- java Utils (1)
- JPA (2)
- sitemesh (1)
- Css (1)
- spring (3)
- 杂记 (5)
- Hibernate3连接池的配置 (0)
最新评论
-
天使建站:
http://www.aijquery.cn/Html/bia ...
jQuery获取及设置单选框,多选框,文本框内容 -
zjxkeven:
不错 不知道好不好用
java服务器状态监控实现 -
根号九加一:
能否发一份给我呢 邮箱是 zmh958@qq.com 谢谢! ...
SSH2项目搭建 -
23843492:
能否发一份给我:23843492@qq.com
SSH2项目搭建 -
jiangdaxian2003:
LZ求代码,谢谢,15914380151@139.com
SSH2项目搭建
linux下的Java开发环境折腾完了。在实际的项目开发过程中对JPA一直是情有独钟,今下午在家在linux环境下折腾了下Spring3+Hibernate3.6(Jpa)的整合,做了一个小DEMO。其实跟在XP环境下开发是大同小异,冇的什么神奇的地方。
1.环境的搭建
直接上图吧。有图有真相,来的更是在
首先是简单项目图结构,注意项目包的命名规范,清晰简单明了易懂。
Sping+Jpa 所需要的jar,这是一般开发者比较好奇的地方。刚学框架都一大堆的jar都直接往工程中放,也不知道一个所以然,老师说能用让工程能跑起来就行。对初学着当然是可行,但搞明白,心里更踏实
在写这个DEMO的时候都是从官网上来下的jar,一个个来整的做到jar的最简化。这里有不再折腾来,不是很清楚就度娘谷姐了。其实我是的。网络资源共享,浩瀚无边。
2.数据库实体类
所谓Spring+JPA整合,数据库实体当然是使用JPA的注解来玩来。
3.配置文件
beans.xml
web.xml
4.测试文件
直接上图:
5.注意
在linux中终端是分大小写的。所以在建数据库的时候注意大小写的区分。因为也是才刚开始来玩linux,不是很在行,也是在测试的时候出错来才有所了解与收获。
DEMO有想要的可以来call。
1.环境的搭建
直接上图吧。有图有真相,来的更是在
首先是简单项目图结构,注意项目包的命名规范,清晰简单明了易懂。
Sping+Jpa 所需要的jar,这是一般开发者比较好奇的地方。刚学框架都一大堆的jar都直接往工程中放,也不知道一个所以然,老师说能用让工程能跑起来就行。对初学着当然是可行,但搞明白,心里更踏实
在写这个DEMO的时候都是从官网上来下的jar,一个个来整的做到jar的最简化。这里有不再折腾来,不是很清楚就度娘谷姐了。其实我是的。网络资源共享,浩瀚无边。
2.数据库实体类
所谓Spring+JPA整合,数据库实体当然是使用JPA的注解来玩来。
package com.tq.bean.user; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @NamedQueries( { // 查询所以数据项 @NamedQuery(name = "Buyer.list", query = "SELECT b FROM Buyer b"), // 查询数据项总数 @NamedQuery(name = "Buyer.count", query = "SELECT count(b.id) FROM Buyer b"), // 查询此数据项是否存在 @NamedQuery(name = "Buyer.exists", query = "SELECT count(b.id) FROM Buyer b WHERE b.username = :username") }) public class Buyer implements Serializable { private static final long serialVersionUID = 8394979715028899027L; public static final String QUERY_LIST = "Buyer.list"; public static final String QUERY_COUNT = "Buyer.count"; public static final String QUERY_EXISTS = "Buyer.exists"; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Long id; /** 用户名 **/ @Column(length = 18) private String username;// 只允许字母/数字/下划线 /** 密码 **/ @Column(length = 32, nullable = false) private String password; /** 真实姓名 **/ @Column(length = 8) private String realname; /** 邮箱 **/ @Column(length = 50, nullable = false) private String email; /** 是否启动 **/ @Column(nullable = false) private Boolean visible = true; /** 注册时间 **/ @Temporal(TemporalType.TIMESTAMP) @Column(nullable = false) private Date regTime = new Date(); public Buyer() { } public Buyer(String username) { this.username = username; } public Buyer(String username, String password) { this.username = username; this.password = password; } public Buyer(String username, String password, String email) { this.username = username; this.password = password; this.email = email; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Date getRegTime() { return regTime; } public void setRegTime(Date regTime) { this.regTime = regTime; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRealname() { return realname; } public void setRealname(String realname) { this.realname = realname; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public void setVisible(Boolean visible) { this.visible = visible; } }
3.配置文件
beans.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 资源类配置文件 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.tq" /> <context:property-placeholder location="classpath:jdbc.properties" /> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="maxActive" value="100" /> <property name="maxWait" value="1000" /> <property name="poolPreparedStatements" value="true" /> <property name="defaultAutoCommit" value="true" /> </bean> <!-- 类工厂由spring管理 --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" /> <property name="persistenceUnitName" value="springJpa" /> <!-- 注入数据源bean到实体管理工厂bean --> <property name="dataSource" ref="dataSource" /> <property name="loadTimeWeaver"> <!-- 运行时植入 --> <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" /> </property> </bean> <!-- 事务由spring管理 --> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory"> <ref bean="entityManagerFactory" /> </property> </bean> <!-- 事务声明方式是注解 --> <tx:annotation-driven transaction-manager="transactionManager" /> <!-- 自动装载EntityManager --> <context:annotation-config /> </beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springJpa</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- log4j 必须要在最前面 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <context-param> <param-name>webAppRootKey</param-name> <param-value>webApp.root</param-value> </context-param> <!-- Spring初始化 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- <param-value> /WEB-INF/classes/**/applicationContext*.xml </param-value> --> <param-value>/WEB-INF/beans.xml</param-value> </context-param> <!-- Spring的监听 对Spring容器进行实例化 ,并把實例化存放在application的屬性中 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--过滤器 --> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>Spring OpenEntityManagerInViewFilter</filter-name> <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> <init-param> <param-name>entityManagerFactoryBeanName</param-name> <param-value>entityManagerFactory</param-value> </init-param> </filter> <filter-mapping> <filter-name>Spring OpenEntityManagerInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
4.测试文件
/** * @Title: BuyerTest.java * @Package: cn.itcast.junit.test * @Description: TODO(用一句话描述该文件做什么) * @author: 何枫 * @date: 2011-8-11 下午07:57:31 * @version: V1.0 */ package com.tq.junit.test; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.tq.bean.user.Buyer; import com.tq.service.buyer.BuyerService; /** * @Title: BuyerTest.java * @Package: cn.itcast.junit.test * @Description: TODO(用一句话描述该文件做什么) * @author: 何枫 * @date: 2011-8-11 下午07:57:31 * @version: V1.0 */ public class BuyerTest { public BuyerTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() { } @After public void tearDown() { } @Test public void save() { System.out.println("测试Spring3.05+JPA(Hibernate3.6)环境"); ApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml"); BuyerService buyerService = (BuyerService) cxt.getBean("buyerServiceBean"); for (int i = 0; i < 4; i++) { buyerService.save(new Buyer("ASAPX5" + i, "1987", "xiangyunzkf.net163@.com")); } } }
直接上图:
5.注意
在linux中终端是分大小写的。所以在建数据库的时候注意大小写的区分。因为也是才刚开始来玩linux,不是很在行,也是在测试的时候出错来才有所了解与收获。
DEMO有想要的可以来call。
发表评论
-
Hibernate一对多映射
2012-06-09 19:06 1493在关联关系的映射中使用最多的就是一对多的关联,一对多的关联分为 ... -
Hibernate3连接池配置
2012-06-05 11:54 1218Hibernate支持第三方的连接池,官方推荐的连接池是C3P ... -
Hibernate3连接池配置
2012-06-04 15:46 0Hibernate支持第三方的连接池,官方推荐的连接池是C3P ... -
ubuntu配置java开发环境详解
2011-08-11 16:40 1509因为一直在忙着搞项目的事情,一来比较忙,二来精力不足。ubun ... -
ububtu配置jdk详解
2011-07-17 11:06 2460经过一段时间的摸索和 ... -
jpa注解
2011-06-14 18:17 12571、@Entity(name="EntityNa ... -
org.hibernate.HibernateException: No CurrentSessionContext configured!
2011-04-11 00:39 3770今天在测试的时候遇到了org.hibernate.Hibern ... -
Hibernate连载二:Annotation注解AIP
2011-04-05 01:29 1476作为JPA Provider中最强大 ... -
hibernate连载三:Annotation注解数据库ID生成策略
2011-04-04 22:12 5059Hibernate的Annotation的主键ID生成策略有1 ... -
hibernate连载一
2011-04-03 01:15 938从今天起重新来重构hibernate的学习.这里只是把自己学的 ... -
Ubuntu 宽带 掉线 解决方案
2011-03-19 21:38 3055先说说 ADSL 的拨号 ... -
Hibernate业务处理增删查改
2011-02-22 23:59 1608Hibernate增删查该业务处理 package com.o ...
相关推荐
8. **Integration with Spring Boot**:在Spring Boot环境中,Spring Data JPA可以自动配置,大大简化了数据访问层的设置。 压缩包中的源代码可能包含了以下部分: - **实体(Entity)**:这些是JPA映射的Java类,...
3. **Repository接口**: 通过JPA的Repository接口,可以方便地执行CRUD(创建、读取、更新、删除)操作,与数据库交互。 总结来说,这个项目利用了Lucene作为全文检索引擎,Spring MVC负责Web应用的结构和控制,而...
【标题】"eclipse + struts2+sping + bootstrap+juqery-ui整合源码"涉及的关键技术栈包括Eclipse开发环境、Struts2框架、Spring框架、Bootstrap前端库以及jQuery UI组件库。这些技术在Java Web开发中占据着重要地位...
3. **Zookeeper**:Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。在此案例中,Zookeeper充当服务注册...
同时,还需要配置Proxool的连接池参数,确保在多线程环境下数据库连接的高效使用。MyEclipse作为集成开发环境,可以方便地导入并运行这个项目,让你直观地了解这四者协同工作的过程。 在实际开发中,这样的整合可以...
基于springboot+mysql+jpa+html实现商品销售信息系统(高分课程设计)项目已获导师指导并通过的95分的高分期末大作业...3.本项目所用环境: 开发工具:IDEA 编程语言:JDK1.8,HTML,CSS,JS,jQuery 数据库:mysql5.7以上
在`weixin_project`这个项目中,开发者可能已经完成了Spring、Spring MVC和Hibernate的整合工作,实现了数据的持久化、Web请求的处理以及业务逻辑的封装。下载这个项目后,你可以学习和研究如何在实际项目中有效地...
mybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvc
Sping Boot+Vue实现的前后端分离的管理系统,由微人事系统再开发而来。 通过leaflet+GIS实现3D地图的预览,包含人员管理 包含前后端代码以及数据库导入脚本,需要电脑上预置redis和RabbitMQ redis教程:...
SSH 框架集成,实现 简单的用户登陆和注册功能(内涵相关jar包 Sping4.1+Struts2.3+Hibernate4.3+MySQL驱动5.1)....注:内不包含MySQL数据库的相关表,建议运行环境在JDK 1.7以上。请考虑后在下载,以不便你的开发。
【初学者/大学生练手】【管理类系统快速开发框架模板】用户管理中心,React/umi+Sping boot+MyBatis Plus,正在完善ing
《轻量级J2EE企业应用实践-tructs+spring+hibernate整合开发》是一部深入探讨Java企业级应用开发的教程,特别是针对轻量级框架的整合使用。本部分内容聚焦于系列教程的第七章,可能涉及的是这些框架在实际项目中的...
### Struts+Spring+Hibernate整合入门详解 #### 一、基本概念 - **Struts**:作为基于MVC(Model-View-Controller)模式的Web应用框架,Struts已经成为了一个非常重要的工具。随着项目的演进,Struts 1 和 WebWork...
总的来说,"struts2+spring+mybatis整合jar"是一个包含所有整合所需库的集合,它使得开发者能够在Java Web环境中快速搭建起一个功能完善的系统。通过这种方式,开发者可以专注于业务逻辑的实现,而不是框架之间的...
3. **配置Hibernate**:设置hibernate.cfg.xml,定义数据库连接和实体映射。Spring可以通过HibernateTemplate或SessionFactory来透明地管理数据库操作。 4. **整合三者**:在Struts的Action中,通过Spring的依赖...
一、系统介绍 ...数据库框架:Sping Data JPA 数据库:MySql 项目构建工具:Maven 前端模板:html 3.本项目所用环境: 开发工具:IDEA 编程语言:JDK1.8,HTML,CSS,JS,jQuery 数据库:mysql5.7以上
《轻量级J2EE企业应用实践:Struts+Spring+Hibernate整合开发》是一本深入讲解如何在实际项目中高效地使用这三个框架进行集成开发的书籍。这本书的核心内容是介绍如何将Struts作为表现层框架,Spring作为业务层管理...
标题 "sping4+struts2+mybatis 的jar包" 描述了这个压缩包包含的是用于构建Java Web应用程序的核心库,主要涉及Spring框架的第四个版本(Spring 4)、Struts2框架以及MyBatis持久层框架。这些组件协同工作,能够帮助...
这个整合过程展示了如何将所有这些组件组合起来,形成一个完整的、支持Flex前端和Java后端的Web应用程序开发环境。整个流程涵盖了数据库设计、前后端通信配置、服务端业务逻辑开发以及客户端UI设计等多个方面,是...
《轻量级J2EE企业应用实践:Struts+Spring+Hibernate整合开发》是一本深入讲解如何在J2EE环境中采用轻量级框架进行企业级应用开发的书籍。SSH(Struts、Spring、Hibernate)是Java开发中的经典组合,它们分别负责MVC...