`
心跳停了
  • 浏览: 2101 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Mybatis菜鸟自学(一)

阅读更多

                                                      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 -->
  • 大小: 14.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics