使用idea和maven搭建ssm框架

作为一名菜鸟 ,失败了n次终于成功搭建,在这里记录一下,以便自己和有需要的人参考

第一步:用maven创建项目呗 然后next


然后填上id,两个id可以相同 也可以不同 然后next


选择你的maven本地仓库目录,如果是第一次建立maven  速度会很慢,推荐使用阿里镜像,百度即可


然后就是填上你得项目名称,还有项目存放位置,点击finish


然后要等一段时间即可

建立项目后记得选择这里哦,这样你后面配置在pom里面的  maven就可以自动下载为你所用了


第二步:建立目录结构呗,如下


建目录之后建立Java源文件的时候会发现,咦?怎么不能新建Java文件呢?如下


不要慌张啦,这是因为新建的是文件夹,要配置一下啦,如下


或者呢,直接快捷键:Ctrl+Shift+Alt+s


后面建立测试目录也是这样改哦,就是绿色的那个啦,修改完成之后记得要Apply一下哦

这样Java目录下的就可以建立Java源文件啦

第三步:好了  准备工作完成,下面正菜来啦

这是pom.xml配置文件里面的内容

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <packaging>war</packaging>
  <!--这些其实对项目没影响-->
  <name>ssm-test</name>
  <groupId>sunhs-ssm</groupId>
  <artifactId>ssm-test</artifactId>
  <version>1.0-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.7</version>
        <configuration>
          <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>8888</port>
              <maxIdleTime>30000</maxIdleTime>
            </connector>
          </connectors>
          <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>
          <contextPath>/</contextPath>
        </configuration>
      </plugin>
    </plugins>
  </build>


  <properties>
    <!-- 设置项目编码编码 -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- spring版本号 -->
    <spring.version>4.3.5.RELEASE</spring.version>
    <!-- mybatis版本号 -->
    <mybatis.version>3.4.1</mybatis.version>
  </properties>

  <dependencies>
    <!--dependency>
      <groupId>sunhs-ssm</groupId>
      <artifactId>[the artifact id of the block to be mounted]</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency-->

    <!-- java ee -->
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
    </dependency>

    <!-- 单元测试 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>

    <!-- 实现slf4j接口并整合 -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.2</version>
    </dependency>

    <!-- JSON -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.7</version>
    </dependency>


    <!-- 数据库 --><!--如果你用的是Oracle的数据库,需要修改一下这里-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.41</version>
      <scope>runtime</scope>
    </dependency>

    <!-- 数据库连接池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

    <!-- MyBatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>

    <!-- mybatis/spring整合包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>

    <!-- Spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>

  </dependencies>

</project>

在pom里面配置上这些之后  maven就会自己加载这些jar包了,这里需要一些时间,不过并不影响别的操作,这样可以避免令人心烦的jar包冲突问题, 这也是使用maven的方便之处

然后是jdbc.properties属性文件里面的内容,记得改成你自己的数据库

jdbc.driver=com.mysql.jdbc.Driver
#数据库地址
jdbc.url=jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf8
#用户名
jdbc.username=root
#密码
jdbc.password=root 

至于为什么在见面都加上jdbc.  是为了避免可能的冲突,这里这要和后面的配置对应好了就行,不一定就是jdbc.也可以是别的

然后是mybatis的一点配置 mybaits-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 参考官网:http://www.mybatis.org/mybatis-3/zh/configuration.html#settings -->
<configuration>
    <!-- 全局配置 -->
    <settings>
        <!-- 使用列标签代替列名 -->
        <setting name="useColumnLabel" value="true"/>
        <!--允许 JDBC 支持自动生成主键-->
        <setting name="useGeneratedKeys" value="false"/>
        <!--是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

然后是配置一下web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

  <display-name>Sunhs</display-name>
  <description>sunhs_0.0.1</description>

  <!-- 编码过滤器 -->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 配置DispatcherServlet -->
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要加载的配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-*.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <!-- 匹配所有请求,此处也可以配置成 *.do 形式 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

</web-app>

好了,终于可以正式开始写代码啦

首先就是实体:Users.java  

package com.sunhs.model;//实体的包有叫pojo、bean、entity、domain等等的 其实都一样啦

public class Users {
    private String userid;
    private String username;
    private String password;

    public Users() {
    }

    public Users(String userid, String username, String password) {

        this.userid = userid;
        this.username = username;
        this.password = password;
    }

这个......get和set就不粘了

好,现在是dao层 UserDao  其实这里只需要一个接口就可以,并不需要实现

import com.sunhs.model.Users;

import java.util.List;


public interface UserDao {
    int insertUser(Users users);
    int updateUser(Users users);
    int deleteUser(String userid);
    Users getUserByName(String username);
    List<Users> getUsers();
}

设计完dao层  相应的映射文件不要忘记哦

userDaoMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 设置为IUserDao接口方法提供sql语句配置 -->
<mapper namespace="com.sunhs.dao.UserDao"><!--这里千万不要配置错误哦-->

    <select id="getUserByName" resultType="com.sunhs.model.Users" parameterType="String">
        SELECT * FROM users WHERE username = #{username}
    </select>

</mapper>

额....怎么好像少了好多???这里举个例子就好啦,其他的同样添加上去就好啦,需要注意的是,这里的id要对应在dao层设计的方法名,要保持一致,否则跑偏啦就会失败哦

然后在spring的配置文件中要配置一下dao

spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation=
               "http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-4.1.xsd">

    <!-- 导入外部的properties文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 配置数据源 使用的是c3p0数据源 -->
    <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <property name="maxPoolSize" value="30"/>
        <property name="minPoolSize" value="10"/>
        <property name="autoCommitOnClose" value="false"/>
        <property name="checkoutTimeout" value="1000"/>
        <property name="acquireRetryAttempts" value="2"/>
    </bean>

    <!-- 配置mybatis的sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 配置数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 加载mybatis配置文件 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!-- 扫描domain下的实体,方便在mapper下的xml中使用别名,例如User则会找到me.jinkun.ssm.domain.User -->
        <property name="typeAliasesPackage" value="com.sunhs.model"/>
        <!-- 自动扫描mapper下的Xx.xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <!-- DAO接口所在包名,Spring会自动查找其下的类并注入到Spring的容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.sunhs.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

    <!-- 自动扫描与装配dao-->
    <context:component-scan base-package="com.sunhs.dao"/>
</beans>

个人喜欢把dao、service、controller的配置单独分开,这样显得更加清晰,当然放在同一个配置文件中也不会有任何问题的

到了这里就可以测试一下,dao层是否成功执行啦

UserDaoTest.java  这里千万要注意,测试类上一定要加上@RunWith注解和@ContextConfiguration注解,路径不要搞错哦,小心报空指针---小的就是在这里ka了好久,参照别人的好多也都没写  结果一直报空指针

package com.sunhs.dao;

import com.sunhs.model.Users;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import static org.junit.Assert.*;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:/spring/*.xml"})
public class UserDaoTest {

    @Resource
    private UserDao userDao;
    @Test
    public void getUserByName() throws Exception {
        Users users = userDao.getUserByName("sunhs");
        System.out.println(users);
    }

}

如果正确的输出数据,就说明没问题啦


dao层ok了,现在可以继续service层了

UserService.java  这里建议设置接口和实现类,方便后续

import com.sunhs.model.Users;

import java.util.List;


public interface UserService {
    int insertUser(Users users);
    int updateUser(Users users);
    int deleteUser(String userid);
    Users getUserByName(String username);
    List<Users> getUsers();
}

UserServiceImpl.java

package com.sunhs.service.impl;

import com.sunhs.dao.UserDao;
import com.sunhs.model.Users;
import com.sunhs.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    public int insertUser(Users users) {
        return 0;
    }

    public int updateUser(Users users) {
        return 0;
    }

    public int deleteUser(String userid) {
        return 0;
    }


    public Users getUserByName(String username) {
        return userDao.getUserByName(username);
    }

然后在spring的配置文件中要配置一下service

spring-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation=
               "http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context-4.1.xsd
                http://www.springframework.org/schema/tx
                http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
    <!-- 扫描所有的Service -->
    <context:component-scan base-package="com.sunhs.service"/>

    <!-- 事务管理 -->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--
        基于注解的声明时事物 :
        1、开发团队达成一致约定,明确标注事物的方法
        2、保证事物方法的执行时间尽可能短
        3、不是所有的方法都需要事物,如只有一条修改记录操作
    -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

最好也配置一下log4j

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

好了,现在可以进行测试一下了

package com.sunhs.service.impl;

import com.sunhs.model.Users;
import com.sunhs.service.UserService;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;


/**
 * Created by zjs on 2018/5/4.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:/spring/*.xml"})
public class UserServiceImplTest {

    Logger mLogger = LoggerFactory.getLogger(this.getClass());

    @Resource
    private UserService userService;


    @Test
    public void getUserByName() throws Exception {


        Users users =userService.getUserByName("sunhs");
        System.out.println(users);
    }

}

正确的数据数据,就ok,如下



使用Maven搭建SSM框架的步骤如下: 1. 首先,确保你已经安装了Java和Maven,并且环境变量已经配置好。 2. 创建一个Maven项目: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-webapp ``` 3. 进入项目目录: ``` cd myproject ``` 4. 在`pom.xml`文件中添加SSM依赖: ```xml <dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.13.RELEASE</version> </dependency> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.13.RELEASE</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> </dependencies> ``` 5. 创建Spring配置文件`applicationContext.xml`,配置Spring和MyBatis相关的内容。 6. 创建MyBatis的映射文件,定义数据库表的映射关系。 7. 创建Controller、Service和Dao层的Java类,编写业务逻辑和数据库操作。 8. 编译项目: ``` mvn compile ``` 9. 打包项目: ``` mvn package ``` 10. 部署项目: 将生成的war包部署到Web容器(如Tomcat)中即可。 这样,你就使用Maven成功搭建了一个SSM框架的项目。在实际开发中,你可能还需要配置数据库连接、日志等相关内容,具体根据项目需求进行配置和开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值