mybatis入门(一)——初试mybatis

mybatis介绍:
1. mybatis是一个持久层框架,是apache下的顶级项目;
2. 不完全的ORM框架。需要程序员自己去填写,但是也有输入和输出映射
3. 适用需求变化较多的项目,比如互联网项目
mybatis框架图:
这里写图片描述

  1.mybatis的核心是sqlMapConfig.xml,可以利用它配置映射文件,以及一些属性,和别名。关于它的详细介绍,参见:sqlMapConfig.xml详解
  2.sqlsessionFactory主要的作用:读取mybatis的核心配置文件,打开sqlsession
  3.sqlsession主要通过读取mapper文件,操作数据库,selectone或selectlist,或者找到mapper类,通过mapper类操作数据。具体两种方式可参见:mybatis入门(三)——Mapper代理开发替代传统DAO层开发
  4.executor是sqlsession的内容的执行器,用于操作数据库。
  5.mapped statement主要是mapper.xml的中的对于sql语句的封装,包括输入和输出参数。

总而言之,mybatis的这种框架目的是为了更方便的获取输入的参数,得到输出的参数。

mybatis基础:
这里写图片描述


原生的jdbc方式:


package cn.itcast.mybatis.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * 原始的jdbc方式
 * @author cyl
 *
 */

public class JdbcTest {
    public static void main(String[] args) {
        //1.数据库连接
        Connection connection=null;
        //2.预编译语句prepareStatement
        PreparedStatement preparedStatement=null;
        //3.结果集
        ResultSet resultSet=null;

        try {
            //加载数据库的驱动
            Class.forName("com.mysql.jdbc.Driver");
            connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","1");
            //定义sql语句
            String sqlString="select * from user where username = ?";
            preparedStatement=connection.prepareStatement(sqlString);
            //设置,参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数从序号2开始
            preparedStatement.setString(1, "陈小明");
            //向数据库发出sql语句查询,查询出结果集
            resultSet=preparedStatement.executeQuery();
            //遍历结果集:
            while (resultSet.next()) {
                System.out.println(resultSet.getString("id")+" "+resultSet.getString("username"));  
            }

        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            //释放资源:
            //1.释放结果集
            if(resultSet!=null){
                try {
                    resultSet.close();
                } catch (SQLException e2) {
                    e2.printStackTrace();
                }

        }
        //2.释放prepareStatement
            if(preparedStatement!=null){
                try {
                    preparedStatement.close();
                } catch (SQLException e2) {
                    e2.printStackTrace();
                }

            }
        //2.关闭连接
            if(connection!=null){
                try {
                    connection.close();
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }

}

    }


}

原生的JDBC代码回存在什么问题?

  • 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。

  • 将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。

  • 向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。
  • 从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。

Mybatis优点:

- 支持sql,存储过程以及高级映射;
- 避免几乎所有的原生JDBC的代码;
- 避免手动设置参数以及获取结果集;
- 支持输入和输出映射

结语

   感谢浏览,下面将介绍使用mybatis编程的方式,敬请关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值