zoukankan      html  css  js  c++  java
  • Mybatis1

    对原生态jdbc程序中问题总结:

    1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。

    设想:使用数据库连接池管理数据库连接。

    2、将sql语句硬编码java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。

    设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。

    3、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。

    设想:将sql语句及占位符号和参数全部配置在xml中。

    4、从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。

    设想:将查询的结果集,自动映射成java对象。

    1.1 mybatis是什么?

    mybatis是一个持久层的框架,是apache下的顶级项目。

    mybatis托管到goolecode下,再后来托管到github(https://github.com/mybatis/mybatis-3/releases)

    mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。

    mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射

    1.2 工程结构

    1.3 SqlMapConfig.xml

    配置mybatis的运行环境,数据源、事务等。

    1.4 根据用户id(主键)查询用户信息

    1.4.1 创建po

    1.4.2 映射文件

    映射文件命名:User.xml,mapper代理开发映射文件名称叫XXXMapper.xml

    1.4.3 SqlMapConfig.xml加载映射文件

    最后就是程序的编写:

    2 mybatis开发dao的方法

    2.1 SqlSession使用范围

    2.1.1 SqlSessionFactoryBuilder

    通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory

    SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder

    在需要创建SqlSessionFactory时候,只需要new一次SqlSessionFactoryBuilder即可。

    2.1.2 SqlSessionFactory

    通过SqlSessionFactory创建SqlSession,使用单例模式管理sqlSessionFactory(工厂一旦创建,使用一个实例)。

    将来mybatisspring整合后,使用单例模式管理sqlSessionFactory

    2.1.3 SqlSession

    SqlSession是一个面向用户(程序员)的接口。

    SqlSession中提供了很多操作数据库的方法:如:selectOne(返回单个对象)selectList(返回单个或多个对象)、。

    SqlSession是线程不安全的,在SqlSesion实现类中除了有接口中的方法(操作数据库的方法)还有数据域属性。

    SqlSession最佳应用场合在方法体内,定义成局部变量使用。

  • 相关阅读:
    Java 时区转换(UTC+8 到 UTC 等等)
    spring 与 springmvc 的区别和定义
    字符串加密解密(Base64)
    上传视频本地预览问题
    vue 监听store中的数值
    判断对象是否为空
    正则 验证是否包含特殊字符
    js 过滤日期格式
    vue methods computed watch区别
    for + setTimeout
  • 原文地址:https://www.cnblogs.com/jingyukeng/p/10269032.html
Copyright © 2011-2022 走看看