MyBatis框架(详述)
文章目录
1.概述
原是Apache的一个开源项目ibatis,2010年6月这个项目由Apache Software Foundation迁移到了Google Code,随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。是一个基于java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程,它使用了ORM思想实现了结果集的封装。
ORM:Object Relational Mapping(对象关系映射),即:把数据库表和实体类及实体类的属性对应起来,让开发人员可以操作实体类就可以实现对数据库表的操作。
Mybatis 中文官网 https://mybatis.org/mybatis-3/zh/getting-started.html
安装
要使用MyBatis,只需要将mybatis-x.x.x.jar文件置于类路径(classpath)中即可。
如果使用Maven来构建项目,则需要将下面的依赖代码置于pom.xml文件中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
为什么用到mybatis?传统JDBC编程的问题
public static void main(String[] args)
{
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet rs = null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理类获取数据库链接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root","root");
//定义 sql 语句
String sql = "select * from userInfo where username = ?";
//获取预处理
statement preparedStatement = connection.prepareStatement(sql);
//为占位符赋值
preparedStatement.setString(1, "林冲");
//向数据库发出 sql 语句,获取查询结果集
rs =preparedStatement.executeQuery();
//遍历查询结果集 while(rs.next()){
System.out.println(rs.getString("id");
System.out.println(rs.getString("username");
}
}catch (Exception e)
{
e.printStackTrace();
}finally{
//释放资源
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(preparedStatement!=null){