web服务端开发|第五堂课

第五堂课1022

一、javaweb连接访问数据库

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

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

二、orm框架Mybatis 3.x 基础

orm框架

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

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

Mybatis

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

三、Mybatis 3.x入门

入门

  1. 新建一个Maven项目
    在这里插入图片描述
  2. 添加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依赖

  1. 打开设置确认maven配置
    在这里插入图片描述
  2. 打开pom文件,按住alt+insert插入依赖
    在这里插入图片描述
  3. 搜索我们需要的依赖并添加
    在这里插入图片描述
  4. compile,编译安装依赖
    在这里插入图片描述
  1. 配置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 行为的设置和属性信息。 配置文档的顶层结构如下:
在这里插入图片描述

  1. 定义User实体类(java/myproject/domain/User.class)
  2. 定义UserMapper的访问接口(java/myproject/dao/UserMapper.class(接口))
  3. 配置UserMapper.xml,获取参数中的值(resource/mapper/UserMapper.xml)
    mybatis里面Mapper的xml文件中resultType值说明
  4. 编写操作数据库类(java/myproject/SqlSessionDemo.class)
  5. 运行查询
最详细的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

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

  1. Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5
  2. Resources.getResourceAsStream(resource)找不到该方法
ResourcesgetResourceAsStream(resource);改为
Resources.class.getResourceAsStream(resource);
  1. 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’:

  2. 找不到文件

Mybatis的工作流程

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caesarding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值