Maven + Spring + SpringMVC + Spring JPA <2>

原创 2013年12月03日 15:34:09

上一篇全是整的配置,这篇整点代码测试一下,创建下图中红框框住的文件,其中HelloWorldController.java和helloWorld.jsp是测试SpringMVC的,其他则是测试SpringJpa的。


HelloWorldController.java

package org.mice.test;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloWorldController {

    @RequestMapping("/helloWorld")
    public String helloWorld(Model model) {
    	
        model.addAttribute("message", "Hello World!");
        return "helloWorld";
    }
}

Student.java

package org.mice.test;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "STUDENT")
public class Student {
	@Id
	@GeneratedValue
	private Integer id;
	// 账号
	private String account;
	// 姓名
	private String name;
	// 性别
	private String sex;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
}
StudentRepository.java

package org.mice.test;

import org.springframework.data.repository.CrudRepository;

public interface StudentRepository extends CrudRepository<Student, Integer>{

}

StudentService.java

package org.mice.test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service("studentService")
public class StudentService {
	@Autowired
    private StudentRepository studentRepository;//注入UserRepository

    @Transactional
    public void saveStudent(Student student) {
    	studentRepository.save(student);
        
    }

    @Transactional(readOnly=true)
    public Student findStudentById(Integer id) {
        return studentRepository.findOne(id);
    }

    @Transactional
    public void updateStudent(Student student) {
    	studentRepository.save(student);
    }

    @Transactional
    public void deleteStudentById(Integer id) {
    	studentRepository.delete(id);
    }
}
Test.java

package org.mice.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentService studentService = (StudentService)Test.getBean("studentService");
		
		Student student = new Student();
		student.setName("chenph");
		student.setAccount("yueritian");
		student.setSex("1");
		studentService.saveStudent(student);
	}

	// 加载配置文件
	private static ApplicationContext _ctx = new ClassPathXmlApplicationContext(
			"config/applicationContext.xml");

	/**
	 * 获取bean对象
	 * 
	 * @param name
	 *            bean名称
	 * @return
	 */
	public static final Object getBean(String name) {
		return getContext().getBean(name);
	}

	public static ApplicationContext getContext() {
		return _ctx;
	}
}

helloWorld.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'helloWorld.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    This is my JSP page. ${message} <br>
  </body>
</html>

测试mvc:http://localhost:port/projectname/helloWorld.do

测试jpa:直接Run Test,查看数据库记录,运行这个的过程中会报“java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Lja”,网上资料说的很清楚是javaee包与hibernate-jpa的包冲突了,jpa这个jar里是包括上边提到的这个方法的,所以,对缺少这个方法的jar包做删除处理就可以了。

明后天有空就开始来看看mvc和jpa是如何用到实际需求中,比如json啦,多对多,一对多关系啦。


基于maven的多框架和多视图融合技术(Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、DWR)

该项目基于maven3.0构建的,项目中融合了Struts1、Struts2、Spring、SpringMVC、Hibernate、Ibatis、MyBatis、Spring Data JPA、Spr...

SpringMVC+JPA+Spring+maven框架搭建

  • 2017年08月24日 11:26
  • 58.53MB
  • 下载

J2EE项目系列(三)--Spring Data JPA+Spring+SpringMVC+Maven快速开发(2)多个第三方服务端接入之云旺IM

我们来继续这个系列,今天给大家讲下IM的云旺IM快速接入,当然也顺便推荐讲下其他的IM。 文章结构:(1)IM的介绍、第三方IM的推荐以及服务端接入配合App的大概流程;(2)云旺IM快速接入。...

SpringMVC+Spring+JPA+Maven框架搭建

  • 2014年09月03日 11:05
  • 405KB
  • 下载

maven+springmvc+spring data jpa

1、 maven创建web项目

J2EE项目系列(四)--SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis+Lucene+Redis+MAVEN)(1)框架整合构建

项目整体思路出来,打算糅合自己项目学过的东西,做一个整体的基本demo出来,与这个项目相关的博客会不断写出来给大家的,尽请期待。 文章结构:(1)SSM框架整合以及测试;(2)Redis单机版以及测试...

spring3+springmvc+jpa2+gae

  • 2017年03月21日 16:46
  • 44.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Maven + Spring + SpringMVC + Spring JPA <2>
举报原因:
原因补充:

(最多只允许输入30个字)