• mybatis笔记


    中文手册:mybatis – MyBatis 3 | 简介

    MyBatis是一款持久层框架。

    映射配置文件

    每一个接口对应一个映射配置文件,映射配置文件存储路径在resources目录下,并且要和接口的包路径保持一致,映射配置文件名需要和接口名保持一致。

    idea创建映射配置文件模板,可以快速创建mybatis映射配置文件。

    简单使用:

    1. mapper
    2. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4. <mapper namespace="com.angen.dao.MemberDao">
    5. <select id="findAll" resultType="com.angen.pojo.Member">
    6. select * from dlq_member
    7. select>
    8. <insert id="addMember" parameterType="com.angen.pojo.Member">
    9. insert into dlq_member values(null,#{phone},#{username},#{password})
    10. insert>
    11. <update id="updateMember" parameterType="com.angen.pojo.Member">
    12. update dlq_member set username=#{username} where id=#{id}
    13. update>
    14. <delete id="deleteMember" parameterType="java.lang.Integer">
    15. delete from dlq_member where id=#{id}
    16. delete>
    17. mapper>

     核心配置文件

    1,存放路径必须是resources的根路径

    2,配置文件的名字,随便写

    3,一定要引入约束

    mybatis核心配置文件_笑霸final的博客-CSDN博客_mybatis核心配置

    mybatis – MyBatis 3 | 配置

    1. configuration
    2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. <configuration>
    5. <environments default="dev">
    6. <environment id="dev">
    7. <transactionManager type="JDBC"/>
    8. <dataSource type="POOLED">
    9. <property name="driver" value="com.mysql.jdbc.Driver"/>
    10. <property name="url" value="jdbc:mysql://localhost:3306/test_mybatis?characterEncoding=utf8"/>
    11. <property name="username" value="root"/>
    12. <property name="password" value="123456"/>
    13. dataSource>
    14. environment>
    15. <environment id="test">
    16. <transactionManager type="JDBC"/>
    17. <dataSource type="POOLED">
    18. dataSource>
    19. environment>
    20. <environment id="product">
    21. <transactionManager type="JDBC"/>
    22. <dataSource type="POOLED">
    23. dataSource>
    24. environment>
    25. environments>
    26. <mappers>
    27. <mapper resource="com/angen/dao/MemberDao.xml"/>
    28. mappers>
    29. configuration>

    properties标签

     

     

    1. configuration
    2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    4. <configuration>
    5. <properties resource="jdbc.properties">properties>
    6. <environments default="dev">
    7. <environment id="dev">
    8. <transactionManager type="JDBC"/>
    9. <dataSource type="POOLED">
    10. <property name="driver" value="${jdbc.driver}"/>
    11. <property name="url" value="${jdbc.url}"/>
    12. <property name="username" value="${jdbc.username}"/>
    13. <property name="password" value="${jdbc.password}"/>
    14. dataSource>
    15. environment>
    16. <environment id="test">
    17. <transactionManager type="JDBC"/>
    18. <dataSource type="POOLED">
    19. dataSource>
    20. environment>
    21. <environment id="product">
    22. <transactionManager type="JDBC"/>
    23. <dataSource type="POOLED">
    24. dataSource>
    25. environment>
    26. environments>
    27. <mappers>
    28. <mapper resource="com/angen/dao/MemberDao.xml"/>
    29. mappers>
    30. configuration>

     在org.apache.ibatis.type.TypeAliasRegistry我们发现有很多别名

     那么我们在配置映射文件的时候可以不可以写别名呢?

    在核心配置文件中我们可以使用

    typeAliases标签,来给类起别名
    1. <typeAliases>
    2. <typeAlias type="com.angen.pojo.Member" alias="Member">typeAlias>
    3. typeAliases>

    由于有很多pojo类,如果按照以上方式一个一个配置很麻烦,所以有了如下这种方式:通过package标签进行包扫描批量配置别名。

    表示将pojo包下的类都配置别名,别名就是类名,不区分大小写。

    1. <typeAliases>
    2. <package name="com.angen.pojo"/>
    3. typeAliases>

     mappers标签作用引入加载映射配置文件。

    1. <mappers>
    2. <mapper resource="com/angen/dao/MemberDao.xml"/>
    3. mappers>

    通过包扫描的方式批量加载映射配置文件

    1. <mappers>
    2. <package name="com.angen.dao"/>
    3. mappers>

    配置好,并且写好其他代码后执行 

    1. public class TestMybatis {
    2. @Test
    3. public void testFindAll() throws IOException {
    4. //测试findall方法
    5. //创建SqlSessionFactoryBuilder
    6. SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    7. //读取核心配置文件
    8. InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
    9. //创建SqlSessionFactory对象
    10. SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
    11. //创建SqlSession
    12. SqlSession sqlSession = sqlSessionFactory.openSession();
    13. //创建MemberDao代理对象
    14. MemberDao mapper = sqlSession.getMapper(MemberDao.class);
    15. //调用想执行的方法
    16. List allMember = mapper.findAll();
    17. for (Member member : allMember) {
    18. System.out.println(member);
    19. }
    20. //增删改操作需要提交事务
    21. sqlSession.commit();
    22. //关闭资源
    23. sqlSession.close();
    24. }
    25. }

    idea mybatis插件

    free-idea-mybatis是一款增强idea对mybatis支持的插件,主要功能如下: 
    生成mapper xml文件
    快速从代码跳转到mapper及从mapper返回代码
    mybatis自动补全及语法错误提示
    集成mybatis generator gui界面
    根据数据库注解,生成swagger model注解

     直接alt+回车,自动生成映射文件中的标签                                


    配置Mybatis日志打印,mybatis底层需要使用log4j日志打印框架来打印日志。

    1,引入log4j引入依赖

    2,配置log4j的配置文件

    1. <dependency>
    2. <groupId>log4jgroupId>
    3. <artifactId>log4jartifactId>
    4. <version>1.2.17version>
    5. dependency>
    6. <dependency>
    7. <groupId>org.slf4jgroupId>
    8. <artifactId>slf4j-apiartifactId>
    9. <version>1.6.1version>
    10. dependency>
    11. <dependency>
    12. <groupId>org.slf4jgroupId>
    13. <artifactId>slf4j-log4j12artifactId>
    14. <version>1.6.1version>
    15. dependency>

    在 resources 目录下创建 log4j.properties 文件,复制以下代码。

    可根据自身需求,将 文件输出的相关设置 中的 log4j.appender.file.File=./log/logFile.log 改变为自己的日志输出路径。

    1. #将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
    2. log4j.rootLogger=DEBUG,console,file
    3. #控制台输出的相关设置
    4. log4j.appender.console = org.apache.log4j.ConsoleAppender
    5. log4j.appender.console.Target = System.out
    6. log4j.appender.console.Threshold=DEBUG
    7. log4j.appender.console.layout = org.apache.log4j.PatternLayout
    8. log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
    9. #文件输出的相关设置
    10. log4j.appender.file = org.apache.log4j.RollingFileAppender
    11. log4j.appender.file.File=./log/logFile.log
    12. log4j.appender.file.MaxFileSize=10mb
    13. log4j.appender.file.Threshold=DEBUG
    14. log4j.appender.file.layout=org.apache.log4j.PatternLayout
    15. log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
    16. #日志输出级别
    17. log4j.logger.org.mybatis=DEBUG
    18. log4j.logger.java.sql=DEBUG
    19. log4j.logger.java.sql.Statement=DEBUG
    20. log4j.logger.java.sql.ResultSet=DEBUG
    21. log4j.logger.java.sql.PreparedStatement=DEBUG

  • 相关阅读:
    Flutter macOS开发教程之 界面布局与UI组件源码(教程含源码)
    Linux内核中ideapad-laptop.c文件全解析7
    【网页设计】基于HTML+CSS+JavaScript制作美食网站舌尖上的美食
    Laravel chunk和chunkById的坑
    AIGC专栏6——通过阿里云与AutoDL快速拉起Stable Diffusion和EasyPhoto
    docker小白使用笔记
    Bootstrap的CSS类积累学习
    Markdown使用方法
    Java基于JSP的幼儿园管理系统
    开发 integration 云云对接
  • 原文地址:https://blog.csdn.net/qq_42572322/article/details/125878265