• 07 图书管理系统(SSM+LayUi)


    整合mybatis

    配置数据源文件jdbc.properties

    • 在sources里新建jdbc.properties
    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/library?serverTimezone=GMT%2B8
    jdbc.username=root
    jdbc.password=1996chen
    

    配置SqlMapConfig.xml

    • 在sources里新建SqlMapConfig.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">
    
    
    <configuration>
        
    
        <!-- 定义别名 -->
        <typeAliases>
            <!--        <typeAlias type="com.gychen.po.ClassInfo" alias="classInfo"/>-->
            <!-- 或者扫包 po下的所有类都有别名 -->
            <package name="com.gychen.po"/>
        </typeAliases>
    
    
    
    </configuration>
    

    配置spring.xml

    • 在spring.xml中配置mybatis相关
    <?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:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!-- 加载数据库jdbc.properties文件 -->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
    
        <!-- 开启注解扫描 处理service层和dao层 controller层不处理-->
        <context:component-scan base-package="com.gychen">
            <!-- 配置不扫描的 -->
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>
    
    
        <!-- 配置数据源信息 -->
        <bean id="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}"/>
        </bean>
    
        <!-- 配置mybatis的session工厂 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 配置数据源 -->
            <property name="dataSource" ref="dataSource"/>
            <!-- 加载mybatis全局配置文件 -->
            <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
        </bean>
        
        <!-- 配置mapper相关扫描器 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.gychen.dao"/>
        </bean>
    
    
    
    </beans>
    

    测试SSM整合

    测试spring-springmvc-mybatis整合情况

    • 改写com.gychen.dao.ClassInfoDao
    package com.gychen.dao;
    
    import com.gychen.po.ClassInfo;
    import org.apache.ibatis.annotations.Select;
    import org.springframework.stereotype.Component;
    
    import java.util.List;
    
    @Component("classDao")
    public interface ClassInfoDao {
        /**
         * 查询所有图书类型信息
         */
        @Select("select * from class_info")
        List<ClassInfo> queryClassInfoAll();
    
    }
    
    
    • 在ClassInfoServiceImpl中调用Dao层中的查询方法
    package com.gychen.service;
    
    import com.gychen.dao.ClassInfoDao;
    import com.gychen.po.ClassInfo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service("classInfoService")
    public class ClassInfoServiceImpl implements ClassInfoService {
    
        @Autowired
        private ClassInfoDao classDao;
    
        @Override
        public List<ClassInfo> queryClassInfoAll() {
    
            // 没有连接数据库,以打印控制台代替
            System.out.println("查询到了所有的图书类型.......");
    
            // 已经配置了数据库
            System.out.println("获取图书类型记录数为:"+classDao.queryClassInfoAll().size());
            List<ClassInfo> classInfos = classDao.queryClassInfoAll();
            for (ClassInfo classInfo : classInfos) {
                System.out.println(classInfo);
            }
    
            return null;
        }
    }
    
    
    • 在TestController里新建测试方法
    package com.gychen.controller;
    
    import com.gychen.service.ClassInfoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class TestController {
    
        @Autowired
        private ClassInfoService classInfoService;
    
        @RequestMapping("/test")
        public String testIndex(){
            System.out.println("测试springmvc内容");
            return "test";
        }
    
        @RequestMapping("/test01")
        public String testSpring(){
            classInfoService.queryClassInfoAll();
            System.out.println("测试spring和springmvc整合");
            return "test01";
        }
    
        @RequestMapping("/test02")
        public String testSSM(){
            classInfoService.queryClassInfoAll();
            System.out.println("测试SSM整合");
            return "test02";
        }
    }
    
    
    • 在pages里新建test02.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>SSM整合测试</title>
    </head>
    <body>
        SSM整合测试
    </body>
    </html>
    
  • 相关阅读:
    在mac上如何用safari浏览器调试ios手机的移动端页面
    VSCode 入门
    Redux和Context对比
    七种CSS左侧固定,右侧自适应两栏布局
    componentWillMount VS componentDidMount
    react-native IOS TextInput长按提示显示为中文(select | selectall -> 选择 | 全选)
    MySQL调优5---查询优化
    MySQL调优4---索引
    MySQL官网下载案例数据库
    MySQL调优3---执行计划
  • 原文地址:https://www.cnblogs.com/nuister/p/13361190.html
Copyright © 2020-2023  润新知