MyBatis是什么?
mybatis是为解决java对象持久化到数据库的问题,java语言本身有自己的数据库连接技术就是JDBC。
而JDBC操作过于复杂,严重影响编程效率。mybatis使用XML格式或注解来配置,实现了将数据(java对象)映射到数据库。
mybatis和JDBC的对比。
JDBC连接数据库的步骤:有一下六步曲
首先开始前java项目中导入jdbc驱动jar:ojdbc*.jar 准备工作完毕下面是jdbc的操作步骤。
1.注册数据库驱动类以oracle为例
Class.forName("oralce.jdbc.OracleDriver");
2.创建数据库连接
String url = "jdbc:oralce:thin:@IP:1521:xe";
Connection conn = DriverManager.getConnection(url,"databaseusername","password");
3.创建statement用于执行sql
Statement stm = conn.createStatement();
4.创建sql并执行
String sql = "select * from tablename where ..";
ResultSet rs = stm.executeQuery(sql);//查询语句,返回ResultSet类型
注:执行insert、update、delete操作:int row = stm.executeUpdate(sql);返回int类型代表此操作影响的行数
5.处理结果(针对查询结果处理)
while(rs.next()){
//获取查询的字段值两种方式并且自行判断数据类型
Xxx xx = rs.getXxx("字段名");
XXX xx = rs.getXxx(index);
}
6.释放资源(关闭连接)
conn.close();
=================================================================
mybatis的操作:Mybatis摒弃了jdbc代码
1.核心配置文件将数据库连接做出了描述:mybatis-xxx.xml文件描述了数据库连接和注册映射文件:运行环境、事务策略、数据源、mapper文件注册
2.用XML(mapper文件)做POJO和数据库的映射,数据库类型和java数据类型自动做了处理。
所有对数据库的db操作都基于:SqlSession即框架和数据库的一个会话
步骤:1.获取SQLSession
2 .获取dao对象
3.调用dao方法
4.事务提交session.commit();//crud
5.关闭session.close();
持久化操作的生命周期法是一个sqlsession.
下面一个重要问题就是:获取数据库的操作工具sqlsession。
Mybatis践行工厂模式,session由SQLSessionFactory生产,并且提供了构建工厂的核SqlSessionFactoryBuilder
构建SQLSessionFactory的两种方式:
1.xml构建
2.java程序构建
未完待续。。。。。。