Mybatis框架基础原理

来源:互联网 发布:视频模糊修复软件 编辑:程序博客网 时间:2024/06/05 00:28

1 Mybatis框架


//读取mybatis-config.xml
InputStream inputstream=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlsessionfactory=new  SqlSessionFactoryBuilder().build(inputstream);

//创建Session实例
SqlSession session=sqlsessionfactory.openSession();


mybatis框架,操作对象Sqlsession


常用方法:   int insert(String statement)插入方法
             int update(String statement)更新方法
             int delete(String statement)删除方法
             void select(String statement,ResultHandler handler)查询方法
             void commit():提交事务
             void rollback( ):回滚事务
             void close( ):关闭SqlSession对象

2 Mybatis配置文件

1 顶层Configuration配置

    properties属性:属性可外部配置且可动态替换的。

      <properties   resource="db.properties">

    setting设置:可以改变Mybatis的运行时行为

    typeAliases类型命名:类型别名主要解决命名问题

        

  <typeAliases>    <typeAliases alias="user"  type="org.fkit.domain.User">  <typeAliases>

指定一个包名,MyBatis会在搜索包下,会使用Bean的首字母

  <typeAliases>    <typeAliases name="org.fkit.domain">  <typeAliases>


@Alias(”user“):如果使用注解@Alias,表示此处是其注解值


   typeHandlers类型处理器:类型操作器


   ObjectFactory对象工厂:


    plugins插件


    environments 环境

     environment      默认环境的ID

     transactionManager   事物管理器,只有两种,JDBC和MANAGED

     DataSource   数据源配置。分为UNPOOLED、POOLED、JNDI


    databaseIdProvider 数据库厂商标识


    mappers映射器:告诉Mybatis去哪里找映射文件。


3 MapperXML中的映射文件

select

SELECT 列名称 FROM 表名称

SELECT * FROM 表名称



<select id="selectUser" paraterType="int" resultType="hashmap" >
 select * from TB_user where id =#{id}
</select> 
这个语句被称作selectuser,接受一个int(或integer)类型的参数,并返回一个HashMap对象,key是列名,value是结果集中对应的值



insert

INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

<insert id="insertUser" >
insert into Tb_user (user_name) values (#{id},#{password},#{email})
或者 insert into Tb_user values (#{id},#{username},#{email})
</insert> 


update

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值



<update id="updateUser" >
update Tb_user set user_name=#{user_name},password=#{password_name} where id=#{id}
</update> 


delete

DELETE FROM 表名称 WHERE 列名称 = 值



<delete id="deleteUser">
delete from Tb_user where id=#{id}
</delete> 


resultmap:复杂的结果集,用来描述如何从数据库结果集中加载对象

sql:可以被其他语句引用的可重复语句块

<sql id="userColums"> ${alias}.id,${alias}.username</sql>
<select id="selectUsers" resulType="map">
   <include refid="userColums"></include>
</select>


cache

cahce-ref


4 ResultMap

  作用:告诉开发者从结果集中取出的数据转换为开发者需要的对象

<select id="selectUser"  resultType="map">
  select * from Tb_User
</select>
此处表示的返回的是map集合
此处也可以用JavaBeans或POJOs来作为领域描述数据
id是resultmap中的唯一标识,type:是resultmap中的唯一表示



原创粉丝点击