文档章节

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

stonehome
 stonehome
发布于 2015/04/16 21:57
字数 706
阅读 78
收藏 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
Spring Data JPA 1.9.0 发布

Spring Data JPA 1.9.0 发布,此版本更新内容如下: * DATAJPA-787 - Release 1.9 GA (Gosling). * DATAJPA-785 - Make sure the build works with Hibernate 5 GA. * DATAJPA-779 - Update ......

淡漠悠然
2015/09/04
1K
0
jdbc-jdbcTemplate-hibernate-jpa-springDataJpa系列(二)

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

乒乓狂魔
2015/04/23
0
5
Spring Boot数据库操作之Spring Boot Data JPA

版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/jay100500/article/details/81264973 作者:谭东 JPA全称是Java Persistence API,即JAVA持久层API。可以讲JDK注解的...

谭东jay
07/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 眼看着这颗陨石砸了下来

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享Nachtblut的单曲《Antik》 《Antik》- Nachtblut 手机党少年们想听歌,请使劲儿戳(这里) @mr_chip :上海的初雪之后有点冷 ...

小小编辑
22分钟前
35
6
Confluence 6 修改导航显示选项

选择 子页面(Child pages)来在边栏中查看当前页面的子页面。 选择 页面树(Page tree)来查看整个空间的页面树,扩展当前的页面。 你也可以选择是否完全隐藏导航显示选项或者添加你希望可见...

honeymose
54分钟前
0
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部