博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis 学习
阅读量:4647 次
发布时间:2019-06-09

本文共 11040 字,大约阅读时间需要 36 分钟。

MyBatis 3.1.1 API 

在线地址:http://tool.oschina.net/apidocs/apidoc?api=mybatis-3.1.1

 

原文:http://blog.csdn.net/caodegao/article/details/6735049

 

MyBatis现在还挺少人用的,刚玩的时候在网站查资料都没有很多贴研究它.走了很多弯路;

在此做了一个小例子,跟大家分享一下;

如果能对一些刚玩MyBatis的朋友一些帮助就再好不过了.

首先给大家配置MyBatis的前奏,毕竟什么框架都是配置出来的,大家得下载MyBatis的文档,上面有很详细的配置前奏.

我就不给大家贴出来了.我是用Spring和Struts2集成的.别怪我太自私啊!下次慢慢在贴出集成的例子,

 

先给大家sql的配置吧

我有一个总文件mybatis-config.xml,在总文件加载子文件,这样至少分工还算明细些.

重点在这个weibo-mapper.xml里面,这个也一样自己写他的sql映射account-mapper.xml

由于就演示一个表weibo关联表account,关联都在weibo-mapper.xml里面写.account-mapper.xml就不给大家了,没什么大碍的.

配置文件的详细我都写了,大家靠自己的悟性吧

insert into weibo(w_acc_id,w_context,w_create_time) values(#{account.aId},#{wContext},#{wCreateTime})
update weibo set w_acc_id = #{account.aId},w_context = #{wContext},w_create_time = #{wCreateTime} where w_id = #{wId}
delete from weibo where w_id = #{wId}

pojo类:这里你要注意了, 怎么给数据做搜集,

package com.cookiejoo.beans;import java.util.Date;public class Weibo {    private Integer wId;    private Account account;    private String wContext;    private Date wCreateTime;    public Weibo() {    }    public Integer getWId() {        return wId;    }    public void setWId(Integer wId) {        this.wId = wId;    }    public Account getAccount() {        return account;    }    public void setAccount(Account account) {        this.account = account;    }    public String getWContext() {        return wContext;    }    public void setWContext(String context) {        wContext = context;    }    public Date getWCreateTime() {        return wCreateTime;    }    public void setWCreateTime(Date createTime) {        wCreateTime = createTime;    }}

两张表结构很简单

id都是自动增长的;

Table weibo

===========

w_id, w_acc_id, w_context, w_create_time

-----------

w_id             int(11) PK

w_acc_id         int(11)

w_context        varchar(2000)

w_create_time    datetime

 

Table account

=============

a_id, a_username, a_password, a_sex, a_phone, a_brithday, a_create_time, a_head_image

-------------

a_id             int(11) PK

a_username       varchar(45)

a_password       varchar(45)

a_sex            int(2)

a_phone          varchar(15)

a_brithday       datetime

a_create_time    datetime

a_head_image     varchar(45)

这个是java调用的例子,一个接口一个实现类,我用了Spring集成了,所以和单独的MyBatis例子有点出入,大家对着MyBatis文档做时就是获取getSqlSession这个不一样而已.

package com.cookiejoo.iservice.impl;import java.util.Date;import java.util.List;import org.mybatis.spring.support.SqlSessionDaoSupport;import com.cookiejoo.beans.Weibo;import com.cookiejoo.iservice.IWeiboService;public class WeiboServiceImpl extends SqlSessionDaoSupport implements        IWeiboService {    @SuppressWarnings("unchecked")    public List
findWeiboJoinAccount(Weibo w) { return getSqlSession().selectList( "com.cookiejoo.beans.Weibo.findWeiboJoinAccount", w); } @SuppressWarnings("unchecked") public List
findAllWeibo() { return getSqlSession().selectList( "com.cookiejoo.beans.Weibo.findAllWeibo"); } public void addWeibo(Weibo w) { w.setWCreateTime(new Date()); getSqlSession().insert("com.cookiejoo.beans.Weibo.addWeibo", w); } public void updateWeibo(Weibo w) { getSqlSession().update("com.cookiejoo.beans.Weibo.updateWeibo", w); } public void deleteWeibo(Weibo w) { getSqlSession().delete("com.cookiejoo.beans.Weibo.deleteWeibo", w); } public Weibo findAllWeiboById(Integer wId) { return (Weibo) getSqlSession().selectOne( "com.cookiejoo.beans.Weibo.findAllWeiboById", wId); }}

接着页面展示,我用jsp写的,用struts2做跳转...     myJsp.jsp

<%@ page language="java" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="s" uri="/struts-tags"%>            
Condition by Free CSS Templates
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
findWeiboByBean

id context createTime aid operator
${weibo.WId } ${weibo.WContext } ${weibo.WCreateTime } ${weibo.account.AId } delete

原文:http://blog.csdn.net/bluesky5219/article/details/7066174

本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接

http://code.google.com/p/mybatis/下载到。
  1、采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数。
  (1)Spring配置文件:

     <!-- 引入jdbc配置文件 -->

     <context:property-placeholder location="jdbc.properties"/>

      <!--创建jdbc数据源 -->

      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
        <property name="initialSize" value="${initialSize}"/>
        <property name="maxActive" value="${maxActive}"/>
        <property name="maxIdle" value="${maxIdle}"/>
        <property name="minIdle" value="${minIdle}"/>
      </bean>

      <!-- 创建SqlSessionFactory,同时指定数据源-->

      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource" /> 
      </bean>

      <!--创建数据映射器,数据映射器必须为接口-->

      <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> 
      <property name="mapperInterface" value="com.xxt.ibatis.dbcp.dao.UserMapper" />
      <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
      </bean>

      <bean id="userDaoImpl2" class="com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl2">

      <property name="userMapper" ref="userMapper"/>
 </bean>

 
(2)数据映射器UserMapper,代码如下:
  public interface UserMapper {
        @Select("SELECT * FROM user WHERE id = #{userId}") 
        User getUser(@Param("userId") long id); 
  }
 (3) dao接口类UserDao,代码如下:
   public interface UserDao {
       public User getUserById(User user);
   }
(4)dao实现类UserDaoImpl2,,代码如下:

  public class UserDaoImpl2 implements UserDao {

       private UserMapper userMapper;

       public void setUserMapper(UserMapper userMapper) { 

           this.userMapper = userMapper; 
       } 

       public User getUserById(User user) {

          return userMapper.getUser(user.getId()); 
       }
   }

 2、采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate。
    mybatis中, sessionFactory可由SqlSessionFactoryBuilder.来创建。MyBatis-Spring 中,使用了SqlSessionFactoryBean来替代。SqlSessionFactoryBean有一个必须属性dataSource,另外其还有一个通用属性configLocation(用来指定mybatis的xml配置文件路径)。
   (1)Spring配置文件:
    <!-- 创建SqlSessionFactory,同时指定数据源-->
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource" /> 
      <!-- 指定sqlMapConfig总配置文件,订制的environment在spring容器中不在生效-->
      <property  name="configLocation"  value="classpath:sqlMapConfig.xml"/>
      <!--指定实体类映射文件,可以指定同时指定某一包以及子包下面的所有配置文件,mapperLocations和configLocation有一个即可,当需要为实体类指定别名时,可指定configLocation属性,再在mybatis总配置文件中采用mapper引入实体类映射文件 -->
      <!- - <property  name="mapperLocations"  value="classpath*:com/xxt/ibatis/dbcp/**/*.xml"/>  -->
   </bean>
    (2)mybatis总配置文件sqlMapConfig.xml:
  <configuration>
   <typeAliases>
     <typeAlias type="com.xxt.ibatis.dbcp.domain.User" alias="User" />
  </typeAliases>
   <mappers>
      <mapper resource="com/xxt/ibatis/dbcp/domain/user.map.xml" />
     </mappers>
 </configuration>
(3)实体类映射文件user.map.xml:
<mapper namespace="com.xxt.ibatis.dbcp.domain.User">
     <resultMap type="User" id="userMap">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="password" column="password" />
        <result property="createTime" column="createtime" />
     </resultMap>
     <select id="getUser" parameterType="User" resultMap="userMap">
       select * from user where id = #{id}
     </select>
<mapper/>
(4)dao层接口实现类UserDaoImpl:
  public class UserDaoImpl implements  UserDao  {
     public SqlSessionTemplate sqlSession;
     public User getUserById(User user) {
         return (User)sqlSession.selectOne("com.xxt.ibatis.dbcp.domain.User.getUser", user);
     }
     public void setSqlSession(SqlSessionTemplate sqlSession) {
          this.sqlSession = sqlSession;
     }
   }
 3、采用抽象类org.mybatis.spring.support.SqlSessionDaoSupport提供SqlSession。
   (1)spring配置文件:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

   <property name="dataSource" ref="dataSource" />
   <property  name="configLocation"  value="classpath:sqlMapConfig.xml"/>
   <!-- <property  name="mapperLocations"  value="classpath*:com/xxt/ibatis/dbcp/domain/user.map.xml"/   >  -->
</bean>

 <bean id="sqlSession"     class="org.mybatis.spring.SqlSessionTemplate"> 

      <constructor-arg index="0" ref="sqlSessionFactory" /> 
</bean>

<bean id="userDaoImpl3" class="com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl3">

   <!--注入SqlSessionTemplate实例 -->
   <property name="sqlSessionTemplate" ref="sqlSession" /> 
   <!--也可直接注入SqlSessionFactory实例,二者都指定时,SqlSessionFactory失效 -->
   <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
-->
</bean>

 (2) dao层接口实现类UserDaoImpl3:
public class UserDaoImpl3 extends SqlSessionDaoSupport implements UserDao {   
  public User getUserById(User user) {   
     return (User) getSqlSession().selectOne("com.xxt.ibatis.dbcp.domain.User.getUser", user);  
  }   
}

原文:http://www.oschina.net/p/mybatis

MyBatis logo

MyBatis 的前身就是  。是一个数据持久层(ORM)框架。

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的 实例。

在线Javadoc:

 / 

Watch  Fork

MyBatis data mapper framework — 

#403 by   2015-05-06
#398 by   2015-05-05
#396 by   2015-04-28
#393 by   2015-04-26
#387 by   2015-04-16

代码最近更新:2015-05-03

MyBatis最新更新资讯,共6条  (,)
  • 7个月前18评/5035阅
  • 2年前8评/3105阅
  • 2年前47评/5175阅
  • 4年前4评/2510阅
  • 5年前1评/2029阅
  • 授权协议: 
  • 开发语言: 
  • 操作系统: 跨平台 
  • 收录时间:  -> 2010年05月22日

 

转载于:https://www.cnblogs.com/jexwn/p/4485277.html

你可能感兴趣的文章
nodejs pm2使用
查看>>
cocos2d-x 3.10 PageView BUG
查看>>
装饰器的基本使用:用户登录
查看>>
CSS选择器总结
查看>>
mysql中sql语句
查看>>
head/tail实现
查看>>
sql语句的各种模糊查询语句
查看>>
vlc 学习网
查看>>
Python20-Day05
查看>>
Real World Haskell 第七章 I/O
查看>>
C#操作OFFICE一(EXCEL)
查看>>
【js操作url参数】获取指定url参数值、取指定url参数并转为json对象
查看>>
移动端单屏解决方案
查看>>
web渗透测试基本步骤
查看>>
使用Struts2标签遍历集合
查看>>
angular.isUndefined()
查看>>
第一次软件工程作业(改进版)
查看>>
网络流24题-飞行员配对方案问题
查看>>
Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
查看>>
引入css的四种方式
查看>>