028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

SSM框架Mybatis的示例分析

这篇文章将为大家详细讲解有关SSM框架Mybatis的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在江宁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设 网站设计制作按需网站设计,公司网站建设,企业网站建设,品牌网站建设,成都全网营销推广,外贸网站制作,江宁网站建设费用合理。

Mybatis

Mybatis有两个配置文件:映射文件(mapper.xml)、主配置文件(mybatis.xml)

映射文件




          
      insert into student(name,age,score) values(#{name}, #{age}, #{score})        
                                                                                   
   

主配置文件

注:数据库连接池(POOLED)是内存中与数据库连接的进程

        SqlSessionFactory对象的构建需要dataSource对象,所以后续dataSource和SqlSession的创建都交给Spring即可




   
                
      
                   
                          
            
               
            
            
         
      
   
   
   
   
      
   

配置文件需要mybatis约束文件(dtd)的约束,约束文件定义根标签

配置文件与程序:

  1. InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");     //通过mybatis.xml新建sql会话

  2. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

  3. sqlSession = sqlSessionFactory.openSession();

  4. sqlSession.insert("insertStudent", student);               //通过mapper.xml完成具体操作(mapper.xml中指定student类才知道对象中的属性)

  5. sqlSession.commit();                                       //提交后才能存入数据库

注:sqlSession提供增删改查操作函数,mapper.xml中通过"#{}"接收函数传过来的值,resultType指定数据封装成什么样子

sqlSession操作方法:

方法含义
  
  

进阶:

(1)mapper动态代理

*****IStudentDao dao = sqlSession.getMapper(dao.IStudentDao.class);         //获取IStudentDao接口的代理对象 ,该代理对象就相当于实现类

                那么dao.insertStudent(student)直接对应mapper中相应的语句执行

注:IStudentDao是一个接口 它并没有实现类,为什么接口可以直接使用呢? 因为MyBbatis使用了JDK动态代理机制动态生成了代理类。

mapper动态代理原理

(2)动态SQL


      select id,name,age,score 
      from student 
      where 1=1                                            
      
         and name like "%" #{name} "%"
      
       0">
         and age > #{age}
      

      select id,name,age,score 
      from student 
                                                             
         
            and name like "%" #{name} "%"
         
          0">
            and age > #{age}
         
      

(3)关联关系查询

(4)查询缓存

(5)注解式开发

@Insert(value = { "insert into student(name,age,score) values(#{name}, #{age}, #{score})" })
void insertStudent(Student student);

总结:

  1. Mapper 接口必须要和 Mapper.xml 文件同名且在同一个包下,也就是说 Mapper.xml 文件中的namespace是Mapper接口的全类名

  2. Mapper接口中的方法名和 Mapper.xml 文件中定义的 id 一致

  3. Mapper接口输入参数类型要和 Mapper.xml 中定义的 parameterType 一致

  4. Mapper接口返回数据类型要和 Mapper.xml 中定义的 resultType 一致

Mapper.xml





MyBatis.xml


 
 

关于SSM框架Mybatis的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页题目:SSM框架Mybatis的示例分析
当前链接:http://www.tsicrk.com/article/pjosdo.html

其他资讯

让你的专属顾问为你服务

0.6499s