网站建设资讯

NEWS

网站建设资讯

ssm框架中MyBatis怎么用

这篇文章给大家分享的是有关ssm框架中MyBatis怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联公司成都企业网站建设服务,提供网站设计、成都网站设计网站开发,网站定制,建网站,网站搭建,网站设计,响应式网站设计,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:18980820575

MyBatis介绍

      1, MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结集。     

       2,MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的实体类映射成数据库中的记录。

MyBatis优点

       MyBatis是一个持久层的框架,它是对JDBC的封装,要学好MyBatis,首要要对JDBC有一个较深的认识,这里通过比对JDBC来对MyBatis有一个初步的认识,即我们为什么要使用MyBatis。

       使用JDBC操作数据库存在一些问题,例如代码冗余,需要写很多重复的代码,不便于维护等,MyBatis正是为解决这些痛点而诞生的。

下面对比几种典型的场景

JDBC(问题)

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

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

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

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

MyBatis(对策)

        1,使用数据库连接池管理数据库连接。

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

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

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

        对比JDBC持久化的流程,MyBatis很多工作在配置文件中进行设置,减少了很多代码量,同时也使得代码结构更加清晰,维护起来也更加方便。

JDBC的工作流程

        1,加载数据库驱动

        2,创建并获取数据库链接

        3,创建jdbc statement对象

        4,设置sql语句

        5,设置sql语句中的参数

        6,通过statement执行sql并获取结果

        7,对sql执行结果进行解析处理

        8,释放资源

MyBatis的工作流程

        1,配置mybatis的配置文件,SqlMapConfig.xml
        2,通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂。
        3,通过SqlSessionFactory创建SqlSession。SqlSession是一个面向用户接口(提供操作数据库方法),实现对象是线程不安全的,建议sqlSession应用场合在方法体内。
        4,调用sqlSession的方法去操作数据。如果需要提交事务,需要执行SqlSession的commit()方法。

        5,释放资源,关闭SqlSession

MyBatis的使用(简单介绍)

        编写一个mapper接口和对应的XML文件映射,将所有的SQL语句交给XML进行管理。

        在编写mapper.xml(映射文件)和mapper.java需要遵循以下规范:

        1,mapper.xml中namespace就是mapper.java的类全路径。

        2,mapper.xml中statement的id和mapper.java中方法名一致。

        3,mapper.xml中statement的parameterType指定输入参数的类型和mapper.java的方法输入参数类型一致

        4,mapper.xml中statement的resultType指定输出结果的类型和mapper.java的方法返回值类型一致。

如下,举例一个简单的mapper的用法

mapper.java

public interface CommitMapper {    
   /**     * 新增评论     */    public void addCommit(Commit commit) throws Exception;    
   /**     * 删除评论     */    public List findCommitList(Integer commit_id) throws Exception; }

mapper.xml


    
    

       名词解释

        1,parameterType:MyBatis中通过parameterType指定输入的参数类型

        2,resultType:MyBatis中通过resultType指定输出的结果。

        3,#{}:表示的是占位符,#{}接收的参数是输入的参数,类型可以是简单类型、pojo、hashmap

        #{}如果接收的是简单类型的话,里面的值可以value或者其他名称

        #{}接收pojo对象,通过OGNL读取对象中的属性值,通过属性.属性的方式获取。

        4,selectOne:表示查询出一条记录,如果是使用selectone是可以实现的结果,selectList也是可以实现了(list中只有一个对象)

        5,selectList:表示查询出一个列表(多条记录)进行映射的。如果是使用selectOne是不可以实现的。

感谢各位的阅读!关于“ssm框架中MyBatis怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


当前名称:ssm框架中MyBatis怎么用
分享地址:http://cdweb.net/article/pcohsj.html