大纲摘要:

    1、mybatis的介绍

    2、Mybatis的入门

      a) 使用jdbc操作数据库存在的问题

      b) Mybatis的架构

      c) Mybatis的入门程序

    3、Dao的开发方法

      a) 原始dao的开发方法——由ibatis遗留下来的

      b) mapper动态代理方式

    4、SqlMapConfig.xml文件说明

一、mybatis概述 

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。

  2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身

  而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

    Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatement、CallableStatement)配置起来,

  并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

    是一个不完全的orm框架

  根据经典的凡技术必登其官网的结论,官网文档很有必要参阅http://www.mybatis.org/mybatis-3/zh/index.html

 二、mybatis入门

【更新】 问题总结

    1、 在创建连接时,存在硬编码

      配置文件(全局配置文件)

    2、 在执行statement时存在硬编码

      配置文件(映射文件)

    3、 频繁的开启和关闭数据库连接,会造成数据库性能下降。

      数据库连接池(全局配置文件)

  很多硬编码,把程序写死了!

  1.mybatis架构

  mybatis第一天——入门与概述

  详细架构请参见:http://blog.csdn.net/luanlouis/article/details/40422941

//SqlSession本身只是一个接口,它依靠executor进行执行增删改查操作

三.入门程序

  导包:在github上下载mybatis,下载地址:

    https://github.com/mybatis/mybatis-3/releases

    包的结构如下:

mybatis第一天——入门与概述

  导入的包如下图所示:

  mybatis第一天——入门与概述

  引入核心jar包以及lib目录的下的依赖包

  引入Mysql驱动包(持久层框架需要连接数据库都必须 必须导入驱动包!!!)

  引入junit包(eclipse引入方法见另外一篇随笔)

  创建核心配置文件——(全局配置文件)

  新建一个与src同级的 source folder( maven的目录结构) 新建  SqlMapConfig.xml (约定大于配置,尽量不要修改名称)

  (实际开发时会与spring进行整合,配置文件会有改动) 

<?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>
    <!-- 和spring整合后 environments配置将废除-->
    <environments default="development">
        <environment id="development">
        <!-- 使用jdbc事务管理-->
            <transactionManager type="JDBC" />
        <!-- 数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
</configuration>

//ps:每次新建xml文件,第一件事应该是引入约束

   引入log4j.properties——这是从官方文档中PDF中拿的(官方文档的查阅有待加强)

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

  创建POJO类 User.java

package cn.pojo;

import java.util.Date;

public class User {
    private int id;
    private String username;// 用户姓名
    private String sex;// 性别
    private Date birthday;// 生日
    private String address;// 地址
    

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "User [> sex
                + ", birthday=" + birthday + ", address=" + address + "]";
    }

    
    

}
View Code

相关文章:

  • 2021-11-16
  • 2021-05-13
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2021-08-30
  • 2021-06-11
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-18
  • 2021-09-23
  • 2021-10-25
  • 2021-12-28
相关资源
相似解决方案