文档章节

springmvc + spring data jpa + hibernate 配置(2)

stonehome
 stonehome
发布于 2015/04/16 21:57
字数 706
阅读 76
收藏 2
#/cloudsafer/src/config/jdbc.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc\:mysql\://localhost\:3306/cloudsafer
jdbc.user=root
jdbc.password=rootabc
c3p0.minPoolSize=5
c3p0.maxPoolSize=30
c3p0.initialPoolSize=10
c3p0.maxIdleTime=60
c3p0.acquireIncrement=3
c3p0.idleConnectionTestPeriod=60
c3p0.acquireRetryAttempts=30
c3p0.breakAfterAcquireFailure=true
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=create
#/cloudsafer/src/config/log4j.properties
log4j.rootLogger=INFO,stdout,file
#\u5E94\u7528\u4E8E\u63A7\u5236\u53F0 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%c]-[%p] %m%n 
#\u5E94\u7528\u4E8E\u6587\u4EF6 
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=${spring_springmvc_jpa.root}/app.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.logger.org.hibernate.tool.hbm2ddl=debug
#/cloudsafer/src/config/messages.properties
username.not.empty=\u7528\u6237\u59D3\u540D\u4E0D\u80FD\u4E3A\u7A7A
#
#/cloudsafer/src/cn/nudt/cloudsafer/repository/UserRepository.java
package cn.nudt.cloudsafer.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import cn.nudt.cloudsafer.entity.User;
public interface UserRepository extends JpaRepository<User, Long> {}


#/cloudsafer/src/cn/nudt/cloudsafer/entity/User.java
#
package cn.nudt.cloudsafer.entity;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "t_user")
public class User {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 @Column(name = "userId")
 private Integer userId;
 @Column(name = "username")
 private String username;
 @Column(name = "email")
 private String email;
 @Column(name = "password")
 private String password;
 @Column(name = "level")
 private Integer level;
 @Temporal(TemporalType.DATE)
 @Column(name = "registerdate")
 private Date registerdate;
 @OneToOne(cascade = CascadeType.ALL, mappedBy = "user")
 private UserInfo userinfo;
 @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
 private List<CreditMachine> machines;
 @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
 private List<EncryptionFile> files;
 
 public Integer getUserId() {
  return userId;
 }
 public void setUserId(Integer userId) {
  this.userId = userId;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public Integer getLevel() {
  return level;
 }
 public void setLevel(Integer level) {
  this.level = level;
 }
 public Date getRegisterdate() {
  return registerdate;
 }
 public void setRegisterdate(Date registerdate) {
  this.registerdate = registerdate;
 }
 public UserInfo getUserinfo() {
  return userinfo;
 }
 public void setUserinfo(UserInfo userinfo) {
  this.userinfo = userinfo;
 }
 public List<CreditMachine> getMachines() {
  return machines;
 }
 public void setMachines(List<CreditMachine> machines) {
  this.machines = machines;
 }
 public List<EncryptionFile> getFiles() {
  return files;
 }
 public void setFiles(List<EncryptionFile> files) {
  this.files = files;
 }
 @ManyToOne
 private Administer admin;
 
 public Administer getAdmin() {
  return admin;
 }
 public void setAdmin(Administer admin) {
  this.admin = admin;
 }
}


#/cloudsafer/src/cn/nudt/cloudsafer/service/UserService.java
#
package cn.nudt.cloudsafer.service;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import cn.nudt.cloudsafer.entity.User;
import cn.nudt.cloudsafer.repository.UserRepository;
@Repository
@Transactional
class UserServiceImpl {
 @Autowired
 private UserRepository repository;
 @Transactional
 public User save(User user) {
  return repository.save(user);
 }
}

/cloudsafer/src/cn/nudt/cloudsafer/controller/UserController.java
#
package cn.nudt.cloudsafer.controller;
import java.io.File;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class UserController {
 @Autowired
 private HttpServletRequest request;
 private final String uploadTempDir = "WEB-INF/fileUpload/";
 @RequestMapping("hello")
 public ModelAndView hello() {
  ModelAndView mav = new ModelAndView("hellospringmvc");
  mav.addObject("name", "fengtao");
  return mav;
 }
 @RequestMapping("fileUpload")
 public String fileUpload(@RequestParam("file") MultipartFile file) {
  // 判断文件是否为空
  if (!file.isEmpty()) {
   try {
    // 文件保存路径
    String filePath = request.getSession().getServletContext()
      .getRealPath("/")
      + uploadTempDir + file.getOriginalFilename();
    // 转存文件
    file.transferTo(new File(filePath));
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  // 重定向
  return "redirect:/list";
 }
 @RequestMapping("list")
 public ModelAndView list() {
  String fileDir = request.getSession().getServletContext()
    .getRealPath("/")
    + uploadTempDir;
  ModelAndView mav = new ModelAndView("list");
  File uploadDest = new File(fileDir);
  String[] fileNames = uploadDest.list();
  mav.addObject("fileNames", fileNames);
  return mav;
 }
 @RequestMapping("download")
 public ResponseEntity<byte[]> download(
   @RequestParam(value = "fileName") String fileName)
   throws IOException {
  HttpHeaders headers = new HttpHeaders();
  headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
  headers.setContentDispositionFormData("attachment", fileName);
  String fileDir = request.getSession().getServletContext()
    .getRealPath("/")+ uploadTempDir;
  File downFile = new File(fileDir
    + new String(fileName.getBytes("ISO8859-1"), "UTF-8"));
  return new ResponseEntity<byte[]>(
    FileUtils.readFileToByteArray(downFile), headers,
    HttpStatus.CREATED);
 }
}


#/cloudsafer/src/test/UserTest.java
#
package test;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.junit.BeforeClass;
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.nudt.cloudsafer.entity.User;
import cn.nudt.cloudsafer.repository.UserRepository;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:config/applicationContext.xml",
  "classpath*:config/springMVC-servlet.xml" })
public class UserTest {
 @Autowired
 private UserRepository userDao;
 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
 }
 @Test
 public void test() {
  User u = new User();
  。。。



  userDao.save(u);
 }

© 著作权归作者所有

共有 人打赏支持
stonehome
粉丝 1
博文 6
码字总数 5148
作品 0
长沙
程序员
spring-data-jpa 入门资料

spring-data-jpa 入门资料 maven环境安装 <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId><version>1.4.3.RELEASE</version></dependenc......

WinnieChan
2013/12/18
0
0
Spring Boot [组件学习-Spring Data JPA]

导读: 在上篇文章中对Spring MVC常用的一些注解做了简要的说明,在这篇文章中主要对Spring Data JPA 做一个简要的说明,并附有一个简单的例子,可以体会到Spring Data JPA 的强大之处。 Sp...

yangrd
08/27
0
0
jdbc-jdbcTemplate-hibernate-jpa-springDataJpa系列(二)

1 前面的文章索引 - jdbc开发和事务的使用- spring-jdbcTemplate开发和事务的使用- hibernate的原生xml方式开发和事务的使用- hibernate的原生xml方式与spring集成以及事务的使用- hibernate...

乒乓狂魔
2015/04/23
0
5
spring data jpa 详解

本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现...

无敌小学僧
05/30
0
0
Spring MVC 框架搭建及详解

现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要...

星火逐月
2014/05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
6分钟前
0
0
sourcetree 离线免注册登录安装教程

Sourcetree是一个优秀的git可视化管理工具,深受开发者喜爱Sourcetree官网,但是在安装时需要谷歌账户登录,需要翻qiang才可以,此一点一直被人们所诟病。今天本教程就为大家提供离线免登陆安...

QQZZFT
35分钟前
1
0
使用 PostgreSQL 解决一个实际的统计分析问题

使用 PostgreSQL 解决一个实际的统计分析问题作者:老农民(刘启华)Email: 46715422@qq.com 之前有个朋友扔给我一个奇葩需求,他们公司之前做了一批问卷调查,全部都是统一格式的excel...

新疆老农民
38分钟前
5
0
TypeScript基础入门之高级类型的映射类型

转发 TypeScript基础入门之高级类型的映射类型 高级类型 映射类型 一个常见的任务是将一个已知的类型每个属性都变为可选的: interface PersonPartial {    name?: string;    age?...

durban
53分钟前
1
0
Dubbo源码分析(6):Dubbo内核实现之基于SPI思想Dubbo内核实现

SPI接口定义 定义了@SPI注解 package com.alibaba.dubbo.common.extension; import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.an......

郑加威
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部