Hibernate文件的配置:实现与数据库信息的交互

配置:pom.xml

  1. <!-- hibernate 配置 -->
  2. <dependency>
  3. <groupId>org.hibernate</groupId>
  4. <artifactId>hibernate-core</artifactId>
  5. <version>3.6.9.Final</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>javassist</groupId>
  9. <artifactId>javassist</artifactId>
  10. <version>3.8.0.GA</version>
  11. </dependency>
  12. <!-- 数据库连接 -->
  13. <dependency>
  14. <groupId>mysql</groupId>
  15. <artifactId>mysql-connector-java</artifactId>
  16. <version>5.1.41</version>
  17. </dependency>

配置:hibernate-config.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <session-factory>
  7. <!-- dialect方言,用于配置生成针对那个数据库的SQL语句 本例使用MySQL的方言 -->
  8. <property name="dialect">
  9. <!-- 方言类,Hibernate提供的 -->
  10. org.hibernate.dialect.MySQLDialect
  11. </property>
  12. <!-- 数据库信息配置 -->
  13. <property name="connection.url">
  14. jdbc:mysql:///test
  15. </property>
  16. <property name="connection.driver_class">
  17. com.mysql.jdbc.Driver
  18. </property>
  19. <property name="connection.username">root</property>
  20. <property name="connection.password">123456</property>
  21. <property name="show_sql">true</property>
  22. <!-- 在配置文件中关联映射文件 -->
  23. <mapping resource="User.hbm.xml"/>
  24. <mapping resource="Teacher.hbm.xml"/>
  25. <mapping resource="Student.hbm.xml"/>
  26. </session-factory>
  27. </hibernate-configuration>

User实体类

  1. package com.zhiyou100.entity;
  2. /**
  3. * 验证主键生成方式为UUID
  4. *
  5. */
  6. public class User {
  7. private String id;
  8. private String name;
  9. }

配置User对应的映射文件的User.hbm.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6. <!-- table:对应数据库里的表名 ,维护与数据库中的关系 -->
  7. <class name="com.zhiyou100.entity.User" table="T_user">
  8. <id name="id" column="id" type="string">
  9. <!-- 设置主键生成方式为UUID -->
  10. <generator class="uuid"></generator>
  11. </id>
  12. <property name="name" column="name" type="string"></property>
  13. </class>
  14. </hibernate-mapping>

测试类

  1. package TestCase;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.Transaction;
  5. import org.hibernate.cfg.Configuration;
  6. import org.junit.Test;
  7. import com.zhiyou100.entity.User;
  8. public class TestCase {
  9. public static Session openSession() {
  10. //读取数据库配置信息
  11. Configuration cfg = new Configuration();
  12. cfg.configure("hibernate-config.xml");
  13. //获取Session对象
  14. SessionFactory sf = cfg.buildSessionFactory();
  15. Session session = sf.openSession();
  16. return session;
  17. }
  18. @Test
  19. public void testUser() {
  20. //获取Session对象
  21. Session session = TestCase.openSession();
  22. //通过Session操作数据库
  23. User user = (User) session.get(User.class, "2");
  24. System.out.println(user);
  25. session.close();
  26. }
  27. }

Struts2文件的配置:实现与前端的信息交互

配置:pom.xml

  1. // struts的核心依赖
  2. <dependency>
  3. <groupId>org.apache.struts</groupId>
  4. <artifactId>struts2-core</artifactId>
  5. <version>2.5.5</version>
  6. </dependency>
  7. //具体可以看:https://www.cnblogs.com/zqyanywn/p/7139865.html
  8. <dependency>
  9. <groupId>org.apache.struts</groupId>
  10. <artifactId>struts2-spring-plugin</artifactId>
  11. <version>2.3.4.1</version>
  12. </dependency>
  13. //struts2 提供,简化开发,简化json转换
  14. <dependency>
  15. <groupId>org.apache.struts</groupId>
  16. <artifactId>struts2-json-plugin</artifactId>
  17. <version>2.5.5</version>
  18. </dependency>

配置web.xml

  1. <!-- Struts2主控制器的配置 -->
  2. <filter>
  3. <filter-name>mvc</filter-name>
  4. <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>mvc</filter-name>
  8. <url-pattern>/*</url-pattern>
  9. </filter-mapping>

配置struts.xml此文件名不能改为其他名字

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
  4. "http://struts.apache.org/dtds/struts-2.5.dtd">
  5. <struts>
  6. <!-- package:包,用于对Action进行封装
  7. name指的是开辟一个空间,名字是唯一的
  8. namespace:命名空间,以及访问路径
  9. extends:继承 struts-default.xml 调用Struts2的核心拦截器
  10. -->
  11. <package name="demo" namespace="/demo"
  12. extends="struts-default">
  13. <!--action:业务控制器,用于注册业务控制器组件
  14. name:action名称,用于规定Action的访问路径
  15. class:业务控制器组件,用于指定业务控制器对应的类
  16. method:方法,用于指定访问当前action时要调用的方法
  17. *请求URL:http://ip:port/projectName/namespace/ActionName.action
  18. -->
  19. <action name="/hello" class="com.zhiyou100.action.HelloAction" method="login" >
  20. <!--result:输出组件,用于转发、重定向、直接输出
  21. name:名称,一个action下可以有多个result,彼此不能重名
  22. 默认值转发,元素内设置转发的页面
  23. -->
  24. <result name="success">/WEB-INF/Welcome.jsp</result>
  25. <result name="fail">/nameform.jsp</result>
  26. </action>
  27. </package>
  28. </struts>

Action类文件

  1. package com.zhiyou100.action;
  2. public class HelloAction {
  3. 这个name为前端获取的name
  4. private String name;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. 此方法中不能有参数,如果struts.xml文件里method中没有写方法名,下面的方法名就用 execute
  12. 要不然就报java.lang.NoSuchMethodException: com.zhiyou100.action.LoginAction.login()
  13. public String login() {
  14. System.out.println("hello,struts2");
  15. System.out.println("name: "+name);
  16. //用于测试
  17. if ("monster".equalsIgnoreCase(name)) {
  18. return "fail";
  19. }
  20. return "success";
  21. }
  22. }