一、框架
框架( Framework )是构成一类特定软件可复用设计的一组相互协作的类。框架规 定了你的应用的体系结构。 它定义了整体结构,类和对象的分割,各部分的主要责任,类 和对象怎么协作,以及控制流程。框架预定义了这 些设计参数,以便于应用设计者或实现 者能集中精力于应用本身的特定细节。 软件系统发展到今天已经很复杂了,特别是服务器 端软件,涉及到的知识,内容,问题太多。在某些方面使 用别人成熟的框架,就相当于让 别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且 框架一般 是成熟,稳健的,他可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等 问题。还有 框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不 断升级的,你可以直接享受别人升 级代码带来的好处。
二、ORM:
将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对 数据库的操作转化为对对象的操 作。因此ORM的目的是为了方便开发人员以面向对象的思 想来实现对数据库的操作。
三、JDBC问题:
①、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库 链接池可 解决此问题。 ②、Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大, sql 变动需要改变 java代码。 ③、使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能 少,修改 sql 还 要修改代码,系统不易维护。 ④、对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维 护,如果能将数据库记录封装成 pojo 对象解析比 较方便,没有实现实体类到数据库记录 的映射。 ⑤、没有提供缓存功能。
四、Mybatis相关介绍
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。 MyBatis 是一款优秀的持久层框架,它支持 SQL、存储过程以及高级映射。 如 JDBC 中 我们需要有繁琐的流程,和设置参数,并且获取结果集的时候也需要循环遍历,并且手动封装 到实体类对 象中 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 它内部封装了 jdbc,使开发者只需要关 注 sql 语句本身, 而不需要花费精力去处理加载驱 动、创建连接、创建 statement 等繁杂的过程。 MyBatis 可以使用 简单的 XML 或注解来 配置和映射 接口和 Java 的 实体类 MyBatis 有两种用法,一个是注解,一个是XML,各有千秋 Mybatis特性:
1、使用连接池对链接进行管理
2、SQL和代码分离,几种管理
3、参数映射和动态SQL
4、结果集映射
5、缓存管理
6、重复SQL的提取
7、插件机制
五、使用场景 :
操作持久化层(Dao),和JDBC一样,操作数据库的 当我们要写动态页面(jsp)和用户进 行交互的时候,就需要操作数据库。
六、Mybatis与Hibernate的区别
形象举例 : mybatis:机械工具,使用方便,拿来就用,但工作还是要自己来作,不过工具是活 的,怎么使用,由我决定。 hibernate:智能机器人,但研发它(学习、熟练度)的成本很高,工作都可以拜托给他 了,但仅限于它能做的事
七、Mybatis入门
第一步: 创建t_user表
第二步: 创建lib文件夹导入相应jar文件 ①log4j ②mysql ③mybatis
第三步: 创建User实体类
第四步: 导入 log4j.properties 、jdbc.propertie文件
第五步: 创建mybatis-config.xml
<configuration>
<!--指定jdbc数据源信息文件的位置-->
<properties resource="jdbc.properties" />
<!--配置对象的别名-->
<typeAliases>
<typeAlias type="com.tledu.pojo.User" alias="User"></typeAlias>
</typeAliases>
<!--默认是开发环境-->
<environments default="development">
<environment id="development">
<!--使用jbdc的事务-->
<transactionManager type="JDBC" />
<!--使用数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/tledu/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
第六步:
创建UserMapper.xml
<!--
当前mapper文件的唯一标识
-->
<mapper namespace="User">
<!--
id: sql唯一标识
parameterType: 传入的数据类型
-->
<insert id="add" parameterType="User" >
insert into t_user (username,password,nickname,type) values (#{username},#{password},#{nickname},#{type})
</insert>
</mapper>
第七步:
创建Mybatis Test
public static void main(String[] args) throws IOException {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
User user = new User();
user.setUsername("bbb");
user.setPassword("222");
user.setNickname("tom");
user.setType(1);
session.insert("User.add",user);
session.commit();
session.close();
}