环境:jdk1.8,tomcat7,maven
框架:spring,spring mvc,spring data,jpa,mysql/oracle
首先浏览项目结构图
UTF-8
4.2.6.RELEASE
2.6.1
1.16.20
1.10.4.RELEASE
5.0.7.Final
1.0.9
junit
junit
3.8.1
test
org.springframework
spring-webmvc
${springframework.version}
org.springframework
spring-test
${springframework.version}
test
org.springframework
spring-core
${springframework.version}
org.springframework
spring-context
${springframework.version}
org.springframework
spring-beans
${springframework.version}
org.springframework
spring-jdbc
${springframework.version}
com.oracle
ojdbc14
10.2.0.4.0
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}
c3p0
c3p0
0.9.1.2
org.mybatis
mybatis
3.4.1
org.mybatis
mybatis-spring
1.3.0
log4j
log4j
1.2.17
org.apache.logging.log4j
log4j-core
2.0
org.apache.logging.log4j
log4j-api
2.0
com.alibaba
fastjson
1.1.41
org.aspectj
aspectjweaver
1.8.4
jstl
jstl
1.2
commons-fileupload
commons-fileupload
1.3.1
org.projectlombok
lombok
${lombok.version}
provided
org.springframework.data
spring-data-jpa
${springdatajpa.version}
org.apache.commons
commons-pool2
2.0
org.hibernate
hibernate-core
${hibernate.version}
org.hibernate
hibernate-entitymanager
${hibernate.version}
org.hibernate
hibernate-ehcache
${hibernate.version}
com.alibaba
druid
${druid.version}
mysql
mysql-connector-java
5.1.38
ZIBShopping
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
contextConfigLocation
classpath:config/spring/spring-dao.xml
classpath:config/spring/spring-service.xml
org.springframework.web.context.ContextLoaderListener
spring
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:config/spring/spring-mvc.xml
1
spring
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
encodingFilter
/*
(1)在web.xml设置spring mvc前端控制器,加载指定的
config/spring/spring-mvc.xml
文件
(2)设置数据层dao配置文件,service配置文件
classpath:config/spring/spring-dao.xml
classpath:config/spring/spring-service.xml
(1)spring-dao.xml
org.hibernate.cfg.ImprovedNamingStrategy
update
true
true
org.hibernate.dialect.MySQL5InnoDBDialect
org.hibernate.cache.ehcache.EhCacheRegionFactory
true
true
(2)spring-service.xml
设置spring扫描的service包
(3)spring-mvc.xml
application/json;charset=UTF-8
utf-8
104857600
4096
1.创建entity
package com.ZIBShopping.dto;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "people")
public class People implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
// @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="generator")
// @SequenceGenerator(name="generator",sequenceName="user_sequence")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long id;
@Column(name="name",nullable=false)
private String name;
@Column(name = "phone",nullable=false)
private Long phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getPhone() {
return phone;
}
public void setPhone(Long phone) {
this.phone = phone;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
entity类中
// @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="generator")
// @SequenceGenerator(name="generator",sequenceName="user_sequence")
在oracle中可以用到,sequenceName是序列表名
2.dao数据层
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.ZIBShopping.dto.People;
@Repository
public interface IPeopleDao extends JpaRepository{
}
3.sercice层
@Service
public class UserServiceImpl implements UserService{
@Autowired
private IPeopleDao peopleDao;
@Transactional
public void save(People user) {
peopleDao.save(user);
}
}
save()方法是jpa中自带封装好的
4.controller层
@Controller
@RequestMapping("/test")
public class LoginAction {
@Autowired
private UserService userService;
@ResponseBody
@RequestMapping(value = "/index", method = RequestMethod.GET)
public Map index(HttpServletRequest request, HttpServletResponse response) throws SQLException {
People user2 = new People();
user2.setName("dk");
user2.setPhone(15555590133l);
userService.save(user2);
return map;
}
}
如果people的id主键存在,save()就是更新数据;
如果people的id为空,save()表示新添加一条数据