框架基础-第一章 什么是框架

本文介绍了框架的基本概念,强调了框架在解决技术整合问题和提高开发效率方面的作用。以MyBatis为例,详细阐述了MyBatis作为半自动ORM持久层框架的工作原理,包括下载、配置和快速入门的步骤。通过创建SqlSessionFactory和SqlSession,演示了如何使用MyBatis进行数据库查询。此外,还提到了日志组件log4j2在框架执行和问题排查中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 认识框架

1.1 什么是框架
框架就是一个架子,例如,表演节目,舞台搭建好,表演什么节目,根据相应的需求来定。
框架是一个半成品,对于java语言来说,框架就是封装类别人写好的代码,在框架的基础上我们在进一步开发。

1.2 框架解决什么问题
框架解决的是技术整合的问题。软件开发环境和规模都很大,不可能任何一个项目的代码都从零开始,此时就需要一个非常优秀的框架把基础技术整合完毕,我们在它的基础上进一步开发。提高性能,扩展,易于维护,最终提高整个团队的开发效率。

1.3 什么时候使用框架
企业级大型项目开发

1.4 怎么使用框架
Java的框架具有一定的共性:
使用什么框架,就需要导入框架所必须的jar包
定义控制框架行为的配置文件(xml)
使用框架,就是调用框架中的API,来完成一系列相关的操作

2 回顾原生JDBC操作流程
查询用户表中所有的数据
加载数据库的驱动包
准备连接数据库的参数
获取Connection对象
准备SQL语句,并通过statement或者PreparedStatement来执行SQL
处理结果
关闭数据库连接对象
原生JDBC存在的问题
频繁的连接,释放数据库资源,降低系统的性能
SQL语句硬编码(就是把SQL语句写在程序中),难以维护SQL语句
参数和占位符对应问题
结果集解析麻烦,列名硬编码

3 MyBatis框架概述
MyBatis原本是Apache软件基金会的一个开源项目叫iBatis,2010年这个项目由Apache迁移到了google code上来管理并改名为MyBatis,2013年又迁移到了Github。

MyBatis是一个非常优秀的持久层框架(DAO层框架),它是对JDBC的封装,使得开发者只需要关注SQL语句(业务)本身即可,无需开发者处理加载驱动、获取连接、创建Statement等繁琐的操作。
MyBatis最大的特点就是把SQL语句写在XML配置文件中,而且MyBatis执行完SQL语句之后可以以对象形式返回(POJO/POJO集合等)

MyBatis是一个实现类ORM思想的持久层框架
ORM(Object/Relation Mapping)对象/关系映射,对象就是指的java中的类的实例,关系指的是关系型数据库

ORM思想:将数据库中的关系数据表映射为java中的对象,把对数据表的操作转换为对对象的操作,实现面向对象编程。因此ORM的目的是使得开发人员以面向对象的思想来操作数据库。
比如:原来添加使用的是INSERT INTO…,如果使用了实现ORM思想的持久层框架,就可以在Java程序中直接调用api,比如insert(User),达到操作对象即可操作数据库的效果。

Hibernate是一个全自动的ORM持久层框架,只需要编写POJO,在XML中定义好POJO属性和数据库表字段的映射/对应关系,就可以在Java中实现以面向对象的方式进行操作。SQL语句都不用编写,但是因为性能等问题,市场占有率越来越低。

MyBatis框架是一个半自动的ORM持久层框架,也可以在Java中实现以面向对象的方式操作数据库,但是需要我们自己编写SQL语句,MyBatis是目前比较流行的DAO中持久层的框架技
术。

4 MyBatis快速入门

4.1 MyBatis下载
官方学习网站:https://mybatis.org/mybatis-3/zh/index.html
MyBatis下载地址:https://github.com/mybatis/mybatis-3/releases
下载,然后解压获取mybatis的核心jar包:
4.2 MyBatis快速入门
步骤:
导入MyBatis框架的核心jar包
配置文件
解析配置文件,让mybatis框架通过配置文件的信息,去做一些行为
通过创建SqlSessionFactoryBuilder来解析配置文件,返回一个SqlSessionFactory对象
SqlSessionFactory对象,是一个专门用来创建SqlSession的工厂类
SqlSession中就提供了用于增删改查的相关方法。
mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>


解析mybatis-config.xml文件,并获取SqlSessionFactory对象,java文件代码:
//读取配置文件 InputStream inputStream=Resources.getResourceAsStream(“mybatis- config.xml”); //首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容, SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); //创建一个真正的SqlSessionFactory对象,SqlSessionFactory就类似于数据源对象 DataSourceSqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream); //创建一个SqlSession对象,该对象下就提供类一系列增删改查的方法 SqlSession sqlSession=sqlSessionFactory.openSession(); 以User为例,来完成数据库数据查询的操作:
提供一个User类:
public class User implements Serializable { private int id; private String username; private String password; private int state; private String email; private String source; private String create_time; private String remark; }
提供一个User类对应的mapper xml文件

<?xml version="1.0" encoding="UTF-8" ?> SELECT * FROM t_user

注册UserMapper.xml文件到MyBatis框架,在mybatis-config.xml文件中,通过标签

测试方法:
package com.bdit; import com.bdit.pojo.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import java.io.IOException; import java.io.InputStream; import java.util.List; public class MyBatisHelloWorld { @Test public void myBatisStart() throws IOException
{ //读取配置文件
InputStream inputStream=Resources.getResourceAsStream(“mybatis- config.xml”);
//首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容, SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder()
; //创建一个真正的SqlSessionFactory对象,SqlSessionFactory就类似于数据源对象 DataSourceSqlSessionFactorysqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,该对象下就提供类一系列增删改查的方法
SqlSession sqlSession=sqlSessionFactory.openSession();
//查询t_user表中所有的数据
List list=sqlSession.selectList(“test.findAll”);
for (User user:list){
System.out.println(user);
}
4.3 Java中的日志组件
log4j2.xml日志文件:
} }在Java中常用的日志组件,log4j—>log4j.properties,log4j2---->log4j2.xml,logback---- >xml,sl4j 我们使用log4j2作为日志的组件,需要导入 log4j-api-2.13.3.jar log4j-core-2.13.3.jar 日志:通过打印日志信息查看一个框架的执行的流程;通过日志查看软件运行期间发生的问题;通过配置日志 组件,可以控制日志信息输出的级别 日志的级别: A:off 最高等级,用于关闭所有日志记录 B:fatal 指出每个严重的错误事件将会导致应用程序的推出 C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行 D:warn 表明会出现潜在的错误情况 E:info 一般输出的应用程序的运行期间的信息 F:debug 一般用于细粒度级别上,对于程序的调试非常有帮助 G:all 最低级别,用于打开所有的日志记录 ERROR>WARN>INFO>DEBUG 日志信息输入的级别如果设置的是debug级别,日志信息会包含比debug级别高的日志信息,不会包含低级别 的日志信息。 <?xml version="1.0" encoding="UTF-8"?>

日志的实际应用:
package com.bdit; import com.bdit.pojo.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test;
import java.io.IOException; import java.io.InputStream; import java.util.List; public class MyBatisHelloWorld { @Test public void myBatisStart() throws IOException { //获取一个日志记录器对象 Logger logger= LogManager.getLogger(MyBatisHelloWorld.class); logger.info("==开始读取mybatis-config.xml文件="); //读取配置文件 InputStream inputStream=Resources.getResourceAsStream(“mybatis- config.xml”); //首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容, SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder(); logger.info(“创建SqlSessionFactory对象=”); //创建一个真正的SqlSessionFactory对象,SqlSessionFactory就类似于数据源对象 DataSourceSqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream); //创建一个SqlSession对象,该对象下就提供类一系列增删改查的方法 SqlSession sqlSession=sqlSessionFactory.openSession(); logger.info("==开始执行selectList方法,查询数据="); //查询t_user表中所有的数据 List list=sqlSession.selectList(“test.findAll”); for (User user:list){ System.out.println(user); } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值