设为首页 收藏本站
查看: 865|回复: 0

[经验分享] Mybatis菜鸟自学(一)

[复制链接]

尚未签到

发表于 2016-11-24 09:19:29 | 显示全部楼层 |阅读模式
  Mybatis学习
          
     最近mybatis火爆得爆棚,大有取代各类持久层框架的趋势;在这趋势催动下,我也耐不住寂寞开始自学,
  所发表全是自己学习心得
      一、什么是mybaits
         mybatis是基于普通sql查询,存储过程,以及高级映射的持久层框架
      二、mybatis核心对象
          大家都知道每一个框架都有一个核心对象,mybatis不列外,SqlSessionFactory就是mybatis核心对象
  ,该对象可以通过SqlSessionFactoryBuilderxml配置文件,或者从Configuration累的习惯准备的实例中获
  得,我们主要学习从xml中获取
      三、怎么从xml中获取对应的核心对象
         1、准备mybatisxml文件myBatis-config.xml
    <?xmlversion="1.0"encoding="UTF-8"?>
  <!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  <configuration>
  <!-- 环境 -->
  <environmentsdefault="development">
     <environmentid="development">
        <transactionManagertype="JDBC"/>
        <dataSourcetype="POOLED">
        <propertyname="driver"value="com.mysql.jdbc.Driver"/>
        <propertyname="url"value="jdbc:mysql://localhost:3306/mybatis"/>
        <propertyname="username"value="root"/>
        <propertyname="password"value="admin"/>
        </dataSource>
        </environment>
     </environments>
  <!-- 包含所有映射器 -->
  </configuration>
         2xml文件myBatis-config.xml的介绍
               environments 节点:mybatis的环境集合
               environment 节点:用于配置环境,id则为环境名称,environments中的default属性的值则从
              environmentid中选取,选取后则为默认的数据库运行连接环境
              transactionManager:事务处理区,默认的为jdbc的事务处理器
              dataSource :数据源的配置
           3、新建一个新的动态web工程,项目结构如下:
           
               导入mybatisjar文件
              
               可以看到以上有log4jjar文件,那么我们需要引入一个log4j.properties的资源文件,可以参考hibernate或者struts中会有相应文件的demo
           3、从xml中获取SqlsessionFactory对象
            String resource = "myBatis-config.xml";
           //解析数据源
           Reader reader = Resources.getResourceAsReader(resource);
          //获取绘画工厂
           SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
           我们可以将sessionFactory进行打印,则可以看到是否是获取到对应的SqlSessionFactory对象
   
   
  四、大家最关心的问题是怎么和数据库关联
           我们新建一个简单的pojo类,如Employee.java,这里gettersetter方法大家自己加上,我这里省去在数据库表中建立好对应的数据库,mybatis,并建立对应的表employee
           publicclass Employee {
                  private Longid;
                 private Stringname;
                 private Stringpassword;
            }
    要和数据库关联那我们就得有一个数据库的配置文件,在mybatis总通常用xxxMapper.xml进行配置,并一般情况卸载domain类中,如这里的EmployeeMapper.xml;配置如下:
  <?xmlversion="1.0"encoding="UTF-8"?>
  <!DOCTYPEmapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <!--  -->
  <mappernamespace="cn.mybatis.domain.EmployeeMapper">
     <!--
        parameterType:如果Sql需要传入参数,指传入参数类型
        resultType: 查询的数据需要封装为哪个对象,将返回
  ResultSet记录自动封装成指定类型的对象集(全类名)
      -->
     <selectid="selectBlog"parameterType="Long"resultType="cn.mybatis.domain.Employee">
        select * from Employee where id = #{id}   
     </select>
  <!-- <delete id=""></delete> -->
  <!-- <update id=""></update> -->
  <!-- <insert id=""></insert> -->
  </mapper>
   
  这里的namespace在以前是可以不需要的,在新版本中这个是必须的,通常命名规范为,包名+类名+Mapper  
  特别注意<select>标签这是mybatis的标签,同样可以看到我在下面添加了另外三种常用的标签;这样写完之后,大家看下select * fromBlog where id = #{id};以前我们的占位符都是?,这里用#{}切忌不能换成?
  写了mapper.xml那我们要用起来,则需要在原来myBatis-config.xml添加差早方式
  <!-- 包含所有映射器 -->
     <mappers>
        <mapperresource="cn/ycj/mybatis/domain/EmployeeMapper.xml"/>
     </mappers>
   添加在environments标签外
   
  那么执行持久化操作,
  先前我们已经拿到sessionFactory对象,通过该对象进行持久化操作
  //获取session
    SqlSession session =sessionFactory.openSession();
  //执行操作
  Blog blog=session.selectOne("selectBlog",1L);
  System.out.println(blog);
  session.close();
  这样便简单执行了一个查询方法;同理还有其他的crud操作
  <E> List<E> selectList(String statement, Object parameter);
  void close();
  void commit(boolean force);
  void commit();
  int delete(String statement, Object parameter);
  int update(String statement, Object parameter);
  int insert(String statement, Object parameter);
   <T> T selectOne(String statement, Object parameter);
  这里只列举了常用方法,其他方法我们可以在源码SqlSession接口中查看
   
   
   
   
<!-- Baidu Button BEGIN -->

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-304796-1-1.html 上篇帖子: iBatis 到 MyBatis区别 下篇帖子: Mybatis小试CRUD
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表