Mybatis学习笔记(一)——传统jdbc操作的不足
Mybatis学习笔记(一)
何为框架?
-
三层架构
-
mvc:web开发中,使用mvc架构模式,m:数据模型,v:视图,c:控制器
- c控制器:接收请求,调用service层,显示请求的处理的结果,如:servlet作为控制器
- v视图:jsp,html,展示请求的处理结果,将m中的数据显示出来
- m数据:来自数据库,文件,或者网络
-
mcv的作用:
- 实现解耦合
- 让mvc分层使系统扩展性更好,更易维护
-
三层架构:
- 界面层(视图层):接收用户的请求,调用service,显示请求的处理结果,包含jsp,html,servlet等,对应的包controller
- 业务逻辑层:处理业务逻辑,使用算法处理数据,将数据返回给界面层,对应于service包
- 持久层:访问数据库或文件或网络对应于dao包
用户访问--->界面层--->业务逻辑层--->持久层--->数据库
-
优势:结构清晰,耦合度低,分工明细,可维护性高,有利于标准化,有利于逻辑复用
-
-
三层架构模式和框架
- 界面层--SpringMVC
- 业务层--Spring
- 持久层--Mybatis
-
框架(framework):
- 可重用的、应用骨架、模板,方便用于开发,可升级,改造
- 解决的问题:
- 实现技术的整合
- 提高开发效率
-
Mybatis解决的问题
-
传统的JDBC操作流程
//加载配置文件 InputStream in = Jdbc_Utils.class.getResourceAsStream("pro.properties"); Properties properties = new Properties(); properties.load(in); url = properties.getProperty("url"); user = properties.getProperty("user"); password = properties.getProperty("password"); Driver = properties.getProperty("Driver"); //注册驱动 Class.forName(Driver); //获取连接 connection = DriverManager.getConnection(url, user, password); String sql = "select * from user where username = ? and PASSWORD = ?"; //创建用于执行sql语句的statement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1,usermame); preparedStatement.setString(2,password); //获得结果集 res=preparedStatement.executeQuery(); //使用结果集 while(res.next){ res.getXxx(Xxx); } //关闭资源 res.close(); preparedStatement.close(); connection.close();
-
优点:直观,缺点:操作繁琐,重复,除了核心sql语句外,消耗大量时间重复工作
-
-
Mybatis框架概述:
- 一个持久层框架,减轻JDBC的复杂性,#专注于SQL语句的处理#
- 从xml或注解中获取sql语句,将结果集ResultSet转换为java对象
- 关闭资源
- 将sql语句与java代码解耦合
- 底层仍然是JDBC