Skip to content

Commit b7c7bf5

Browse files
author
vison.cao
committed
tomcat container hibernate ok
embed-tomcat is wrong
1 parent a209baf commit b7c7bf5

File tree

10 files changed

+271
-62
lines changed

10 files changed

+271
-62
lines changed

pom.xml

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@
5656
<artifactId>tomcat-websocket</artifactId>
5757
<version>${tomcat.version}</version>
5858
</dependency>
59+
<dependency>
60+
<groupId>org.apache.tomcat.embed</groupId>
61+
<artifactId>tomcat-embed-el</artifactId>
62+
<version>${tomcat.version}</version>
63+
<scope>compile</scope>
64+
</dependency>
5965
<dependency>
6066
<groupId>org.reflections</groupId>
6167
<artifactId>reflections</artifactId>
@@ -76,16 +82,49 @@
7682
<dependency>
7783
<groupId>mysql</groupId>
7884
<artifactId>mysql-connector-java</artifactId>
79-
<version>5.1.26</version>
85+
<version>8.0.8-dmr</version>
8086
</dependency>
8187
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
8288
<dependency>
8389
<groupId>org.mybatis</groupId>
8490
<artifactId>mybatis</artifactId>
8591
<version>3.5.6</version>
8692
</dependency>
87-
88-
93+
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
94+
<dependency>
95+
<groupId>org.hibernate</groupId>
96+
<artifactId>hibernate-core</artifactId>
97+
<version>5.4.27.Final</version>
98+
</dependency>
99+
100+
<dependency>
101+
<groupId>javax.xml.bind</groupId>
102+
<artifactId>jaxb-api</artifactId>
103+
<version>2.3.0</version>
104+
</dependency>
105+
<dependency>
106+
<groupId>com.sun.activation</groupId>
107+
<artifactId>javax.activation</artifactId>
108+
<version>1.2.0</version>
109+
</dependency>
110+
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
111+
<dependency>
112+
<groupId>org.glassfish.jaxb</groupId>
113+
<artifactId>jaxb-runtime</artifactId>
114+
<version>2.3.3</version>
115+
</dependency>
116+
<!-- https://mvnrepository.com/artifact/antlr/antlr -->
117+
<dependency>
118+
<groupId>antlr</groupId>
119+
<artifactId>antlr</artifactId>
120+
<version>2.7.7</version>
121+
</dependency>
122+
<!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy -->
123+
<dependency>
124+
<groupId>net.bytebuddy</groupId>
125+
<artifactId>byte-buddy</artifactId>
126+
<version>1.10.17</version>
127+
</dependency>
89128

90129
</dependencies>
91130

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.vison.webmvc;
2+
3+
import com.vison.webmvc.entity.User;
4+
import com.vison.webmvc.framework.HibernateLoader;
5+
import org.hibernate.Session;
6+
import org.hibernate.Transaction;
7+
8+
/**
9+
*
10+
* @author vison.cao <visonforcoding@gmail.com>
11+
*/
12+
public class TestHibernate {
13+
14+
/**
15+
* @param args the command line arguments
16+
*/
17+
public static void main(String[] args) {
18+
// TODO code application logic here
19+
Transaction transaction = null;
20+
try (Session session = HibernateLoader.getSessionFactory().openSession()) {
21+
// start a transaction
22+
transaction = session.beginTransaction();
23+
User user = new User();
24+
user.setName("vison");
25+
user.setEmail("visonforcoding@gmail.com");
26+
user.setCountry("赛德克巴莱");
27+
// save the student object
28+
session.save(user);
29+
// commit transaction
30+
transaction.commit();
31+
session.close();
32+
} catch (Exception e) {
33+
if (transaction != null) {
34+
transaction.rollback();
35+
}
36+
e.printStackTrace();
37+
}
38+
}
39+
40+
}

src/main/java/com/vison/webmvc/config/DatabaseConfig.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
*/
1111
public class DatabaseConfig {
1212

13-
static String driver = "com.mysql.jdbc.Driver";
14-
static String url = "jdbc:mysql://localhost:3306/db_itdoc?useSSL=false";
15-
static String username = "root";
16-
static String password = "12345678";
13+
public static String driver = "com.mysql.jdbc.Driver";
14+
public static String url = "jdbc:mysql://localhost:3306/db_itdoc?useSSL=false";
15+
public static String username = "root";
16+
public static String password = "12345678";
1717

1818
public static DataSource getDataSource() {
1919
Properties properties = new Properties();

src/main/java/com/vison/webmvc/controller/UserController.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@
55
import com.vison.webmvc.Response;
66
import com.vison.webmvc.config.Log;
77
import com.vison.webmvc.dao.UserMapper;
8+
import com.vison.webmvc.framework.HibernateLoader;
89
import com.vison.webmvc.framework.MybatisLoader;
910
import com.vison.webmvc.framework.PostMapping;
11+
import javax.persistence.EntityManager;
12+
import javax.persistence.EntityManagerFactory;
1013
import javax.servlet.http.HttpServletRequest;
1114
import javax.servlet.http.HttpServletResponse;
1215
import org.apache.ibatis.session.SqlSession;
16+
import org.hibernate.Session;
17+
import org.hibernate.Transaction;
1318
//import org.hibernate.Session;
1419
//import org.hibernate.Transaction;
1520

@@ -40,15 +45,25 @@ public Response user(HttpServletRequest request, int id) {
4045
@PostMapping(path = "/user/add")
4146
public Response add(User user) {
4247
Log.info("request user", user);
43-
try {
44-
SqlSession session = MybatisLoader.getSqlSessionFactory().openSession();
45-
UserMapper mapper = session.getMapper(UserMapper.class);
46-
int id = mapper.insertUser(user);
47-
session.commit();
48-
Log.debug("返回", id);
49-
} catch (Exception e) {
50-
Log.error("保存失败", e);
51-
}
52-
return new Response(0, "保存", user);
48+
Transaction transaction = null;
49+
Session session = HibernateLoader.getSessionFactory().openSession(); // start a transaction
50+
transaction = session.beginTransaction();
51+
// save the student object
52+
session.save(user);
53+
// commit transaction
54+
transaction.commit();
55+
session.close();
56+
return new Response(0, "保存");
57+
}
58+
59+
@GetMapping(path = "/user/delete")
60+
public Response delete(int id) {
61+
Log.info("id", id);
62+
EntityManagerFactory emf = HibernateLoader.emf;
63+
EntityManager entityManager = emf.createEntityManager();
64+
User user = entityManager.find(User.class, id);
65+
Log.info("user", user);
66+
entityManager.remove(user);
67+
return new Response(0, "删除成功");
5368
}
5469
}

src/main/java/com/vison/webmvc/entity/User.java

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,64 @@
11
package com.vison.webmvc.entity;
22

3+
import javax.persistence.Column;
4+
import javax.persistence.Entity;
5+
import javax.persistence.GeneratedValue;
6+
import javax.persistence.GenerationType;
7+
import javax.persistence.Id;
8+
import javax.persistence.Table;
9+
310
/**
411
*
512
* @author vison.cao <visonforcoding@gmail.com>
613
*/
14+
import javax.persistence.Column;
15+
import javax.persistence.Entity;
16+
import javax.persistence.GeneratedValue;
17+
import javax.persistence.GenerationType;
18+
import javax.persistence.Id;
19+
import javax.persistence.Table;
20+
21+
/**
22+
* User.java This is a model class represents a User entity
23+
*
24+
* @author Ramesh Fadatare
25+
*
26+
*/
27+
@Entity
28+
@Table(name = "instructor")
729
public class User {
830

9-
private int id;
31+
@Id
32+
@GeneratedValue(strategy = GenerationType.IDENTITY)
33+
@Column(name = "id")
34+
protected int id;
1035

11-
private String name;
36+
@Column(name = "name")
37+
protected String name;
1238

13-
private String email;
39+
@Column(name = "email")
40+
protected String email;
41+
42+
@Column(name = "country")
43+
protected String country;
44+
45+
public User() {
46+
}
47+
48+
public User(String name, String email, String country) {
49+
super();
50+
this.name = name;
51+
this.email = email;
52+
this.country = country;
53+
}
54+
55+
public User(int id, String name, String email, String country) {
56+
super();
57+
this.id = id;
58+
this.name = name;
59+
this.email = email;
60+
this.country = country;
61+
}
1462

1563
public int getId() {
1664
return id;
@@ -36,4 +84,11 @@ public void setEmail(String email) {
3684
this.email = email;
3785
}
3886

87+
public String getCountry() {
88+
return country;
89+
}
90+
91+
public void setCountry(String country) {
92+
this.country = country;
93+
}
3994
}

src/main/java/com/vison/webmvc/framework/ContextServletListener.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@ public class ContextServletListener implements ServletContextListener {
2222
@Override
2323
public void contextInitialized(ServletContextEvent sce) {
2424
Log.info("应用程序启动...");
25+
ViewEngine.load(sce.getServletContext());
2526
String packageName = "com.vison.webmvc.controller";
2627
ConfigurationBuilder config = new ConfigurationBuilder();
2728
config.filterInputsBy(new FilterBuilder().includePackage(packageName));
2829
config.addUrls(ClasspathHelper.forPackage(packageName));
2930
config.setScanners(new MethodAnnotationsScanner());
3031
App.f = new Reflections(config);
31-
MybatisLoader.getSqlSessionFactory();
32+
// MybatisLoader.getSqlSessionFactory();
33+
// HibernateLoader.initEmf("itdoc");
34+
HibernateLoader.getSessionFactory();
3235
}
3336

3437
@Override

0 commit comments

Comments
 (0)