Mybatis-XxxMapper.xml配置文件

一、了解内容

  • 配置Mybatis两种方式:

    • 第一种:Mybatis通过读取mybatis-config.xml文件配置mybatis,通过动态读取配置文件,调用SqlSessionFactoryBuilder的bulid方法获取配置文件字节流获得SqlSessionFactory,创建SqlSession实现类DefultSqlSession的对象,动态代理去执行sql方法

    • 第二种:使用Java API配置Mybatis,不去配置任何信息直接把信息写在代码中,然后在按着之前的顺序创建出我们需要的SqlSessionFactory,再进一步得到sqlSession,最后再进行各种数据库操作

      例如:使用Java API创建SqlSessionFactory对象,之前是读取配置文件之后再创建,现在是自己把信息写到代码中,然后再创建该对象
      public static SqlSessionFactory getSqlSessionFactory() {
              
          
          SqlSessionFactory sqlSessionFactory = null; 
          try {
              
              DataSourcedata Source = DataSourceFactory.getDataSource(); 
              
              TransactionFactory transactionFactory = new JdbcTransactionFactory(); 
              
              Environment environment = new Environment("development", transactionFactory, dataSource); 
              
              Configuration configuration = new Configuration(environment); 
        		configuration.getTypeAliasRegistry().registerAlias("student",Student.class); 
              configuration.getTypeHandlerRegistry().register(PhoneNumber.class, PhoneTypeHandler.class);
              configuration.addMapper(StudentMapper.class); 
              sqlSessionFactory = new SqlSessionFactoryBuilder(). 
              build(configuration); 
          } 
          catch (Exception e) {
              
              throw new RuntimeException(e); 
          } 
          return sqlSessionFactory; 
      } 
      
      • 缺点:将Mapper.xml的sql语句的配置信息写死了,降低了代码的灵活性
  • 自定义MyBatis日志

  • MyBatis使用其内部LogFactory作为真正的日志类库使用的门面。其内部的LaggerFactory会将日志记录任务委托给如下的所示某一个日志实现,日志记录优先级由上到下顺序递减:

    1. SLF4J

    2. Apache Commons Logging

    3. Log4j2

    4. Log4j

    5. JDK logging

      注意:查看org.apache.ibatis.logging.LogFactory源码可知

  • 如果MyBatis未发现上述日志记录实现,则MyBatis的日志记录功能无效,如果你的运行环境中,在classpath中有多个可用的日志类库,并且你希望MyBaits使用某个特定的日志实现,你可以在代码中通过调用以下其中一个方法:

    org.apache.ibatis.logging.LogFactory.useSlf4jLogging(); 
    org.apache.ibatis.logging.LogFactory.useLog4JLogging(); 
    org.apache.ibatis.logging.LogFactory.useLog4J2Logging(); 
    org.apache.ibatis.logging.LogFactory.useJdkLogging(); 
    org.apache.ibatis.logging.LogFactory.useCommonsLogging(); 
    org.apache.ibatis.logging.LogFactory.useStdOutLogging(); 
    
  • 注:如果你想自定义MyBatis日志记录,你应该在调用任何其它方法之前调用以上的其中一个方法

二、映射配置文件Mapper.xml

  • Sql语句调用方式有两种:需要配置映射文件StudentMapper.xml和XxxMapper.java映射接口

    • 第一种:通过按照sql语句需求根据SqlSession中的对应方法,传入方法的参数(全包名限定+映射xml的 sql标签id,参数),执行sql语句
      • 使用字符串形式调用sql语句,即使接口中没有对应方法名,也不影响执行SQL语句
    • 第二种:通过动态代理,有SqlSession的DefaultSQLSession实现类通过层层调用,反射newInstance创建出映射接口对象,调用接口对应xml(CURD标签的id和方法名相同)文件中,操作数据库
  • 第一种方式:映射接口全包名,调用SQLSession中sql方法

  • 映射文件StudentMapper.xml中有id为"findStudentById"的SQL语句,代码如下:

    <?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.briup.mappers.StudentMapper"> 
      <select id="findStudentById" parameterType=
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值