mybatis 第一天 mybatis的基础知识

持久层的框架,对jdbc的封装

课程安排

第一天:基础知识(重点,内容量多)

最简单的jdbc程序

public class JdbcTest{

public static void main(String[] args){
    //数据库连接
    Connection connection = null;
    //预编译的Statement,使用预编译的statement提高数据库的性能
    //通过preparedStatement向数据库发送一个sQL语句,数据库那边进行编译你写的SQL语句
    //编译完后存在数据库端的缓存中,下次再发如果sql相同,它就不会编译了,提高性能
    PreparedStatement preparedStatement = null;
    //结果集对象
    ResultSet resultSet = null;

    try{
        //加载数据库驱动
        Class.forName("com.mysql.jdbc.Driver");

        //通过驱动管理类获取数据连接
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncodeing=utr-8","root","mysql");
        //定义sql语句?表示占位符
        String sql = "select * from user where username = ?";
        //获取预处理的statement
        preparedStatement = connection.preparedStatement(sql);
        //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
        preparedStatement.setString(1,"王五");//1表示占位符的位置
        //向数据库发出sql执行查询,查询出结果集
        resultSet = preparedStatement.executeQuery();
        //遍历查询结果集
        while(resultSet.next){
            System.out.println(resultSet.getString("id")+" "+resultSet.getString("username"));
        }
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        //释放资源
        if(resultSet != null){
            try{
                resultSet.close();
            }catch(SQLException e){
                e.printStackTrace();
            }
        }
    }

    if(preparedStatement != null){
        try{
            connection.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }    

    if(Connection != null){
        try{
            connection.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }
}

}

对原生态jdbc程序(单独使用jdbc开发)问题总结
mybatis框架原理
mybatis入门程序
用户的增、删、改、查
mybatis开发dao两种方法:
原始dao开发方法(程序编写dao接口和dao实现类)(掌握)
mybatis和mapper接口(相当于dao接口)代理方法(掌握)
mybatis配置文件SqlMapCoinfig.xml
mybatis核心:
mybatis输入映射
mybatis输出映射

第二天:高级知识

高级结果集映射(一对一、一对多、多对多)
mybatis延迟加载
mybatis查询缓存(一级缓存、二级缓存)
mybatis和spring进行整合(掌握)
mybatis的逆向工程

1原生态的jdbc程序中问题总结

1.1、环境:
jdk环境:jdk 1.7
开发环境:Eclipse
数据库:mysql

1.2、创建mysql数据库

sql_table.sql 记录了表结构
sql_data.sql 记录了测试数据,在实际的企业开发中,最后提供一个初始化的数据脚本

1.3、jdbc程序
使用jdbc查询mysql数据库中用户表的记录。

1.4、问题总结
1、数据库连接,使用时就创建,不适用立即释放,对数据进行频繁的开启和关闭
造成资源浪费,影响了数据库的性能

解决方案:使用数据库连接池管理连接
2、将sql语句硬编码到Java代码中,如果sql语句修改,重新编译java代码,
不利于系统维护。
设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java
代码进行重新编译。
3、向preparedStatement中设置参数,对占位符和位置和设置参数值,
硬编码在java代码中,不利于系统维护。
设想:将sql语句及占位符和参数全部配置在xml中。
4、从resultSet中遍历结果集数据时存在硬编码,将获取表的字段进行硬编码,
不利于系统维护。
设想:将查询的结果自动的映射成java对象。

2 mybatis 框架
2.1 mybatis是什么?

mybatis是一个持久层框架,是Apache下的顶级项目
mybatis托管到googlecode下,再后来托管到github下

mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式
,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需求的sql语句。

mybatis可以将向preparedStatement中输入参数自动进行输入映射,将查询结果集
灵活的映射成java对象。

2.2 mybatis框架

3 入门程序
3.1需求
根据用户id(主键) 查询用户信息
根据用户名称模糊用户信息
添加用户
修改用户
删除用户

环境:
jdk环境:jdk 1.7
开发环境:Eclipse
数据库:mysql

Mybatis的运行环境(jar包)
从Github下3.2.7版本

lib下:
mybatis-3.2.7.jar:核心包
log4j.jar:
cglib:动态代理(mapper代理)
mybatis.pdf操作指南
加入mysql数据库的驱动包
3.2 log4j.properties

3.3 工程目录结构

3.4 SqlMapConfig.xml
配置mybatis的运行环境、数据源、事务等。

3.5 根据用户id查询用户的信息
3.5.1 映射文件
映射文件命名:
User.xml(原始的ibatis的命名方式),mapper代理开发映射文件名称叫XXXMapper.xml,比如UserMapper.xml、ItemsMapper.xml
在映射文件中配置sql语句

MyBatis 学习入门的更多相关文章

  1. MyBatis学习-入门

    eclipse + jdk 1.8 + mybatis 1.数据库准备 安装mysql数据库,建立数据库test,在test库下建立测试的表 CREATE TABLE `t_user` ( `id` ...

  2. MyBatis学习-入门篇

    一.MyBatis 介绍 MyBatis 是支持普通的 SQL 查询,存储过程和高级映射的优秀持久层框架,可以进行更为细致的 SQL 优化,减少查询字段.几乎消除了所有的 JDBC 代码和参数的手工设 ...

  3. Mybatis学习—入门

    总结自 Mybatis官方中文文档 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手 ...

  4. 【转】MyBatis学习总结(一)——MyBatis快速入门

    [转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC ...

  5. MyBatis学习总结(一)简单入门案例

    MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...

  6. Mybatis学习笔记之一(环境搭建和入门案例介绍)

    一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...

  7. MyBatis学习总结-MyBatis快速入门的系列教程

    MyBatis学习总结-MyBatis快速入门的系列教程 [MyBatis]MyBatis 使用教程 [MyBatis]MyBatis XML配置 [MyBatis]MyBatis XML映射文件 [ ...

  8. Mybatis基础入门学习

    Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...

  9. MyBatis学习总结(一)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

随机推荐

  1. 搭建高可用的MongoDB集群

    http://www.csdn.net/article/2014-04-09/2819221-build-high-avialable-mongodb-cluster-part-1/1 在大数据的时代 ...

  2. Azure Redis Cache作为ASP.NET Session状态提供程序

    从上一篇博客<使用Azure Redis Cache>我们已经可以创建并使用Redis Cache为我们服务了. 作为Web开发者,我们都知道Session状态默认是保存在内存中的,它的优 ...

  3. 实现ios屏幕的横竖屏自适应

    整理总结中... 刷新 可以通过 -setNeedsUpdateConstraints -layoutIfNeeded 两个方法来刷新约束的改变,使UIView重新布局, 和CoreGraphic的- ...

  4. 电脑中java环境的搭建

  5. 基于SMB共享文件夹的上传于下载

    需要用到的jar包   http://pan.baidu.com/s/1skQFk77 1.首先在一台电脑上设置共享文件夹 ----上传下载的方法类 package com.strongit.tool ...

  6. bzoj2748:[HAOI2012]音量调节

    思路:刷水有益健康. #include<iostream> #include<cstdio> #include<cstring> #include<algor ...

  7. Generate GUID using vbscript

    在 .msi 中 的 Component table,查看 ComponentId 列,是一个16进制数的字符串, 用 InstallShield IDE 添加一个 component ,Compon ...

  8. php 二维转一维

    Array(    [0] => Array        (            [salesorderid] => 10001            [createdtime] =& ...

  9. validate中remote的用法

    jquery中的插件validate主要可以用于表单验证,极大地方便了我们,而validate中的remote方法更是非常的方便.以下介绍它的两个主要用途 1.注册时用于验证用户名是否存在 >& ...

  10. 路由器无线桥接 router wireless bridge

    实验环境:TP-Link A,TP-Link B,两个路由器都有子网,分别为子网 A,子网 B.TP-Link A连接学校子网 IP A,TP-Link B连接学校子网 IP B.两个路由器都能够通过 ...