ssm 整合

1.创建maven 项目------选着模板maven-arcgetype-webapp

 把模板缺的文件补上

 ctrl 一个一个选上回车   这就补齐了。

2.加入依赖---

spring  springmvs 这两个主要需要

<!-- springmvc里面有五个必须的依赖。
-->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.3.4</version>
</dependency>
<!--    Spring-tx  事务 
spring-jdbc 里面含有spring-tx
所以spring-tx可以不加
-->

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.4</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.3.4</version>
    </dependency>

Mybatis 和mybstis-spring

 <!-- DAO框架:MyBatis依赖 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>
    
    <!--分页插件-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>4.0.1</version>
    </dependency>
    <!-- Mybatis自身实现的Spring整合依赖 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.6</version>
    </dependency>

mysql连接驱动

<!--jdbc-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.25</version>
</dependency>

servlet:

 <!--servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>

 偷懒专属lombok

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.20</version>
    </dependency>

添加日志:

 <!--log4j-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.14.1</version>
    </dependency>

 3.创建数据库,并手动添入数据


CREATE  DATABASE  mydb  ;

USE  mydb;

CREATE TABLE person
(
    ID          INT NOT NULL,
    NAME        VARCHAR(20),
    birthday    DATE,
    salary      DECIMAL(10,2)
);

创建基本目录 根据数据库建立实体类:Person

package com.wdzl.bean;


import lombok.Data;

import java.util.Date;

/**
 * @version 1.0
 * @Description
 * @Author JR.
 */
@Data
public class Person {
    private Integer id;
    private String name;
    private Date birthday;
    private Double salary;
}

   dao层     ------  PensonDao接口:

package com.wdzl.dao;

import com.wdzl.bean.Person;

import java.util.List;

public interface PersonDao {
    int insert(Person person);

    int update(Person person);

    int delete(Integer id);

    Person findBy(Integer id);

    List<Person> findAll();
}

在resources下将 mappe r包放入PersonMapper.xml

 通过  PersonMapper.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" >
<mapper namespace="com.wdzl.dao.PersonDao">
    <resultMap id="BaseResultMap" type="com.wdzl.bean.Person">

        <id column="id" property="id" jdbcType="INTEGER"/>
        <result column="name" property="name" jdbcType="VARCHAR"/>
        <result column="birthday" property="birthday" jdbcType="DATE"/>
        <result column="salary" property="salary" jdbcType="DOUBLE"/>

    </resultMap>

    <sql id="Base_Column_List">
        id
        , name, birthday, salary
    </sql>

    <select id="findById" resultMap="BaseResultMap" parameterType="java.lang.Integer">
        select
        <include refid="Base_Column_List"/>
        from Person
        where id = #{id,jdbcType=INTEGER}
    </select>

    <select id="findAll" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from Person
    </select>


    <insert id="insert" parameterType="com.wdzl.bean.Person">
        insert into Person (id,
                            name,
                            birthday,
                            salary)
        values (#{id,jdbcType=INTEGER},
                #{name,jdbcType=VARCHAR},
                #{birthday,jdbcType=DATE},
                #{salary,jdbcType=DOUBLE})
    </insert>

    <update id="update" parameterType="com.wdzl.bean.Person">
        update Person
        set name     = #{name,jdbcType=VARCHAR},
            birthday = #{birthday,jdbcType=DATE},
            salary   = #{salary,jdbcType=DOUBLE}
        where id = #{id,jdbcType=INTEGER}
    </update>

    <delete id="delete" parameterType="java.lang.Integer">
        delete
        from Person
        where id = #{id,jdbcType=INTEGER}
    </delete>

</mapper>

 

spring配置文件 applicationContext.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"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd

">
    <!--1.DataSource-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
    </bean>

    <!--2.Mybatis和spring的结合-->
    <bean id="sqlSessionFactory"
          class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath*:mapper/*.xml"></property>
    </bean>


    <!--Dao的扫描-->
    <!-- 3、DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean id="mapperScannerConfigurer"
          class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.wdzl.dao" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>


 log4j2.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置LoggerConfig,即Appenders的日志级别为WARN -->
<Configuration status="info">
    <!-- Appenders支持配置多个Appender,支持向不同的目标输送日志,本例为配置向控制台输出 -->
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%-5level [%d{yyyy/MM/dd HH:mm:ss.SSS}] [%t] %logger{36} \n\t%msg %n\n" />
        </Console>
    </Appenders>
    <!-- Loggers支持配置多个Logger,可引用不同的目标Appender,也可根据业务需求定制特定要求的Appender -->
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

测试 容器


/**
 * @version 1.0
 * @Description
 * @Author JR.
 */
public class AcTest  {
    private  static  final Log log = LogFactory.getLog(AcTest.class);
    private ApplicationContext applicationContext;
    @Before
    public void info(){
       applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
       //测试容器
        log.info(applicationContext);

    }
    @Test
    public void dataSourceTest(){
        //测试dataSource
        DriverManagerDataSource dataSource = (DriverManagerDataSource) applicationContext.getBean("dataSource");
        log.info(dataSource);
    }
    @Test
    public void sqlSessionFactoryTest(){
        //测试sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = (SqlSessionFactory)applicationContext.getBean("sqlSessionFactory");
        log.info(sqlSessionFactory);
    }
    @Test
    public void mapperScannerConfigurerTest(){
        //测试mapperScannerConfigurer
        MapperScannerConfigurer mapperScannerConfigurer = (MapperScannerConfigurer)applicationContext.getBean("mapperScannerConfigurer");
        log.info(mapperScannerConfigurer);
    }
}

测试连接数据库:

package com.wdzl.dao;

import com.wdzl.bean.Person;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

import static org.junit.Assert.*;

public class PersonDaoTest {
    private  static  final Log log = LogFactory.getLog(PersonDaoTest.class);
    private ApplicationContext applicationContext;
    @Before
    public void info() {
        applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //测试容器
        log.info(applicationContext);
    }
    @Test
    public void findAll(){

        ApplicationContext applicationContext =  new ClassPathXmlApplicationContext("applicationContext.xml");

        log.info(  applicationContext  );

        PersonDao personMapper = applicationContext.getBean("personDao",PersonDao.class);

        log.info( personMapper  );

        List<Person> persons  = personMapper.findAll();

        System.out.println(persons);

    }
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值