SSM项目介绍

面试:自我介绍
    1、问好
    2、我是谁,来应聘什么岗位
    3、个人基本信息:年龄、学历、工作年限等
    4、工作经历:前公司、岗位、开发过的项目
    5、擅长技术
    6、下一步规划(简单)、能够给公司贡献什么
    7、结束语

课程内容:
    MyBatis
    Spring
    Spring MVC
    项目案例:Bootstrap

框架技术:
    是一个应用程序的半成品
    提供了可重用的公共结构
    按一定规则组织的一系列组件

    SSM:SpringMVC、Spring、Mybatis
    SSH:Struts2、Spring、Hibernate

MyBatis:
    MyBatis概念
        持久化:程序数据在瞬时状态和持久状态间转换的过程
            瞬时状态:内存(程序)
            持久状态:文件(数据库)
        ORM:对象关系映射
            编写程序的时候,以面向对象的方式处理数据
            保存数据的时候,以关系型数据库的方式存储
        ORM解决方案(框架):功能
            对象关系映射
            增删改查操作
            查询语言或API
            事务、延迟加载以及其他优化功能
        MyBatis:半自动化的ORM框架
            半自动化:手动编写SQL语句封装在映射文件中
    搭建环境:
        1、添加相关jar
            mybatis-3.5.1.jar
            依赖的jar:lib\*.jar
            jdbc驱动:mysql-connector-j-8.0.31.jar
        2、创建配置文件
            database.properties:数据库配置信息
            log4j.properties:log4j(日志)配置文件
                log4j.logger.com.t357.cvs.mapper=trace
            mybatis-config.xml:MyBatis配置文件
                对框架进行全局设置;让框架加载程序代码
                properties:加载properties配置文件(database.properties)
                settings:设置框架的全局属性
                    cacheEnabled
                    lazyLoadingEnabled
                    autoMappingBehavior
                typeAliases:类型(实体类)别名
                environments:运行环境(数据库环境)
                    <transactionManager type="JDBC" />:事务管理器
                    <dataSource type="POOLED">:数据源:连接池
                mappers:映射文件
    基本操作:
        1、开发实体类:在配置文件中指定别名
            建议属性使用包装器类型
        2、定义Mapper接口:等价于DAO
            增删改查方法
        3、定义SQL映射文件:在配置文件中指定加载
            namespace与Mapper接口完整名称一致
            id与Mapper接口中的方法名称一致
        4、运行:测试类、junit
            读取MyBatis核心配置文件
            创建SqlSessionFactory实例
            创建SqlSession实例
            创建Mapper实例
            调用Mapper接口的方法:执行SQL映射文件中的SQL语句
    核心类:工具类
        SqlSessionFactoryBuilder:
            加载配置文件,创建SqlSessionFactory,创建完毕(使用结束)自动销毁
        SqlSessionFactory:生命周期与整个应用程序的生命周期相同、单例
        SqlSession:非线程安全,不能共享;对应一次数据库会话,会话结束必须关闭

        MyBatisUtil:工具类
            保证SqlSessionFactory只创建一次
    SQL映射文件:
        mapper:根节点
            namespace:与对应的Mapper接口的完整名称一致
        insert、delete、update、select:增删改查
                id:与对应的Mapper接口的方法名称一致
                parameterType:参数类型
                resultType:返回结果类型
                resultMap:返回结果映射
            传递参数:
                parameterType:单个参数
                    基本类型:数值
                    对象类型:实体
                    Map类型:多个参数
                注解:任意参数
                    @Param("realName")
                    @Param("roleId")
                不使用parameterType和注解:不建议
                    参数名称自动命名为:param1、param2……
            获取参数:
                #{}:解析为?占位符
                ${}:直接获取值,拼接SQL
            返回结果:
                resultType:返回结果类型
                    SQL语句的列名和返回结果类的属性名一致
                resultMap:返回结果映射
                    列名和属性名不一致
                    关联查询
        resultMap:结果映射
            id:标识、引用
            type:类型(实体类)
                id:映射主键属性
                result:映射普通属性
                association:映射多对一关联
                collection:映射一对多关联
        关联查询
            多对一:association
                多表连接查询SQL
                两条SQL进行查询
            一对多:collection
                两条SQL进行查询
            延迟加载:
                <setting name="lazyLoadingEnabled" value="true"/>
            自动映射:
                <setting name="autoMappingBehavior" value="PARTIAL"/>
        缓存
            一级缓存:SqlSession范围内缓存、自动缓存
            二级缓存:SqlSessionFactory范围内缓存(全局)、配置缓存
                <setting name="cacheEnabled" value="true"/>
                <cache eviction="FIFO" size="1000" flushInterval="6000" />
                <select id="get" parameterType="int" resultType="SysUser" useCache="true">
        动态SQL:
            了解动态SQL
            常用标签
                if:where
                foreach:
                    遍历List:in子查询
                    遍历Map:insert、update
                if+set:update
        分页查询:
            limit #{begin},#{size}
        
        调用存储过程:
            JDBC:
                CallableStatement
                cs.setInt(1,roleId);
                cs.registerOutParameter(2, Types.INTEGER);
                cs.execute();
                total = cs.getInt(2);
                rs = cs.getResultSet();
            MyBatis:
                statementType="CALLABLE"
                {call proc_find_user(#{id,mode=IN})}
                {call proc_count_user(#{roleId, mode=IN, jdbcType=INTEGER},#{total, mode=OUT, jdbcType=INTEGER})}
    自动生成代码:
        添加mybatis-generator-core-1.4.0.jar
        创建配置文件:mybatis-generator.xml
            jdbcConnection:数据库连接
            javaModelGenerator:实体类位置
            sqlMapGenerator:映射文件位置
            javaClientGenerator:Mapper接口位置
            table:表、实体类名、Mapper接口方法
        MyBatisGeneratorUtil执行生成代码

Spring
配置扩展:
    优化:
        配置数据源:优化性能
            1、添加依赖:
                commons-dbcp-1.4.jar
                commons-pool-1.6.jar
            2、创建database.properties
            3、Spring核心配置文件配置数据源
                引入database.properties文件
                配置DBCP数据源
        配置文件拆分:优化可读性、可维护性
            1、核心配置文件(公共配置)
            N、模块配置文件(Service、Controller)
            
            核心配置文件导入模块配置文件、加载核心配置文件
            <import resource="applicationContext-user.xml"/>
            String path = "applicationContext.xml";        
    简化:
        自动装配:
            autowire="byType"
            autowire="byName"
        注解配置:
            1、添加context命名空间
                xmlns:context="http://www.springframework.org/schema/context"
            2、开启组件扫描
                <context:component-scan base-package="com.t357.cvs.service"/>
            3、service添加注解(IOC、DI)
                IOC:<bean id="sysUserService" class="cn.bdqn.service.impl.SysUserServiceImpl">
                    @Component
                    @Repository
                    @Service
                    @Controller
                    @Scope:
                        singleton:单例
                        prototype:原型
                DI:<property name="sysUserMapper" ref="sysUserMapper"/>
                    @Resource:
                        1、byName
                        2、byType
                    @Autowired:
                        1、byType
                        2、@Qualifier:byName
                
SpringMVC:
    理解MVC设计模式
        将程序按照功能分为模型、视图、控制器
        模型:JavaBean
            处理业务逻辑并操作数据库
        视图:JSP
            输入输出、界面展示
        控制器:Servlet(Controller)
            控制请求处理流程
    SpringMVC:Spring提供的实现了MVC设计模式的Web框架(模块)
    搭建SpringMVC开发环境
        1、添加相关jar
            web、webmvc
        2、创建配置文件springmvc-servlet.xml
            添加mvc命名空间
            组件扫描:扫描controller包
            启用注解驱动:配置请求映射
            视图解析器:前缀后缀
            配置静态资源
        3、配置web.xml
            1、配置核心控制器:DispatcherServlet
                加载springmvc-servlet.xml
            2、配置监听器:ContextLoaderListener
                加载applicationContext.xml
            3、配置过滤器:CharacterEncodingFilter
                解决中文乱码
    掌握基于注解开发:MVC
        开发模型(M):JavaBean
            entity
            mapper
            service:注入mapper
        开发视图(V):JSP
            login.jsp
            main.jsp
            form标签:数据双向绑定
                提交页面,将页面的数据自动封装到Controller类的处理方法的实体类中
                显示页面,将Controller类的处理方法的实体类中的数据自动设置到页面
        开发控制器(C):Controller
            controller:注入service
                @RequestMapping("/dologin"):配置请求映射
                public String login(String account……):处理方法
                    返回值:
                        String:视图(名称、路径)
                        ModelAndView:数据和视图
                        Object:数据(JSON、ajax)
                    方法(自定义):对应一个请求处理
                        多个方法,处理多种请求
                    方法参数:
                        请求参数:自动接收、封装
                            简单数据类型:int、String……
                            复合数据类型:SysUser
                        Servlet API对象:
                            HttpServletRequest
                            HttpServletResponse
                            HttpSession
                        Model:模型(数据)、作用域等价于request
    SpringMVC架构及处理请求流程

    映射配置:
        @RequestMapping("/dologin")
        @RequestMapping("/view/{id}"):
            @PathVariable("id") Integer userId
    参数传递:
        方法参数:
            简单数据类型:int、String……
            复合数据类型:SysUser
        @RequestParam(defaultValue = "1")
    返回数据:
        作用域对象
        Model对象、ModelAndView
    文件上传:
        1、添加Apache Commons FileUpload组件
            commons-fileupload-1.2.2.jar、commons-io-2.4.jar
        2、配置springmvc-servlet.xml
            配置文件上传解析器
        3、开发jsp页面:同S2
            <form enctype="multipart/form-data" method="post" ……>
            <input type="file" name="idPic" id="idPic"/>
        4、开发Controller:
            public String add(……,@RequestParam(value ="idPic", required = false) MultipartFile idPic)
                //上传之前进行文件大小、格式等判断,文件重命名
                idPic.transferTo(new File(directory, newFileName)); //文件上传
    Ajax:
        添加fastjson-1.2.13.jar
        JSP:发出请求、动态改变页面内容
        Controller:
            1、使用out返回json,类似Servlet
                public void findAllRoles (HttpServletResponse response)
                out.print(json);
            2、返回Object,SpringMVC自动转换为json
                配置springmvc-servlet.xml
                    <mvc:message-converters>  //自动转JSON
                public @ResponseBody List<SysRole> findAllRoles ()
                return roleList;
                    
                
            
        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值