IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 框架 mybatis -> 正文阅读

[Java知识库]框架 mybatis

一、框架

框架( 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();
    }

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 21:57:04  更:2021-08-28 21:57:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:17:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码