MyBatis框架总结SSM框架1

SSM框架

web层      springMVC

业务层     spring

 持久层    MyBatis

jdbc 程序回顾

  • 注册驱动

  • 获得连接

  • 创建预编译sql语句对象

  • 设置参数, 执行

  • 处理结果

  • 释放资源

  •     public static void main(String[] args) {
            Connection connection = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                //1.加载数据库驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.通过驱动管理类获取数据库链接
                connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "123456"); 
                //3.定义 sql 语句 ?表示占位符
                String sql = "select name from user where username = ?";
                //4.获取预处理 statement
                preparedStatement = connection.prepareStatement(sql);
                //5.设置参数,第一个参数为 sql 语句中参数的序号(从 1 开始),第二个参数为设置的参数值
                preparedStatement.setString(1, "王五");
                //6.向数据库发出 sql 执行查询,查询出结果集
                resultSet = preparedStatement.executeQuery();
                //7.遍历查询结果集
                while (resultSet.next()) {
                    System.out.println(resultSet.getString("id") + "
                            "+resultSet.getString(" username"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
    		//8.释放资源
                if (resultSet != null) {
                    try {
                        resultSet.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (preparedStatement != null) {
                    try {
                        preparedStatement.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (connection != null) {
                    try {
                        connection.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    jdbc 问题分析

  • 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。

  • Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大, sql 变动需要改变java 代码。

  • 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。

  • 对结果集解析存在硬编码(查询列名), sql 变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成 pojo 对象解析比较方便

  • MyBatis: 持久层的一个框架, 封装了JDBC. 操作数据库

  • 为什么要学习MyBatis?

    • JDBC那一套代码和DBUtils都有一些很明显的缺点, JDBC和DBUtils不适合做项目

    • MyBatis是工作里面的主流的持久层框架, 使用几率特别大

Mybatis快速入门

1.需求

  • 使用MyBatis查询所有的用户, 封装到List集合

2.分析

  1. 创建Maven工程(java), 添加mybatis的依赖坐标

  2. 创建pojo (javabean)

  3. 创建UserDao接口

  4. 创建UserDao映射文件 (xml配置文件)

  5. 创建MyBatis核心配置文件SqlMapConfig.xml (xml配置文件)

  6. 编写java代码测试

  7. CREATE DATABASE mybatis_day01;
    USE mybatis_day01;
    CREATE TABLE t_user(
    		uid int PRIMARY KEY auto_increment,
    		username varchar(40),
    	 	sex varchar(10),
    		birthday date,
    		address varchar(40)
    );
    
    INSERT INTO `t_user` VALUES (null, 'zs', '男', '2018-08-08', '北京');
    INSERT INTO `t_user` VALUES (null, 'ls', '女', '2018-08-30', '武汉');
    INSERT INTO `t_user` VALUES (null, 'ww', '男', '2018-08-08', '北京');

    创建Maven工程(jar)导入坐标

     <!--1. 添加依赖-->
        <dependencies>
            <!--MyBatis坐标-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.6</version>
            </dependency>
            <!--mysql驱动-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.37</version>
            </dependency>
            <!--单元测试-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.10</version>
                <scope>test</scope>
            </dependency>
    
            <!--lombok 依赖-->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.18</version>
            </dependency>
        </dependencies>

    创建User实体类

package com.itheima.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public cl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值