第一步:新建一个web项目,导入相关的Jar文件(需要导入commans-logging.jar);
第二步:在src下新建META-INF/persistance.xml;
第三步:编写实体类Person.java;
第四步:编写Dao接口PersonDao.java和实现类PersonDaoImpl.java;
第五步:编写applicationContext.xml:
第六步:编写测试类
persistence.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="MySQLProduction" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/mydb" />
<property name="hibernate.max_fetch_depth" value="5" />
<property name="hibernate.jdbc.fetch_size" value="20" />
<property name="hibernate.jdbc.batch_size" value="10" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
</properties>
</persistence-unit>
</persistence>
applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:component-scan base-package="*"></context:component-scan>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="MySQLProduction"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="personDao" class="dao.PersonDaoImpl">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean id="personDaoByAnno" class="dao.PersonDaoImpl1"/>
</beans>
Person.java代码:
package domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="person")
public class Person {
private Integer id;
private String name;
public Person(String name) {
super();
this.name = name;
}
public Person() {
super();
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
PersonDao.java代码:
package dao;
import domain.Person;
public interface PersonDao {
void save(Person person) throws Exception;
}
PersonDaoImpl.java代码:
package dao;
import org.springframework.orm.jpa.support.JpaDaoSupport;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import domain.Person;
public class PersonDaoImpl extends JpaDaoSupport implements PersonDao {
@Transactional(readOnly=false,propagation=Propagation.REQUIRED)
public void save(Person person) throws Exception {
getJpaTemplate().persist(person);
}
}
实现类如果用标注还可以这样写:
package dao;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import domain.Person;
@Repository(value="personDaoByAnno")
public class PersonDaoImpl1 implements PersonDao {
private EntityManager em;
@PersistenceContext(unitName="MySQLProduction")
public void setEm(EntityManager em) {
this.em = em;
}
@Transactional(readOnly=false,propagation=Propagation.REQUIRED)
public void save(Person person) throws Exception {
em.persist(person);
}
}
测试类代码:
package test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import dao.PersonDao;
import domain.Person;
public class PersonTest {
@Test
public void save() throws Exception{
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//PersonDao dao = (PersonDao) ac.getBean("personDao");
PersonDao dao = (PersonDao) ac.getBean("personDaoByAnno");
dao.save(new Person("Hello World"));
}
}
注意:事务默认是不提交的,如果spring不对事务处理,运行没有问题,但数据库中没有值!
分享到:
相关推荐
Spring框架是Java开发中广泛使用的轻量级框架,它以其依赖...学习和理解"Spring4 HelloWorld",不仅能够帮助初学者掌握Spring的基本用法,也为进一步深入学习Spring的其他高级特性,如AOP、MVC、JPA等打下坚实基础。
如果运行一切正常,那么你会看到使用EJB 3.0组件与JPA技术层技术完成的Hello world演示应用。 注意:配置JBoss服务器和调试的动作参见readme.txt文档,有详细说明怎样匹配连接池,以及可能遇到的问题及解决办法。该...
NULL 博文链接:https://lihao312.iteye.com/blog/2075659
**JPA连接MySQL搭建HelloWorld示例代码** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它提供了一种面向对象的方式来操作数据库,使得开发人员可以使用Java对象而...
本篇文章将深入探讨“Spring之HelloWorld”,通过一个简单的示例介绍如何使用Spring框架构建应用程序。首先,我们来看一下Spring的核心概念。 Spring是一个开源的Java平台,它为构建基于Java的企业级应用提供了全面...
${greeting}">Hello World! ``` ##### 3. 返回模板视图 修改之前的 `QuickStartController` 类以返回视图: ```java import org.springframework.stereotype.Controller; import org.springframework.ui.Model...
3. **SpringData JPA的HelloWorld实现步骤** - 创建`pom.xml`文件,引入SpringBoot和SpringData JPA依赖。 - 定义`User`实体类,使用`@Entity`注解,并添加属性如`id`, `name`, `email`等。 - 创建`...
<result>/helloWorld.jsp ``` **2. web.xml**: - 配置Struts2的过滤器。 - 示例配置: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter....
至于压缩包中的“helloworld”文件,可能是一个简单的示例项目,通常会包含一个基础的Spring Data JPA配置,一个实体类,以及对应的Repository接口,用于展示Spring Data JPA的基本用法。通过查看这个例子,你可以更...
7. **测试**:运行项目,测试HelloWorld和登录功能,确保所有组件正常工作。 这个示例中的"SH"可能代表Spring和Hibernate的整合,具体实现可能包括"SH-config.xml"(Spring配置文件)、"SH-hibernate.cfg.xml"...
【Spring Boot HelloWorld】项目概述 Spring Boot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量的常用第三方库配置,如数据源、JPA、定时任务、缓存、消息、邮件等,...
spring-boot-helloWorld:spring-boot的helloWorld版本 spring-boot-mybaits-annotation:注解版本 spring-boot-mybaits-xml:xml配置版本 spring-boot-mybatis-mulidatasource:springboot+mybatis多数据源最简解决...
综上所述,"Spring Boot Hello World 入门源代码"演示了如何利用 Spring Boot 快速构建一个返回 JSON 的 Web 服务。这个过程中涉及到的核心概念包括 Spring Boot 框架、RESTful API 设计、HTTP 协议、以及 JSON 数据...
在本节中,我们将深入探讨"Spring Boot起步之Hello World"这一主题,这是学习Spring Boot框架的典型入门教程。Spring Boot是由Pivotal团队开发的一个框架,它旨在简化Spring应用程序的初始搭建以及开发过程,通过...
Spring3MVC-REST-HelloWorld 是一个基础的示例,用于展示如何在Spring框架的MVC模块中实现RESTful Web服务。这个实例是初学者理解Spring MVC与REST结合使用的理想起点。REST(Representational State Transfer)是一...
【HelloWorld.zip】是一个入门级的Spring开发项目压缩包,其中包含了使用JavaSpring框架构建的基础应用。这个项目旨在帮助初学者理解Spring的核心概念,并提供了一个实际的代码示例。使用JDK版本为12,意味着它遵循...
本示例主要介绍如何使用Maven3与JBPM4.4集成,并在MySQL数据库环境下实现一个简单的 HelloWorld 应用。JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了完整的BPM解决方案...
spring-boot-helloWorld:spring-boot的helloWorld版本 spring-boot-mybaits-annotation:注解版本 spring-boot-mybaits-xml:xml配置版本 spring-boot-mybatis-mulidatasource:springboot+mybatis多数据源最简...
7. **运行并测试**:启动Tomcat服务器,通过浏览器访问`http://localhost:8080/HelloWorld/hello`(假设你的请求映射为"/hello"),如果一切配置正确,你应该能看到“Hello World”显示在页面上。 通过这个简单的...
3. **Hello World示例**:通过编写一个简单的Controller,返回"Hello World",理解Spring MVC的工作原理。 4. **Maven/Gradle构建**:学习如何使用Maven或Gradle构建Spring Boot项目,添加起步依赖,管理项目依赖。...