SSM整合-part1-环境创建(依赖导入)+myBatis整合

在这里插入图片描述
第一步:pom.xml创建环境,注入依赖
这里注入的是myBatis的所有依赖环境

   <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--myBatis的环境-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.3</version>
    </dependency>
    <!--mySql的环境-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>
    <!--Spring整合JDBC-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
    <!--Spring整合myBatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.3</version>
    </dependency>
    <!--Spring整合druid,作为数据源-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.16</version>
    </dependency>
    <!--整合分页插件-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.2</version>
    </dependency>

下面配置SpringMVC的环境:

   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>
    <!--jackson相关坐标-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
    <!--servlet环境-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

至此,最关键的两个SpringMVC和MyBatis环境依赖就搭建完了,下面导入一些测试组件的环境:

    <!--其他组件-->
    <!--其他组件-->
    <!--其他组件-->
    <!--junit单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
    <!--spring整合junit-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>

同时在< dependencies >外设置好Tomcat的插件

  <build>
    <!--设置插件-->
    <plugins>
      <!--具体的插件配置-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <port>80</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
  </build>

到这里,我们需要的依赖都已经注入了。接下来
第二步:我们要做Spring的配置文件。非常简单,就是开启扫描组件。

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

    <!--开启扫描组件-->
    <context:component-scan base-package="com.itheima"/>

</beans>

第三步:配置Dao的映射文件,因为我们想要myBatis自动代理生成Dao的实现类嘛。所以与接口的方法一一对应写出配置文件。

<?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">
<mapper namespace="com.itheima.dao.UserDao">

    <!--添加-->
    <insert id="save" parameterType="user">
        insert into user(userName,password,realName,gender,birthday)values(#{userName},#{password},#{realName},#{gender},#{birthday})
    </insert>

    <!--删除-->
    <delete id="delete" parameterType="int">
        delete from user where uuid = #{uuid}
    </delete>

    <!--修改-->
    <update id="update" parameterType="user">
        update user set userName=#{userName},password=#{password},realName=#{realName},gender=#{gender},birthday=#{birthday} where uuid=#{uuid}
    </update>

    <!--查询单个-->
    <select id="get" resultType="user" parameterType="int">
        select * from user where uuid = #{uuid}
    </select>

    <!--分页查询-->
    <select id="getAll" resultType="user">
        select * from user
    </select>

    <!--登录-->
    <select id="getByUserNameAndPassword" resultType="user" >
        select * from user where userName=#{userName} and password=#{password}
    </select>

</mapper>

同时注意最后一个getByUserNameAndPassword我们没有给参数,parametertype,因为我们在接口类中使用了@Param,确保String userName会被用到sql语句里面的#{userName}

public interface UserDao {

    public boolean save(User user);
    public boolean update(User user);
    public boolean delete(Integer uuid);
    public User get(Integer uuid);
    public List<User> getAll();
    public User getByUserNameAndPassword(@Param("userName") String userName, @Param("password") String password);

}

到这一步UserDao类的映射动态代理实现就已经全部做完了。接下来就是
第四步:填充Service的实现类的逻辑了。

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public boolean save(User user) {
        return userDao.save(user);
    }

    @Override
    public boolean update(User user) {
        return userDao.update(user);
    }

    @Override
    public boolean delete(Integer uuid) {
        return userDao.delete(uuid);
    }

    @Override
    public User get(Integer uuid) {
        return userDao.get(uuid);
    }

    @Override
    public PageInfo<User> getAll(int page,int size) {
        //这里我们使用了一个分页的插件
        PageHelper.startPage(page, size);
        List<User> all = userDao.getAll();
        return new PageInfo<User>(all);
    }

    @Override
    public User login(String userName, String password) {
        return userDao.getByUserNameAndPassword(userName,password);
    }
}

我们主要看三个地方:

  1. @Service,使该类变成一个Bean,交给Spring来管理。
  2. @AutoWired,我们已经配置好Dao的接口和映射文件了,所以Spring会为我们动态的生成Dao,这里直接自动匹配即可。
  3. 修改使用了 public PageInfo<User> getAll(int page,int size),使用了分页插件。

至此Service层的实现也完成了。
到了这一步,我们就需要明白Spring自动动态生成Dao是需要DataSource的,这个我们只是导入了,但是还没在配置文件里面写呢,没把他配为Bean,交给Spring,Spring是无法为我们动态生成Dao的。这个时候我们就知道我们要继续给Spring配置DataSource了。
第五步:配置自动生成Dao的DataSource
我们需要一个SqlSessionFactoryBean

    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref=""/>
    </bean>

而SqlSessionFactoryBean则需要DataSource,那么我们就需要配置DataSource。而DataSource又需要配置一系列的DriverClass,URL,username,password等参数,我们直接properties文件里面拿就好了,下面就是完整的配置流程,同时我们还要扫描映射配置文件进来。

    <!--1.加载读取配置文件这样你才可以直接用${jdbc.xxxx}-->
    <context:property-placeholder location="classpath*:jdbc.properties"/>
    <!--2.配置数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--3.使用我们配置好的数据源来生成SqlSession,同时将这个作为Bean整合进Spring中-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    <!--当你设置这个 ,那么在Mybatis的Mapper文件里面就可以直接写对应的类名 而不用写全路径名了-->
    <!--你像我们<update id="update" parameterType="user">,这里面的parameterType都直接写类名的,而不是com.itheima.user-->
        <property name="typeAliasesPackage" value="com.itheima.domain"/>
    </bean>
    <!--4.映射扫描,我们需要根据映射的配置文件来生成Dao呀,我们现在有工厂了,就差最后一个模板图纸就可以生产了,给他!-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!--该包下面的映射配置都会被扫描到,如果我们需要某个接口的实现,该包下的配置文件就会被实现-->
        <property name="basePackage" value="com.itheima.dao"/>
    </bean>

到这里,其实myBatis就已经整合完毕了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值