本文展示一个springboot通过jpa查询数据库的例子, springboot版本 1.5.9
首先引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
然后在application.properties中添加mysql相关的配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
model类
package com.bus365.root.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private Integer age;
private Integer addressid;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getAddressid() {
return addressid;
}
public void setAddressid(Integer addressid) {
this.addressid = addressid;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", addressid=" + addressid + "]";
}
}
controller层,使用restful风格路由
package com.bus365.root.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.bus365.root.model.User;
import com.bus365.root.service.UserService;
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user", method = { RequestMethod.PUT })
public String adduser(User user) {
String result = userService.add(user);
return result;
}
@RequestMapping(value = "/user", method = { RequestMethod.GET })
public String finduser(Long id) {
String find = userService.find(id);
return find;
}
@RequestMapping(value = "/user", method = { RequestMethod.POST })
public String updateuser(User user) {
String update = userService.update(user);
return update;
}
@RequestMapping(value = "/user", method = { RequestMethod.DELETE })
public String deleteuser(Long id) {
String delete = userService.delete(id);
return delete;
}
}
持久化dao层的UserDao类
package com.bus365.root.dao;
import java.io.Serializable;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import com.bus365.root.model.User;
public interface UserDao extends JpaRepository<User,Long>,JpaSpecificationExecutor<User>,Serializable {
@Query(value = "from User where name = :name")
List<User> findbyname(@Param("name") String name);
}
Service层
package com.bus365.root.service;
import com.bus365.root.model.User;
public interface UserService {
public String add(User user);
public String find(Long id);
public String delete(Long id);
public String update(User user);
}
package com.bus365.root.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bus365.root.Constants;
import com.bus365.root.dao.UserDao;
import com.bus365.root.model.User;
import com.bus365.root.service.UserService;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public String add(User user) {
User findOne = null;
try {
findOne = userDao.findOne(user.getId());
} catch (Exception e) {
}
if(findOne!=null) {
return Constants.FAIL;
}
try {
userDao.save(user);
} catch (Exception e) {
return Constants.FAIL;
}
return Constants.SUCCESS;
}
@Override
public String find(Long id) {
try {
userDao.findOne(id);
} catch (Exception e) {
return Constants.FAIL;
}
return Constants.SUCCESS;
}
@Override
public String delete(Long id) {
try {
userDao.delete(id);
} catch (Exception e) {
return Constants.FAIL;
}
return Constants.SUCCESS;
}
@Override
public String update(User user) {
try {
userDao.save(user);
} catch (Exception e) {
return Constants.FAIL;
}
return Constants.SUCCESS;
}
}
github项目地址 https://github.com/Christain1993/SpringBootIntegration