一、什么是框架?
它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。框架其实就是某种应用的半成品,就是一组组件;框架一般是成熟的,不断升级的软件。
二、三层架构
表现层:
是用于展示数据的
业务层:
是处理业务需求
持久层:
是和数据库交互的三、JDBC相关基础知识回顾
**三、JDBC相关基础知识回顾
-
JDBC技术本质:
官方定义的一套操作所有关系型数据库的规则,即接口;各个厂商据库厂商趋去实现接口;
Connection:数据库连接对象
PreparedStatement:执行sql的对象
ResultSet:结果集对象 -
Spring的JdbcTemplate:
Spring中对jdbc的简单封装 -
Apache的DBUtils:
它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装 -
以上这些都不是框架,Spring的JdbcTemplate和Apache的DBUtils都只是工具类
四、mybatis概述
- mybatis是一个持久层框架,用java编写的。
- 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程
- 它使用了ORM思想实现了结果集的封装。
五、mybatis入门
第一步:创建maven工程并导入坐标
- 配置好数据库环境,创建对应表
- 如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
- 在pom.xml中配置其他需要的依赖:mysql log4j junit 等
第二步:创建实体类和dao接口
- 创建一个实体类User,实现Serializable,添加Getter、Setter、toString等方法
- 创建dao的接口
第三步:创建Mybatis的主配置文件
- 在resources文件夹里创建SqlMapConifg.xml文件
- 将以下头部信息全部粘贴进去
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
- 配置环境
<!--mybatis的主配置文件-->
<configuration>
<!--配置环境-->
<environments default="mysql">
<!--配置mysql的环境-->
<environment id="mysql">
<!--配置事务的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<!--配置连接数据库的4个基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
<property name="username" value="root"/>
<property name="password" value="qqqq"/>
</dataSource>
</environment>
</environments>
<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
<mappers>
<mapper resource="com/itheima/dao/UserDao.xml" />
</mappers>
</configuration>
第四步:创建映射配置文件
- 在resources文件夹里创建 com/itheima/dao/UserDao.xml配置文件
- 将以下头部信息复制到对对应配置文件内
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- 配置映射文件
<!--namespace是dao的全类名-->
<mapper namespace="com.itheima.dao.UserDao">
<!-- 配置查询所有 [id:dao内的方法名,标签内填充要执行的sql语句][resultType:往哪个对象封装] -->
<select id="findAll" resultType="com.itheima.domain.User">
SELECT * FROM USER ;
</select>
</mapper>
六、环境搭建的注意事项
-
在Mybatis中,它把持久层的操作接口名称和映射文件叫做:Mapper,所以:UserDao 和 UserMapper是一样的。
-
mybatis的 映射配置文件 位置必须和 dao接口的包结构 相同。
例如:dao的全类名为:com.itheima.dao.UserDao 那么映射文件全类名为:com/itheima/dao/UserDao.xml
-
映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
-
映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名
七、入门案例
第一步:读取配置文件
第二步:创建SqlSessionFactory工厂
第三步:创建SqlSession
第四步:创建Dao接口的代理对象
第五步:执行dao中的方法
第六步:释放资源
//第一步:读取配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
//第二步:创建SqlSessionFactory工厂
//【SqlSessionFactory是MyBatis中的一个重要的对象,它是用来创建SqlSession对象的,而SqlSession用来操作数据库的。】
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
//第三步:创建SqlSession
SqlSession session = factory.openSession();
//第四步:创建Dao接口的代理对象
UserDao userDao = session.getMapper(UserDao.class);
//第五步:执行dao中的方法
List<User> list = userDao.findAll();
//第六步:释放资源
session.close();
is.close();
- 注意事项:不要忘记在映射配置中告知mybatis要封装到哪个实体类中
- 配置的方式:指定实体类的全限定类名
八、mybatis注解入门
- 把UserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句
- 同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名
当前是自学java的第3个月,正在学习框架中,以上是楼主基于自己的理解做的笔记,有错误的地方希望大神能纠正一下!