持久层框架MyBatis学习(1)-mybatis简介

一,MyBatis的简介

MyBatis 本是2001年apache的一个开源项目iBatis1.0,后来出了iBatis2.0, 2010年出了IBatis3.0这个项目迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis底层由JDBC实现。

二,JDBC的缺陷

1.用mysql创建一个数据库

创建一个user表,里面有id字段和其他字段。有需求根据id查询用户,用JDBC实现。

2.创建java项目导入JDBC的jar包

mysql-connector-java-5.1.7-bin.jar

3.测试代码

public static void main(String[] args) {
		//需求:根据id查询用户 select * from user where id = 1
		Connection connection = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			//1.加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			//2.获取连接
			connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/learn", "root", "dujuncheng");
			//3.获取预处理
			stmt = connection.prepareStatement("select * from user where id = ?");
			//4.设置参数
			stmt.setInt(1, 1);
			//5.执行,得到结果集
			rs = stmt.executeQuery();
			//6.从结果集中获取结果
			while(rs.next()) {
				System.out.println(rs.getInt(1)+"----"+rs.getString(2));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				rs.close();
				stmt.close();
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

4.jdbc缺陷

1).涉及到重复创建连接和释放连接,造成资源浪费。 解决方式:使用连接池
2).出现硬编码,体现在数据库驱动,url,用户名密码,sql。解决方式:使用配置文件
3).结果获取不方便。解决方式:把结果放入Javabean中

三,mybatis的架构

1.核心配置文件 sqlMapConfig.xml
2.映射文件
3.sqlSessionFactory -> sqlSession -> 执行器(executor)-> mapperStatement(封装的sql语句)
4.输入映射(传入参数)
支持数据类型:

  • 基本数据类型:基础类型以及包装类,String
  • POJO
  • Map
  • 包装的POJO:一个pojo中有pojo属性

5.输出的映射(产生的结果)
产生的结果类型:

  • 基本数据类型:基础类型以及包装类,String
  • POJO
  • Map
  • List

你可能感兴趣的:(笔记)