一、SSM框架策略

简介

1、SSM就是SpringMVC,Spring,和Mybatis
2、SpringMVC是一个优秀的Web框架,Mybatis是一个ORM数据持久化框架,它们是两个独立的框架,Spring对齐提供IoC和AOP
3、SSM框架整合就是分别实现Spring与SpringMVC;Spring和Mybatis的整合
4、mybatis方式就是建立UserMapper。xml和UserMapper接口

SQL配置心跳

5、配置SQL心跳;在默认情况下,如果8小时内没有连接动态(即没有请求数据),MySQl会主动断掉所有连接,此时应用系统是不可用的。所以也延伸出一个问题?
可能存在白天能访问,第二天就不能访问了??如果是动态访问出现这种情况,就可以用该方法解释,解决办法就是去配置SQL心跳,就是让其每隔一段时间访问一下,使连接永远在线。

二、将登录页面用mybatis整改

1、首先将applicationContext-jdbc.xml拷贝一份,改名为applicationContext-mybatis.xml;

2、开始配置文件,读取数据库配置文件,获取数据源(四要素),配置事务管理器。开启事务的注解配置mybatis sqlSessionFactory,和Mapper的自动注册;

  1. <!-- 扫描包内的注解 让注解生效 扫描dao层和service层-->
  2. <context:component-scan base-package="cn.smbms"></context:component-scan>
  3. <!-- 读取数据库配置文件 -->
  4. <context:property-placeholder location="classpath:database.properties"/>
  5. <!-- 获取数据源(使用dbcp连接池) -->
  6. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton">
  7. <property name="driverClassName" value="${driver}"></property>
  8. <property name="url" value="${url}"></property>
  9. <property name="username" value="${user}"></property>
  10. <property name="password" value="${password}"></property>
  11. </bean>
  12. <!-- 配置事务管理器 -->
  13. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  14. <!-- 注入数据源,name是固定的;ref属性,就是上面beanid -->
  15. <property name="dataSource" ref="dataSource"></property>
  16. </bean>
  17. <!-- 开启事务的注解 -->
  18. <tx:annotation-driven transaction-manager="transactionManager"/>
  19. <!-- 配置mybatis sqlSessionFactory -->
  20. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  21. <!-- 两个属性,一个是数据源,一个是配置文件 calsspath:-->
  22. <property name="dataSource" ref="dataSource"></property>
  23. <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  24. </bean>
  25. <!-- Mapper的自动注册 -->
  26. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  27. <property name="basePackage" value="cn.smbms.dao"></property>
  28. </bean>

3、在resources中,新建一个mybatis-config配置文件,找到文件头

<?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>
    <settings>
    //开启日志
        <setting name="logImpl" value="LOG4J" />
    </settings>
    <typeAliases>
    //加载包路径
        <package name="cn.smbms.pojo"/>
    </typeAliases>
</configuration>

4、在拷贝log4j.properties;首先改包的地址,改为smbms;

image.png
按如下创建一个目录
image.png

log4j.rootLogger=debug,CONSOLE,file
#log4j.rootLogger=ERROR,ROLLING_FILE

log4j.logger.cn.smbms=debug
log4j.logger.org.apache.ibatis=debug
log4j.logger.org.mybatis.spring=debug
log4j.logger.com.ibatis=debug 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.ResultSet=debug

######################################################################################
# Console Appender  \u65e5\u5fd7\u5728\u63a7\u5236\u8f93\u51fa\u914d\u7f6e
######################################################################################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=debug
log4j.appender.CONSOLE.DatePattern=yyyy-MM-dd
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= - (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n



######################################################################################
# Rolling File  \u6587\u4ef6\u5927\u5c0f\u5230\u8fbe\u6307\u5b9a\u5c3a\u5bf8\u7684\u65f6\u5019\u4ea7\u751f\u4e00\u4e2a\u65b0\u7684\u6587\u4ef6
######################################################################################
#log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
#log4j.appender.ROLLING_FILE.Threshold=INFO
#log4j.appender.ROLLING_FILE.File=${baojia.root}/logs/log.log
#log4j.appender.ROLLING_FILE.Append=true
#log4j.appender.ROLLING_FILE.MaxFileSize=5000KB
#log4j.appender.ROLLING_FILE.MaxBackupIndex=100
#log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
#log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n

######################################################################################
# DailyRolling File 查看日志 \u6bcf\u5929\u4ea7\u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u683c\u5f0f:log2009-09-11
######################################################################################
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=D:/logs2021/log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= - (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n

#DWR \u65e5\u5fd7
#log4j.logger.org.directwebremoting = ERROR

#\u663e\u793aHibernate\u5360\u4f4d\u7b26\u7ed1\u5b9a\u503c\u53ca\u8fd4\u56de\u503c
#log4j.logger.org.hibernate.type=DEBUG,CONSOLE 

#log4j.logger.org.springframework.transaction=DEBUG
#log4j.logger.org.hibernate=DEBUG
#log4j.logger.org.acegisecurity=DEBUG
#log4j.logger.org.apache.myfaces=TRACE
#log4j.logger.org.quartz=DEBUG

#log4j.logger.com.opensymphony=INFO  
#log4j.logger.org.apache.struts2=DEBUG  
log4j.logger.com.opensymphony.xwork2=debug

5、最后配置web.xml。加载配置文件,

image.png

6、首先,在UserDaoImpl中,找到getLoginUser方法,在user包内创建UserMapper.xml和UserMapper接口。

7、UserMapper.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="cn.smbms.dao.user.UserMapper">

</mapper>

8、写入