Mybatis学习第一天

1.数据库连接字符串,用户名,密码等信息硬编到java代码中,维护不方便,修改内容时需要重新编译java代码,解决方案,放置到外部配置文件中
2.sql语句硬编译到java代码中,问题

a.维护不方便
b.代码重用性差
解决:假设能否将sql配置到外部文件

3.手动设置参数

a.将参数硬编译到java代码中
b.判断参数类型,使用极其不便
解决:能否自动设置参数?

1.数据库连接字符串,用户名,密码等信息硬编到java代码中,维护不方便,修改内容时需要重新编译java代码,解决方案,放置到外部配置文件中
2.sql语句硬编译到java代码中,问题

a.维护不方便
b.代码重用性差
解决:假设能否将sql配置到外部文件

3.手动设置参数

a.将参数硬编译到java代码中
b.判断参数类型,使用极其不便
解决:能否自动设置参数?

 

mybatis的前身是ibatis,Apache的一个开源项目,2010年这个项目从Apache迁移到Google Code改名为mybatis 之后将
版本升级到3.x,其官网:http://blog.mybatis.org/,从3.2版本之后迁移到github,目前稳定版本是3.2.8
Mybatis是一个类似于hibernate的orm持久化框架,支持普通sql查询,存储过程以及高级映射。mybatis通过使用简单的xml或注解用于
配置和原始映射,将接口和pojo对象映射成数据库中的记录
由于Mybatis是直接基于JDBC做了简单的映射包装,所以从性能角度来看
JDBC>Mybatis>Hibernate

 

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCTest
{




public static void main(String[] args)
{

Connection connection = null;

PreparedStatement prepareStatement = null;

ResultSet executeQuery = null;

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

//获取连接
String url = "jdbc:mysql://127.0.0.1:3306/mybatis";
String username = "root";
String password = "admin";
connection = DriverManager.getConnection(url, username, password);

//获取statement对象
String sql = "select * from tb_user where user_name = ?";
prepareStatement = connection.prepareStatement(sql);

//设置参数
prepareStatement.setString(1, "zhangsan");

//执行sql 获取结果集
executeQuery = prepareStatement.executeQuery();

//遍历结果集
while (executeQuery.next())
{
System.out.println("username :" + executeQuery.getString("user_name"));
System.out.println("name :" + executeQuery.getString("name"));
System.out.println("age :" + executeQuery.getString("age"));
}
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try
{
if (null != executeQuery)
{
executeQuery.close();
}
if (null != prepareStatement)
{
prepareStatement.close();
}
if (null != connection)
{
connection.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}

 

Mybatis的整体架构

                                                配置文件

            mybatis-config.xml(全部参数,数据源)

            Mapper.xml(多个,多个Statement)

                    |

                SqlSessionFactory

                    |

                   SqlSession

                    |

                  executor(执行器)

参数输入Map,HashMap         |            (输出)        参数输出Map,HashMap,Pojo    

pojo,基本数据类型(输入)    MappedStatement(一个一个的sql)      基本数据类型

                    |

                    数据库

 

1.配置文件,有两类配置文件

a)其中一类是,mybatis-config.xml(文件名称不是写死的,随便定义),定义全局参数

b)第二类,Mapper.xml,可以是多个,每个mapper.xml中定义了多个sqlStatement

2.通过配置文件得到SqlSessionFactory

3.通过SqlSessionFactory得到SqlSession

4.SqlSession通过底层提供的执行器来执行Statement(sql)执行器有两种实现

a)基本实现

b)带有缓存功能的实现

5.通过对MapperStatement输入参数执行sql,输出结果,在MyBatis中输入和输入的类型,Map.pojo.基本类型

posted @ 2015-04-14 16:41  1992_00  阅读(84)  评论(0编辑  收藏  举报