1.引入jar包
1 <dependency> 2 <groupId>org.springframework</groupId> 3 <artifactId>spring-context</artifactId> 4 <version>5.0.6.RELEASE</version> 5 </dependency> 6 7 <dependency> 8 <groupId>org.springframework</groupId> 9 <artifactId>spring-core</artifactId> 10 <version>5.0.6.RELEASE</version> 11 </dependency> 12 13 <dependency> 14 <groupId>org.springframework</groupId> 15 <artifactId>spring-beans</artifactId> 16 <version>5.0.6.RELEASE</version> 17 </dependency> 18 19 <dependency> 20 <groupId>org.springframework</groupId> 21 <artifactId>spring-web</artifactId> 22 <version>5.0.6.RELEASE</version> 23 </dependency> 24 25 <dependency> 26 <groupId>org.springframework</groupId> 27 <artifactId>spring-webmvc</artifactId> 28 <version>5.0.6.RELEASE</version> 29 </dependency> 30 31 <dependency> 32 <groupId>org.springframework</groupId> 33 <artifactId>spring-aop</artifactId> 34 <version>5.0.6.RELEASE</version> 35 </dependency> 36 37 <dependency> 38 <groupId>org.springframework</groupId> 39 <artifactId>spring-orm</artifactId> 40 <version>5.0.6.RELEASE</version> 41 </dependency> 42 43 <dependency> 44 <groupId>org.springframework</groupId> 45 <artifactId>spring-jdbc</artifactId> 46 <version>5.0.5.RELEASE</version> 47 </dependency> 48 49 <dependency> 50 <groupId>org.springframework</groupId> 51 <artifactId>spring-tx</artifactId> 52 <version>5.0.5.RELEASE</version> 53 </dependency> 54 55 <!-- Tomcat服务器 --> 56 <dependency> 57 <groupId>org.apache.tomcat</groupId> 58 <artifactId>tomcat-catalina</artifactId> 59 <version>8.5.2</version> 60 </dependency> 61 62 <!-- hibernate --> 63 <dependency> 64 <groupId>org.hibernate</groupId> 65 <artifactId>hibernate-core</artifactId> 66 <version>5.2.16.Final</version> 67 </dependency> 68 69 <!-- mysql --> 70 <dependency> 71 <groupId>mysql</groupId> 72 <artifactId>mysql-connector-java</artifactId> 73 <version>8.0.11</version> 74 </dependency> 75 76 <!--dbcp --> 77 <dependency> 78 <groupId>org.apache.commons</groupId> 79 <artifactId>commons-dbcp2</artifactId> 80 <version>2.1.1</version> 81 </dependency> 82 83 <dependency> 84 <groupId>javax.servlet</groupId> 85 <artifactId>jstl</artifactId> 86 <version>1.2</version> 87 </dependency> 88 89 <dependency> 90 <groupId>org.slf4j</groupId> 91 <artifactId>slf4j-api</artifactId> 92 <version>1.8.0-beta2</version> 93 </dependency>
2.项目包结构
3.代码
1.MyWebInitializer类
1 package org.great.config; 2 3 import javax.servlet.Filter; 4 5 import org.springframework.web.filter.CharacterEncodingFilter; 6 import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; 7 8 public class MyWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ 9 10 @Override 11 protected Class<?>[] getRootConfigClasses() { 12 return new Class<?>[] {RootConfig.class}; 13 } 14 15 @Override 16 protected Class<?>[] getServletConfigClasses() { 17 return new Class<?>[] {WebConfig.class}; 18 } 19 20 @Override 21 protected String[] getServletMappings() { 22 return new String[] {"*.do"}; 23 } 24 25 @Override 26 protected Filter[] getServletFilters() { 27 return new Filter[] {new CharacterEncodingFilter("utf-8")}; 28 } 29 }
2.RootConfig类
1 package org.great.config; 2 3 import java.util.Properties; 4 5 import javax.sql.DataSource; 6 7 import org.apache.commons.dbcp2.BasicDataSource; 8 import org.hibernate.Session; 9 import org.springframework.context.annotation.Bean; 10 import org.springframework.context.annotation.ComponentScan; 11 import org.springframework.context.annotation.Configuration; 12 import org.springframework.context.annotation.Scope; 13 import org.springframework.context.annotation.ScopedProxyMode; 14 import org.springframework.orm.hibernate5.HibernateTransactionManager; 15 import org.springframework.orm.hibernate5.LocalSessionFactoryBean; 16 import org.springframework.scheduling.annotation.EnableScheduling; 17 import org.springframework.transaction.annotation.EnableTransactionManagement; 18 import org.springframework.web.context.WebApplicationContext; 19 20 @Configuration 21 @ComponentScan(basePackages= {"org.great.service"}) 22 @EnableTransactionManagement 23 public class RootConfig { 24 25 @Bean 26 public DataSource dataSource() { 27 BasicDataSource basicDataSource = new BasicDataSource(); 28 basicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); 29 basicDataSource.setUrl("jdbc:mysql://localhost:3306/test607?useSSL=false&serverTimezone=GMT"); 30 basicDataSource.setUsername("root"); 31 basicDataSource.setPassword(""); 32 return basicDataSource; 33 } 34 35 @Bean 36 public LocalSessionFactoryBean sessionFactory() { 37 LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean(); 38 localSessionFactoryBean.setDataSource(this.dataSource()); 39 40 Properties properties = new Properties(); 41 properties.setProperty("hibernate.show_sql", "true"); 42 properties.setProperty("hibernate.format_sql", "true"); 43 properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect"); 44 //properties.setProperty("hibernate.current_session_context_class", "thread"); 45 properties.setProperty("hibernate.current_session_context_class", "org.springframework.orm.hibernate5.SpringSessionContext"); 46 localSessionFactoryBean.setHibernateProperties(properties); 47 48 localSessionFactoryBean.setPackagesToScan("org.great.entity"); 49 return localSessionFactoryBean; 50 } 51 52 @Bean 53 public HibernateTransactionManager hManager() throws Exception { 54 HibernateTransactionManager hibernateTransactionManager = new HibernateTransactionManager(); 55 hibernateTransactionManager.setSessionFactory(this.sessionFactory().getObject()); 56 return hibernateTransactionManager; 57 } 58 59 @Bean 60 @Scope(proxyMode=ScopedProxyMode.TARGET_CLASS,value=WebApplicationContext.SCOPE_REQUEST) 61 public Session session() { 62 return this.sessionFactory().getObject().getCurrentSession(); 63 } 64 }
3.WebConfig类
1 package org.great.config; 2 3 import org.springframework.context.annotation.Bean; 4 import org.springframework.context.annotation.ComponentScan; 5 import org.springframework.context.annotation.Configuration; 6 import org.springframework.web.servlet.ViewResolver; 7 import org.springframework.web.servlet.config.annotation.EnableWebMvc; 8 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 9 import org.springframework.web.servlet.view.InternalResourceViewResolver; 10 11 @Configuration 12 @EnableWebMvc 13 @ComponentScan(basePackages= {"org.great.web"}) 14 public class WebConfig implements WebMvcConfigurer{ 15 16 @Bean 17 public ViewResolver viewResolver() { 18 InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver(); 19 internalResourceViewResolver.setPrefix("/WEB-INF/jsp/"); 20 internalResourceViewResolver.setSuffix(".jsp"); 21 return internalResourceViewResolver; 22 } 23 }
4.User实体类
1 package org.great.entity; 2 3 import javax.persistence.Entity; 4 import javax.persistence.GeneratedValue; 5 import javax.persistence.GenerationType; 6 import javax.persistence.Id; 7 import javax.persistence.Table; 8 9 @Entity 10 @Table(name="user") 11 public class User { 12 13 @Id 14 @GeneratedValue(strategy=GenerationType.IDENTITY) 15 private int id; 16 17 private String name; 18 19 private String age; 20 21 public int getId() { 22 return id; 23 } 24 25 public void setId(int id) { 26 this.id = id; 27 } 28 29 public String getName() { 30 return name; 31 } 32 33 public void setName(String name) { 34 this.name = name; 35 } 36 37 public String getAge() { 38 return age; 39 } 40 41 public void setAge(String age) { 42 this.age = age; 43 } 44 45 @Override 46 public String toString() { 47 return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; 48 } 49 50 public User() { 51 super(); 52 } 53 }
5.UserService类
1 package org.great.service; 2 3 import java.util.List; 4 5 import org.great.entity.User; 6 import org.hibernate.Session; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.scheduling.annotation.Scheduled; 9 import org.springframework.stereotype.Service; 10 import org.springframework.transaction.annotation.Transactional; 11 12 @Service 13 @Transactional 14 public class UserService { 15 16 @Autowired 17 private Session session; 18 19 public List<User> selectAllUsers(){ 20 List<User> userList = session.createQuery("from org.great.entity.User").list(); 21 return userList; 22 } 23 24 public void saveUser(User user) { 25 session.save(user); 26 } 27 }
6.UserControll类
1 package org.great.web; 2 3 import java.util.List; 4 5 import org.great.entity.User; 6 import org.great.service.UserService; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.stereotype.Controller; 9 import org.springframework.ui.Model; 10 import org.springframework.web.bind.annotation.RequestMapping; 11 12 @Controller 13 public class UserControll { 14 15 @Autowired 16 private UserService userService; 17 18 @RequestMapping("firstView") 19 public String firstView(Model model) { 20 List<User> selectAllUsers = userService.selectAllUsers(); 21 model.addAttribute("userList",selectAllUsers); 22 return "home"; 23 } 24 25 @RequestMapping("/saveUser") 26 public String saveUser() { 27 User user = new User(2,"刘六","32"); 28 userService.saveUser(user); 29 return "redirect:/firstView.do"; 30 } 31 }
7.home.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page isELIgnored="false" %> 4 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <title>Insert title here</title> 10 </head> 11 <body> 12 <table> 13 <tr> 14 <td>序号</td> 15 <td>名字</td> 16 <td>年龄</td> 17 </tr> 18 <c:forEach items="${userList}" var="user" varStatus="ind"> 19 <tr> 20 <td>${ind.count}</td> 21 <td>${user.name}</td> 22 <td>${user.age}</td> 23 </tr> 24 </c:forEach> 25 </table> 26 </body> 27 </html>