mybatis就是用来封装jdbc的持久层框架,和hibernate都属于orm框架,但是hibernate是一个完全的orm框架,mybatis是不完全的。
mybatis会只将输入参数、输出结果进行映射
mybatis让程序员只关注sql本身,而不需要去关注连接的创建、statement的创建等操作。
原生态的jdbc代码
public static void main(String[] args) {
Connection connection=null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try {
// 1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.通过驱动管理类获取数据库链接
connection=DriverManager.
getConnection("jdbc:mysql://localhost:3306/test?
characterEncoding=utf-8","root", "1234");
// 3.定义sql语句,?表示占位符
String sql="select * from test where id=?";
// 4.获取与处理statement
preparedStatement=connection.prepareStatement(sql);
// 5.设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
preparedStatement.setString(1,"2");
// 6.向数据库发出sql执行查询,查询出结果集
resultSet=preparedStatement.executeQuery();
// 7.遍历查询结果集
while(resultSet.next()) {
System.out.println(resultSet.getString("id")+resultSet.getInt("age"));
}
}catch(Exception e){
e.printStackTrace();
}finally {
// 8.释放资源
if(resultSet!=null) {
try {
resultSet.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
可以发现存在一些问题 →→→及解决
1)在创建链接时存在硬编码 →→→全局配置文件
2)执行statement时存在硬编码 →→→映射文件
3)频繁地开启和关闭数据库连接,会造成数据库性能下降 →→→全局配置文件
这就是mybatis的基本思路