orm框架:对数据库的表和POJO(plain ordinary java object)java对象做映射的框架
HibernateJPA-Spring Data JPAMybatis:半自动化(半ORM框架),便于写sql,轻量级,在阿里等大厂广泛使用,推荐Mybatis 支持自定义sql、存储过程以及高级映射 免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作 可以通过简单的XML或者注解来配置和映射原始类型、接口和java pojo(plain old java objects,普通老式java对象)为数据库中的记录 MyBaties文档
通过MVN仓库复制自己需要的依赖,粘贴到pom.xml文件中
通过intellij idea工具就能搜索下载maven依赖
打开设置确认maven配置 打开pom文件,按住alt+insert插入依赖 搜索我们需要的依赖并添加 compile,编译安装依赖 配置mybatis-config.xml(resource/config/mybatis-config.xml) IDEA新建mybatis-config.xml配置文件 创建模板 参考模板 <?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> <properties resource=""> <!-- 这些属性可以在外部进行配置,并可以进行动态替换--> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!-- jdbc:mysql:///mybatis_db是jdbc:mysql://localhost:3306/mybatis_db的简写--> <property name="url" value="jdbc:mysql///mybatis_db"/> <property name="username" value="root"/> <property name="password" value=""/> </properties> <settings> <!-- 是否开启驼峰命名自动映射--> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <!-- 可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="..." value="..."/> </transactionManager> <!-- 配置数据源--> <dataSource type="POOLED"> <property name="driver" value="${Driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!-- 映射器mappers:设置对应的数据库操作--> <!-- 使用相对于类路径的资源引用 --> <mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/> </mappers> </configuration>MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:
定义User实体类(java/myproject/domain/User.class)定义UserMapper的访问接口(java/myproject/dao/UserMapper.class(接口))配置UserMapper.xml,获取参数中的值(resource/mapper/UserMapper.xml) mybatis里面Mapper的xml文件中resultType值说明编写操作数据库类(java/myproject/SqlSessionDemo.class)运行查询教程 参考
#配置根Logger,set log levels log4j.rootLogger=ERROR, stdout # 选择需要记录日志的包 log4j.logger.dao=DEBUG #输出到控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出到日志文件 ### #log4j.appender.D = org.apache.log4j.DailyRollingFileAppender #log4j.appender.D.File = logs/log.log #log4j.appender.D.Append = true #log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志 #log4j.appender.D.layout = org.apache.log4j.PatternLayout #log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 保存异常信息到单独文件 ### #log4j.appender.D = org.apache.log4j.DailyRollingFileAppender #log4j.appender.D.File = logs/error.log ## 异常日志文件名 #log4j.appender.D.Append = true #log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!! #log4j.appender.D.layout = org.apache.log4j.PatternLayout #log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%norg.springframework.beans.factory.UnsatisfiedDependencyException: The error may exist in org/mybatis/builder/AuthorMapper.xml mybatis-config里面的mapper配置错误了 Mybatis报错:Error parsing SQL Mapper Configuration. UnsatisfiedDependencyException: Error creating bean with name ‘userController’:
找不到文件
1: orm框架对sql封装了 原生jdbc对于代码的重构和修改不是很友好 2: jdbc每次执行sql都要访问数据库 效率慢 不如orm框架的效率高 3: jdbc连接关闭数据库流就能封装好,但是代码可读性不是很友好 orm框架只要通过简单的xml配置,将sql写在mapper.xml中,实现了 业务层和数据层的分离,结构清晰
