web服务端开发|第五堂课

it2025-11-27  6

第五堂课1022

第五堂课1022一、javaweb连接访问数据库原生jdbc访问数据库步骤(面向过程) 二、orm框架Mybatis 3.x 基础orm框架Mybatis 三、Mybatis 3.x入门入门最详细的Log4J使用教程 实验过程出现的问题及解决Mybatis的工作流程 思考:ORM框架和原生JDBC访问的差异点

第五堂课1022

一、javaweb连接访问数据库

原生jdbc访问数据库步骤(面向过程)

加载jdc驱动程序(每次都要加载驱动)创建数据库的连接(连接资源不能复用、浪费资源)创建preparedStatement执行sql语句(sql和java代码耦合一起,改动不易,参数不够灵活)处理结果集(处理结果集麻烦,不能自动映射到实体类)关闭jdbc对象资源

二、orm框架Mybatis 3.x 基础

orm框架

orm框架:对数据库的表和POJO(plain ordinary java object)java对象做映射的框架

HibernateJPA-Spring Data JPAMybatis:半自动化(半ORM框架),便于写sql,轻量级,在阿里等大厂广泛使用,推荐

Mybatis

Mybatis 支持自定义sql、存储过程以及高级映射 免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作 可以通过简单的XML或者注解来配置和映射原始类型、接口和java pojo(plain old java objects,普通老式java对象)为数据库中的记录 MyBaties文档

三、Mybatis 3.x入门

入门

新建一个Maven项目 添加maven依赖 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </dependency>

通过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)运行查询

最详细的Log4J使用教程

教程 参考

#配置根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%n

实验过程出现的问题及解决

Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5Resources.getResourceAsStream(resource)找不到该方法 将ResourcesgetResourceAsStream(resource);改为 Resources.class.getResourceAsStream(resource);

org.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’:

找不到文件

Mybatis的工作流程

思考:ORM框架和原生JDBC访问的差异点

1: orm框架对sql封装了 原生jdbc对于代码的重构和修改不是很友好 2: jdbc每次执行sql都要访问数据库 效率慢 不如orm框架的效率高 3: jdbc连接关闭数据库流就能封装好,但是代码可读性不是很友好 orm框架只要通过简单的xml配置,将sql写在mapper.xml中,实现了 业务层和数据层的分离,结构清晰

最新回复(0)