Hibernate文件的配置:实现与数据库信息的交互
配置:pom.xml
<!-- hibernate 配置 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.9.Final</version> </dependency> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.8.0.GA</version> </dependency><!-- 数据库连接 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> </dependency>
配置:hibernate-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- dialect方言,用于配置生成针对那个数据库的SQL语句 本例使用MySQL的方言 --> <property name="dialect"> <!-- 方言类,Hibernate提供的 --> org.hibernate.dialect.MySQLDialect </property> <!-- 数据库信息配置 --> <property name="connection.url"> jdbc:mysql:///test </property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="show_sql">true</property> <!-- 在配置文件中关联映射文件 --> <mapping resource="User.hbm.xml"/> <mapping resource="Teacher.hbm.xml"/> <mapping resource="Student.hbm.xml"/> </session-factory></hibernate-configuration>
User实体类
package com.zhiyou100.entity;/** * 验证主键生成方式为UUID * */public class User { private String id; private String name;}
配置User对应的映射文件的User.hbm.xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <!-- table:对应数据库里的表名 ,维护与数据库中的关系 --> <class name="com.zhiyou100.entity.User" table="T_user"> <id name="id" column="id" type="string"> <!-- 设置主键生成方式为UUID --> <generator class="uuid"></generator> </id> <property name="name" column="name" type="string"></property> </class></hibernate-mapping>
测试类
package TestCase;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;import com.zhiyou100.entity.User;public class TestCase { public static Session openSession() { //读取数据库配置信息 Configuration cfg = new Configuration(); cfg.configure("hibernate-config.xml"); //获取Session对象 SessionFactory sf = cfg.buildSessionFactory(); Session session = sf.openSession(); return session; } @Test public void testUser() { //获取Session对象 Session session = TestCase.openSession(); //通过Session操作数据库 User user = (User) session.get(User.class, "2"); System.out.println(user); session.close(); }}
Struts2文件的配置:实现与前端的信息交互
配置:pom.xml
// struts的核心依赖 <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.5</version> </dependency>//具体可以看:https://www.cnblogs.com/zqyanywn/p/7139865.html <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.4.1</version> </dependency>//struts2 提供,简化开发,简化json转换 <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> <version>2.5.5</version> </dependency>
配置web.xml
<!-- Struts2主控制器的配置 --> <filter> <filter-name>mvc</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>mvc</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
配置struts.xml此文件名不能改为其他名字
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"><struts> <!-- package:包,用于对Action进行封装 name指的是开辟一个空间,名字是唯一的 namespace:命名空间,以及访问路径 extends:继承 struts-default.xml 调用Struts2的核心拦截器 --> <package name="demo" namespace="/demo" extends="struts-default"> <!--action:业务控制器,用于注册业务控制器组件 name:action名称,用于规定Action的访问路径 class:业务控制器组件,用于指定业务控制器对应的类 method:方法,用于指定访问当前action时要调用的方法 *请求URL:http://ip:port/projectName/namespace/ActionName.action --> <action name="/hello" class="com.zhiyou100.action.HelloAction" method="login" > <!--result:输出组件,用于转发、重定向、直接输出 name:名称,一个action下可以有多个result,彼此不能重名 默认值转发,元素内设置转发的页面 --> <result name="success">/WEB-INF/Welcome.jsp</result> <result name="fail">/nameform.jsp</result> </action> </package> </struts>
Action类文件
package com.zhiyou100.action;public class HelloAction { 这个name为前端获取的name private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }此方法中不能有参数,如果struts.xml文件里method中没有写方法名,下面的方法名就用 execute要不然就报java.lang.NoSuchMethodException: com.zhiyou100.action.LoginAction.login() public String login() { System.out.println("hello,struts2"); System.out.println("name: "+name); //用于测试 if ("monster".equalsIgnoreCase(name)) { return "fail"; } return "success"; }}