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";
}
}