SSM整合学习笔记

导读:本篇文章讲解 SSM整合学习笔记,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1 原始整合方式

步骤一: 创建数据库表

步骤二: 创建Maven工程 在这里插入图片描述

导入坐标

<dependencies>
    <!--spring相关-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.7</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>

    <!--servlet和jsp-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
    </dependency>

    <!--mybatis相关-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.5</version>
    </dependency>
    <!--mybatis与spring整合所用-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>
    
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>
    </dependency>
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
  </dependencies>

步骤四: 编写实体类 在这里插入图片描述

步骤五: 编写Mapper接口(Dao层) 在这里插入图片描述 步骤六: 编写Service层与其实现 在这里插入图片描述 步骤七: 编写Controller层 在这里插入图片描述 步骤八: 编写页面 在这里插入图片描述 步骤九: 编写配置文件 在这里插入图片描述

1.1 mybatis配置文件内容

sqlMapConfig.xml 在这里插入图片描述

1.2 spring、springMVC配置文件内容

spring配置文件 在这里插入图片描述

springMVC配置文件 在这里插入图片描述

1.3 web.xml配置文件内容

在这里插入图片描述

1.4 具体内容实现

前端部分 insert.jsp 在这里插入图片描述 userList.jsp 在这里插入图片描述 后端部分 在这里插入图片描述 采用xml配置文件的形式 与数据库进行数据交互,自定义了工具类(封装SqlSession的开启与关闭)和类型转换器类(Date类型转换成long型)

User.java 在这里插入图片描述 UserMapper 在这里插入图片描述 UserServiceImpl.java 在这里插入图片描述 UserController.java 在这里插入图片描述 其中,Utils的工具类

public class sqlSession {

    private SqlSession sqlSession;

    public SqlSession sqlSession_open(){
        InputStream resourceAsStream = null;
        try {
            resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlSession =
                new SqlSessionFactoryBuilder().build(resourceAsStream).openSession(true);
        return sqlSession;
    }

    public void sqlSession_close(){
        sqlSession.close();
    }
}

自定义转换器类DateTpyeHandler,数据库存储的是BigInt

public class DateTypeHandler extends BaseTypeHandler<Date> {
    //将java Date类型转换成数据库设置的BigInt类型
    @Override
    public void setNonNullParameter(PreparedStatement preparedStatement, int i, Date date, JdbcType jdbcType) throws SQLException {
        long time = date.getTime();
        preparedStatement.setLong(i,time);//设置参数
    }
    //将数据库中bigint类型转换成java date类型
    //String参数 为要转换字段名称  ResultSet 为查询出的结果集
    @Override
    public Date getNullableResult(ResultSet resultSet, String s) throws SQLException {
        //获取结果集中需要的数据(long) 转成成Date类型 返回
        long aLong = resultSet.getLong(s);
        Date date = new Date(aLong);
        return date;
    }
    //将数据库中bigint类型转换成java date类型
    @Override
    public Date getNullableResult(ResultSet resultSet, int i) throws SQLException {
        long aLong = resultSet.getLong(i); //i 为表中第几个字段
        Date date = new Date(aLong);
        return date;
    }
    //将数据库中bigint类型转换成java date类型
    @Override
    public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
        long aLong = callableStatement.getLong(i);
        Date date = new Date(aLong);
        return date;
    }
}

2 Spring整合MyBatis

2.1 整合思路

在这里插入图片描述

2.2 Session工厂交由Spring容器管理

1 将数据源配置移到applicationContext.xml 在这里插入图片描述 2 配置Session工厂 在这里插入图片描述 由该包提供的实现类SqlSessionFactoryBean

在这里插入图片描述 配置完成后,只需注入Mapper即可 在这里插入图片描述

2.3 事务控制交由Spring容器管理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2624.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!