SSM整合学习笔记

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容器管理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Swing_zzZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值