· 8 years ago · Jul 12, 2018, 05:48 AM
1<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2<%@ page contentType="text/html;charset=UTF-8" language="java" %>
3
4<html>
5<head>
6 <title>Read articles</title>
7</head>
8<body>
9<h1>Users</h1>
10<table id="UserTable">
11 <tr>
12 <th>ID</th>
13 <th>Username</th>
14 <th>Email</th>
15
16 </tr>
17 <c:forEach var="user" items="${message}">
18
19 <tr>
20 <td><c:out value="${user.id_user}"></c:out></td>
21
22 <td><c:out value="${user.username}"></c:out></td>
23
24 <td><c:out value="${user.email}"></c:out></td>
25 </tr>
26
27 </c:forEach>
28
29 <!--${json}-->
30
31</table>
32
33
34</body>
35</html>
36
37create database test;
38use test;
39
40create table if not exists User(
41id_user int auto_increment unique,
42username varchar(255),
43email varchar(255),
44primary key (id_user)
45);
46
47INSERT INTO User (id_user, username, email)
48VALUES ('1', 'alandalka','a@a.com');
49
50INSERT INTO User (id_user, username, email)
51VALUES ('2', 'ddafdf','b@b.com');
52
53select * from User;
54
55package test;
56
57import org.springframework.boot.SpringApplication;
58import org.springframework.boot.autoconfigure.SpringBootApplication;
59
60@SpringBootApplication
61public class App {
62
63 public static void main(String[] args) {
64 SpringApplication.run(App.class, args);
65
66 for(User u: UserDAO.getAllUsers())
67 System.out.println(u.toString());
68 }
69
70}
71
72package test;
73
74import java.util.Map;
75
76import org.springframework.beans.factory.annotation.Value;
77import org.springframework.stereotype.Controller;
78import org.springframework.ui.Model;
79import org.springframework.web.bind.annotation.RequestMapping;
80import org.springframework.web.bind.annotation.RequestMethod;
81import org.springframework.web.bind.annotation.RequestParam;
82import org.springframework.web.bind.annotation.RestController;
83
84@Controller
85public class HelloController {
86
87 @Value("${welcome.message:test}")
88 private String message = "Hello World";
89
90 @RequestMapping(name="/", method = RequestMethod.GET)
91 public String welcome(Model model) {
92 model.addAttribute("message", UserDAO.getAllUsers());
93 return "welcome";
94 }
95 @RequestMapping(name="/add", method = RequestMethod.POST)
96 public String addUser(@RequestParam String username, @RequestParam String email) {
97 UserDAO.addUser(username, email);
98 return "addUser";
99 }
100}
101
102package test;
103
104import java.io.Serializable;
105import javax.persistence.*;
106@Entity
107@Table(name="User")
108public class User implements Serializable{
109
110 @Id
111 @GeneratedValue(strategy = GenerationType.IDENTITY)
112 @Column(name = "id_user", nullable = false)
113 private int id_user;
114
115 @Column(name="username", nullable = false)
116 private String username;
117
118 @Column(name = "email", nullable = false)
119 private String email;
120
121
122
123 public User() {
124 }
125 public User(String username, String email) {
126 this.username=username;
127 this.email=email;
128 }
129 public int getId_user() {
130 return id_user;
131 }
132 public void setId_user(int id_user) {
133 this.id_user = id_user;
134 }
135 public String getUsername() {
136 return username;
137 }
138 public void setUsername(String username) {
139 this.username = username;
140 }
141 public String getEmail() {
142 return email;
143 }
144 public void setEmail(String email) {
145 this.email = email;
146 }
147 @Override
148 public String toString() {
149 return "User [id_user=" + id_user + ", username=" + username + ", email=" + email + "]";
150 }
151
152}
153
154package test;
155
156import java.util.ArrayList;
157import java.util.List;
158
159import javax.persistence.EntityManager;
160import javax.persistence.EntityManagerFactory;
161import javax.persistence.Persistence;
162
163import org.hibernate.Session;
164import org.hibernate.SessionFactory;
165import org.hibernate.cfg.Configuration;
166import javax.persistence.Query;
167
168public class UserDAO {
169
170 public static List<User> getAllUsers()
171 {
172 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
173 Session session = sessionFactory.openSession();
174
175 session.beginTransaction();
176 List<User> users = session.createSQLQuery("SELECT * FROM user").addEntity(User.class).list();
177 session.getTransaction().commit();
178
179 session.close();
180 sessionFactory.close();
181
182 return users;
183 }
184 public static void addUser(String username, String email) {
185 User user = new User(username, email);
186 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
187 Session session = sessionFactory.openSession();
188
189 session.beginTransaction();
190 session.save(user);
191 session.getTransaction().commit();
192
193 session.close();
194 sessionFactory.close();
195
196 }
197}
198
199<?xml version="1.0" encoding="UTF-8"?>
200<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
201 version="2.0">
202
203 <entity class="test.User">
204 <table name="User" schema="test" catalog=""/>
205 <attributes>
206 <id name="id_user">
207 <column name="id_user" precision="11"/>
208 </id>
209 <basic name="username">
210 <column name="username" nullable="false"/>
211 </basic>
212 <basic name="email">
213 <column name="email" nullable="false"/>
214 </basic>
215 </attributes>
216 </entity>
217</entity-mappings>
218
219<?xml version="1.0" encoding="UTF-8"?>
220
221<!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
222
223<hibernate-configuration>
224
225
226 <session-factory>
227
228 <property name="hibernate.dialect"> org.hibernate.dialect.MySQL55Dialect </property>
229
230 <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property>
231
232 <!-- Assume test is the database name -->
233
234
235 <property name="hibernate.connection.url"> jdbc:mysql://localhost/test </property>
236
237 <property name="hibernate.connection.username"> root </property>
238
239 <property name="hibernate.connection.password"> rootroot </property>
240
241 <property name="hibernate.hbm2ddl.auto"> update </property>
242
243 <mapping class="test.User"/>
244
245
246
247
248 </session-factory>
249
250</hibernate-configuration>
251
252spring.mvc.view.prefix: /WEB-INF/jsp/
253spring.mvc.view.suffix: .jsp
254
255welcome.message: Hello Mkyong
256
257<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
258 <modelVersion>4.0.0</modelVersion>
259 <groupId>test</groupId>
260 <artifactId>test</artifactId>
261 <version>0.0.1-SNAPSHOT</version>
262
263 <parent>
264 <groupId>org.springframework.boot</groupId>
265 <artifactId>spring-boot-starter-parent</artifactId>
266 <version>2.0.3.RELEASE</version>
267 </parent>
268
269 <dependencies>
270 <dependency>
271 <groupId>org.springframework.boot</groupId>
272 <artifactId>spring-boot-starter-web</artifactId>
273 </dependency>
274
275 <!-- Tomcat embedded container-->
276 <dependency>
277 <groupId>org.springframework.boot</groupId>
278 <artifactId>spring-boot-starter-tomcat</artifactId>
279 <scope>provided</scope>
280 </dependency>
281
282 <!-- JSTL for JSP -->
283 <dependency>
284 <groupId>javax.servlet</groupId>
285 <artifactId>jstl</artifactId>
286 </dependency>
287
288 <!-- Need this to compile JSP -->
289 <dependency>
290 <groupId>org.apache.tomcat.embed</groupId>
291 <artifactId>tomcat-embed-jasper</artifactId>
292 <scope>provided</scope>
293 </dependency>
294 <dependency>
295 <groupId>mysql</groupId>
296 <artifactId>mysql-connector-java</artifactId>
297 <version>5.1.46</version>
298 </dependency>
299 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
300 <dependency>
301 <groupId>org.hibernate</groupId>
302 <artifactId>hibernate-core</artifactId>
303 <version>5.2.16.Final</version>
304 </dependency>
305 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
306 <dependency>
307 <groupId>org.hibernate.javax.persistence</groupId>
308 <artifactId>hibernate-jpa-2.1-api</artifactId>
309 <version>1.0.2.Final</version>
310 </dependency>
311
312
313 </dependencies>
314
315 <build>
316 <plugins>
317 <!-- Package as an executable jar/war -->
318 <plugin>
319 <groupId>org.springframework.boot</groupId>
320 <artifactId>spring-boot-maven-plugin</artifactId>
321 </plugin>
322 </plugins>
323 </build>
324
325 <properties>
326 <java.version>1.8</java.version>
327 </properties>
328
329
330
331
332
333
334 </project>