mybatis的框架原理图

1.什么是mybatis?

   mybatis是一个持久层的框架,它是apache下的顶级框架,它托管到goolecode平台,最后又托管到github平台,主要共呢个是根据映射将sql语句写入到xml文件当中,实现了sql语句的半自动化(sql语句根据需求自己编写)

2.mybatis的原理:


mybatis的框架原理图

3.mybatis框架的使用环境搭建

  3.1 工具:eclipse、 jdk、 数据库 

   3.2 jar包:

           mysql的驱动包:mysql-connector-5.1.22.jar  

          mybatis的依赖包和核心包:mybatis的框架原理图      lib文件夹下是mybatis的依赖包    mybatis-3.2.7.jar是核心包  

   3.3 工程目录:

        首先根据mybatis的依赖包:我们在与src同目录下创建config文件夹下创建log4j.properties文件

           log4j.properties文件的头部:在mybatis的使用手册当中可以找到

             mybatis的框架原理图

             此处注意的是日志的级别是五级:分别是fatal  debug error  info warning   。rootlogger的值一般是debug因为我们经常需要在debug下进行调试。当然该配置文件当中也可以配置其他的日志  例如:mysql的sql语句日志 如下:

            log4j.logger.java.sql.connection=DEBUG

             log4j.logger.java.sql.preparedStatement=DEBUG

             log4.logger.java.sql.preparedStatement=DEBUG

  1. ### 把日志信息输出到控制台 ###   
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
  3. #log4j.appender.stdout.Target=System.err   
  4. log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout   
  5.   
  6. ### 把日志信息输出到文件:jbit.log ###   
  7. #log4j.appender.logfile=org.apache.log4j.FileAppender   
  8. #log4j.appender.logfile.File=jbit.log   
  9. #log4j.appender.logfile.layout=org.apache.log4j.PatternLayout   
  10. #log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n   
  11.   
  12. ###显示SQL语句部分   
  13. #log4j.logger.com.mybatis=DEBUG  
  14. #log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG    // datasource是在jndi里设置的,无法显示。
  15. #log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG   
  16. #log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG   
  17. #log4j.logger.java.sql.Connection=DEBUG    
  18. #log4j.logger.java.sql.Statement=DEBUG  
  19. #log4j.logger.java.sql.PreparedStatement=DEBUG  
  20. #log4j.logger.java.sql.ResultSet=DEBUG   //本地测试的时候输出的是一个list对象,无法显示resultset

然后建立全局配置文件:sqlMapConfig.xml

      在该文件中加载配置文件<Maps>    

                                                 <Map resource="映射文件的位置"></Map>

                                       </Maps>

     在该文件中配置事物、和数据源  mybatis的框架原理图

最后建立映射文件:  xxxMapper.xml

        在该文件中配置sql语句:

                         首先配置命名空间:<Maps>

                                                                 <namespace="">    //命名空间

                 //id表示sql语句的id,标识sql语句,将sql语句封装到MappedStatement当中 所以也称作statement的id                                   parameterType参数类型 可以是简单的值类型 也可以是String类型                   

               //也可以是pojoi类型  resultType:指定数据结果的java映射,select指定将resultType的单条记录映射成java对象

                                                                  <select id="" parameteType="String" resultType="pojo实体">

                                                                   select * from shujubiao  where id=#{ id }

                                                                   </select>

                             //此处注意 模糊查询查出来的数据是多条  但是 resultType类型也是pojo实体,因为select将resultType的                                   单条记录映射成java对象

                                                                <select id="" parameteType="String" resultType="pojo实体">

                                                                   select * from shujubiao  where username  like ='%${username}%'

                                                                   </select>

                                                       </Maps>

                            //另外:#{}这个是占位符,会自动加上双引号,${}是拼接符号,表示拼接的内容原样输出  平常的写法应该                                 是#{value}、%${value}%

                          //  ${} 容易造成sql注入的问题  如果输入的参数类型是简单的数据类型 必须使用${value)

                          //  resultType就是单条记录所映射到的java对象

                         mybatis的框架原理图

4  .代码书写

       mybatis的框架原理图

mybatis的框架原理图