在开始学习连接数据库的时候,我们第一次接触的是最基本的JDBC,使用起来过于繁琐。
首先来看看JDBC是怎么连接数据库,进行数据的增删改查。
- 加载 jdbc驱动类
- 建立连接
- 创建statement
- 执行查询
- 处理结果
- 关闭连接
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename","account","password");
statement sta=con.createStatement();
ResultSet rs=sta.executeQuery("select * from tableName");
while(rs.next()){
system.out.println(rs.getString(name));
}
con.close();
我们可以看到,每执行一个操作,我们都要经过6步,难免过于繁琐,我们需要对这几个步骤进行封装。
-
经常的连接和关闭数据库浪费资源
使用数据库连接池来解决资源的浪费。 -
sql过于分散很多类中
sql语句分散在很多的类中,不便于管理,需要把sql放在统一的文件,使用xml来存放sql,那么就需要sql的加载器来读取xml
3. 传参 动态sql
如果sql是字符串/固定的,对一个查询语句的多个条件查询,需要多个语句,我们能够构建一个动态的sql, 回想jsp中的jstl,有<c:if></c:if> 可以做判断,那么对一条sql查询的多个条件我们也可以使用<c:if></c:if> 。
mybais的动态sql解决了这一问题。
4. jdbc查询的结果是数组,没有映射到对象中,处理起来很困难,繁琐。
需要把结果映射到对象。 -
解决重复的sql
经常我们会遇到sql重复的问题,例如做查询的时候,结果很多时候都是相同的对了一点点不同,这个是是否需要我们 将重复的sql独立成模块,在需要的地方引入。
mybatis提供映射语句可以继承。
以上这些也是mybatis 为我们提供的。
框架可以加快我们的工作效率,如果就此不去探究其原理,那么很块就会成为框架的奴隶,被框架束缚。