idea整合SSH框架

1、Spring引入

点击左侧的Spring

Additional Libraries and Framework里面选择Spring,Web Application, Struts2, Application Server(选择tomcat就可以了),Hibernate;

点击Next,输入项目名称;完成后等待IDEA下载依赖包

idea整合SSH框架_第1张图片

 

Next

测试spring是否可用

先创建TestService文件

idea整合SSH框架_第2张图片

在web,WEB-INF下写入bean

idea整合SSH框架_第3张图片

代码

class="com.yan.test.TestService" id="testService">

    name="name" value="spring">

 

 

最后创建SpringTest文件

idea整合SSH框架_第4张图片

package com.yan.test;

import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.FileSystemXmlApplicationContext;

public class
SpringTest {

   
public static void main(String[] args) {
        ApplicationContext ac =
new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml");
        
TestService ts = (TestService)ac.getBean("testService");
       
ts.hello();
   
}

}

 

最后出现

Spring测试成功

 

2、引入Hibernate

使用Hibernate,要引入的包有mysql-connector-java-5.1.47还有commons-dbcp2-2.1和commons-pool2-2.4.1;

可以直接使用IDEA的maven功能下载依赖包,然后直接引入;

操作为 File->project Structure->Libraries->点击右侧的加号->From maven; 然后输入对应的包名就可以了;对于这两个包我们可以直接打勾Download to,它们没有过多的依赖包下载,截图如下

idea整合SSH框架_第5张图片

idea整合SSH框架_第6张图片

 

在src下创建bean包,然后建立持久化类.这里主要是使用了IDEA的persistence下的OR映射功能;

 

建立数据库, 点击 IDEA最左下角的一个按钮,会弹出一些选项,然后选择Database,点击加号,选择Data Source -> MySQL, 进入后进行数据库的信息配置

idea整合SSH框架_第7张图片

idea整合SSH框架_第8张图片

idea整合SSH框架_第9张图片

idea整合SSH框架_第10张图片

 

为了可以使用Persistence的sessionFactory进行生成持久化映射,需要先配置applicationContext.xml,让其接管Hibernate的配置;操作如下,在applicationContext.xml里面加入如下的内容(password的值根据自己的数据库进行配置)如果没有进行这一步的话,在Persistence界面是不会出现sessionFactory的。

如果没有出现sessionFactory,参考https://blog.csdn.net/yj19961126/article/details/82658852



id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">

    name="driverClassName" value="com.mysql.jdbc.Driver">

    name="url" value="jdbc:mysql://localhost:3306/test">

    name="username" value="root"/>

    name="password" value="123"/>





id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

    name="dataSource" ref="dataSource">

    name="hibernateProperties">

        

            key="hibernate.dialect">org.hibernate.dialect.MySQLDialect

            key="hibernate.show_sql">true

            key="hibernate.connection.url">jdbc:mysql://localhost:3306/test

            key="hibernate.connection.driver_class">com.mysql.jdbc.Driver

        

    

 

进行持久化类生成,点击左下角的按钮, 选择Persistence; 在Persistence界面,选择下拉,右击sessionFactory->Generate Persistence Mapping; 相关截图如下;如果没有出现sessionFactory的话,可以下载查看下https://blog.csdn.net/yj19961126/article/details/82658852

idea整合SSH框架_第11张图片

在Generate Persistence Mapping界面, "Choose Data Source"选择我们一开始新建的TESTDB数据库, "Package"选择bean; "Database Schema Mapping"点击我们 建立的user表, 相关截图如下

idea整合SSH框架_第12张图片

idea整合SSH框架_第13张图片

Ok

建Service层

 

idea整合SSH框架_第14张图片

代码:

public interface UserService {



    public void add(User user);



}

 

idea整合SSH框架_第15张图片

代码

public class UserServiceImpl implements UserService {



    @Qualifier("sessionFactory")

    @Autowired

    private SessionFactory sessionFactory;



    public void setSessionFactory(SessionFactory sessionFactory) {

        this.sessionFactory = sessionFactory;

    }



    @Override

    public void add(User user) {

        Session s = sessionFactory.openSession();

        Transaction tx= s.beginTransaction();

        s.save(user);

        tx.commit();

    }

}

 

 

让Spring接管Hibernate的配置文件,时建立 bean

 

idea整合SSH框架_第16张图片

代码



id="user" class="com.yan.service.serviceImpl.UserServiceImpl">

    name="sessionFactory" ref="sessionFactory">

 

进行测试,修改test包下的hibernateTest.java,代码如下

idea整合SSH框架_第17张图片

代码

package com.yan.test;



import com.yan.bean.User;

import com.yan.service.UserService;

import com.yan.service.serviceImpl.UserServiceImpl;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;



public class HIbernateTest {



    public static void main(String[] args) {



        ApplicationContext ac = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml");



        UserService userService = (UserServiceImpl)ac.getBean("user");



        User user = new User();

        user.setUserId(1);

        user.setName("yan");

        user.setPhone("23123123");



        userService.add(user);

    }



}

结果出现以下即成功

3、struts2 引入并测试

要引入struts2,要先引入两个依赖,一个是struts2-spring-plugin-2.3.24, spring-web-3.0.5和log4j-1.2.14.jar; 对应前两个我们一样使用IDEA的maven功能进行下载,但是不要直接入我们的lib目录下,因为它会下载比较多的依赖;我们选择手工加入;先如下下载好,"Download to "不要打勾

idea整合SSH框架_第18张图片

struts2-spring-plugin和spring-web两个jar包从maven库中找出来,并且复制到项目lib下,并且右击两个jar包,"Add as Library";否则,web.xml中会报错,找不到jar包

idea整合SSH框架_第19张图片

log4j-1.2.14就相对简单,直接打勾Download to 就可以了

 

修改web/WEB-INF/web.xml文件,引入struts2,配置如下

idea整合SSH框架_第20张图片

没有ng,删掉即可,可能是版本原因

idea整合SSH框架_第21张图片





    org.springframework.web.context.ContextLoaderListener





    contextConfigLocation

    WEB-INF/applicationContext.xml

 

建一个action, 在src下加一个action包,然后新建一个UserAction.java文件

 

idea整合SSH框架_第22张图片

代码如下

package com.yan.action;



import com.opensymphony.xwork2.ActionSupport;

import com.yan.bean.User;

import com.yan.service.serviceImpl.UserServiceImpl;

import org.springframework.beans.factory.annotation.Autowired;



public class UserAction extends ActionSupport {



    private int userId;

    private String userName;

    private String userPhone;



    @Autowired

    private UserServiceImpl userService;



    public int getUserId() {

        return userId;

    }



    public void setUserId(int userId) {

        this.userId = userId;

    }



    public String getUserName() {

        return userName;

    }



    public void setUserName(String userName) {

        this.userName = userName;

    }



    public String getUserPhone() {

        return userPhone;

    }



    public void setUserPhone(String userPhone) {

        this.userPhone = userPhone;

    }



    public String add(){

        User user = new User();

        user.setUserId(getUserId());

        user.setName(getUserName());

        user.setPhone(getUserPhone());

        userService.add(user);

        return SUCCESS;

    }



    public void setUserService(UserServiceImpl userService) {

        this.userService = userService;

    }

}

 

在web/WEB-INF下的applicationContext.xml下加入一个新的bean,内容如下

idea整合SSH框架_第23张图片

id="userAction" class="com.yan.action.UserAction">

    name="userService" ref="user">

Name 对应Action中的service 的实例对象

idea整合SSH框架_第24张图片

在src下的struts.xml下进行如下修改,

idea整合SSH框架_第25张图片





name="struts.objectFactory" value="spring" />





name="user" namespace="/user" extends="struts-default">

    name="add" class="userAction" method="add">

        name="success">/success.jsp

    

Method中add必须与Action中方法一致

idea整合SSH框架_第26张图片

否则会报错

 

在web目录下加入index.jsp和success.jsp文件

idea整合SSH框架_第27张图片

idea整合SSH框架_第28张图片

 

特别注意:引入新的包的话,直接运行的话,可能会有包没有引入成功的问题,可以到File->Project Structure->Artifacts 查看,在右边的最下边如果出现一个fix 按钮的话,就点击,然后点击 add All

 

如果正常的话,点击运行,相关截图如下,图的最右边的运行按钮,记得將对象从Test切换为Tomcat

idea整合SSH框架_第29张图片

 

成功的话,可以直接在浏览器,输入

http://localhost:8080/user/add?userId=2&userName=jun&userPhone=1232312

 

完整项目下载地址:链接:https://pan.baidu.com/s/1QDeYlRkOeSwmaiD1DCYYXg 密码:7lrm

本文参考博客:https://blog.csdn.net/bpgdzfj/article/details/80940150

感谢作者!!!

 

你可能感兴趣的:(java)