mybatis基础入门

mybatis基础学习


简单概述:
在学习之前,我么需要了解一下mybatis的背景历史,以及mybatis是做什么的?能做什么?

MyBatis 本是apache的一个开源项目iBatis, 
2010年这个项目由apache software foundation 迁移到了google code,
并且改名为MyBatis。 


之前我么学习过了hibernate了,我么知道hibernate就是与数据库
进行交互数据产生的一个框架,但是,hibernate并不是很好
之所以不好,具体 "百度一下"  OR "google"

那么,我么的mybatis也是与我么的数据库打交道的,但是,我么的mybatis是一个轻量级的框架
我么只需要导入一个jar包就可以使用mybatis进行开发,那么,它的功能是不是的非常的少呢?
不是的,jar包少,功能依旧强大,具体了可以google下载它的jar文件

    使用mybatis可以与我么的spring进行整合,效果也是非常的不错的。
    
    通过上面的简单了解,我么已经知道了 "mubatis"主要是做什么的了,那么,接下来
    我么通过一个简单的案例,进入mybatis之旅把...
   
   1:
    导入mybatis-3.2.2.jar   核心jar包
    导入mysql.jar 和数据库交互数据,这是必须的
    导入log4j.jar 主要记录日志

好了,这几个jar包导入好了的话,那么下面就可以进行开发了

1,配置一个主文件即(mybatis-config.xml)文件,配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
 <configuration>
 
 <!-- 类路径的配置 -->
 <typeAliases>
  <typeAlias type="cn.xx.mybatis.User" alias="user"/>
 </typeAliases>
 <!-- 数据库的配置 -->
  <environments default="test">
    <environment id="test">
     <!-- 事务  JDBC(以Connection方式进行事务管理)/MANAGED(交由外在容器管理,例如spring容器通过声明式事务方式管理)-->
      <transactionManager type="JDBC"/>
      <!-- 连接配置   UNPOOLED/POOLED/JNDI-->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
 
 <!-- 加载哪些实体映射文件 -->
  <mappers>
  <mapper resource="cn/xx/xml/UserMapper.xml"/>
  </mappers>
 </configuration>
 
 那么上面就是我么配置的主题文件,都需要对应相应的数据,(*^__^*) 嘻嘻...
 
 那么,主题文件我么配置好了以后,下面开始写我么的类了把,就是一个javabean
 
 javabean我就不在这里写出来了,javabean的属性主要就是和我么的数据库字段相同,所以这里大家就好好看看把...
 
 这里首先做一个假设你的javaben + 数据库都配置好了,那么,恭喜你,进入下一个步骤,类文件配置,其实,我这里也不知道叫什么名字好
 但是这个配置文件的开头就是以我么的类名开头的,所以我就称为 类配置,(大家都有自己的叫法,随意,只要知道里面的配置意思就OK了)

配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
 
 <!-- 这里的命名空间很重要的,千万记住加上,否则会出错的 --> 
<mapper namespace="cn.xx.mybatis.User">
<!-- 这里的配置对应我么数据库中的字段 -->
<sql id="allCloumn">
       id,name,age
    </sql>
    
    <!-- 实体类的成员属性和查询出来的结果集的列名映射 -->
<resultMap type="user" id="userMap">
<!-- 前者的id对应user类中的id,后者的id对于数据库 -->
<id property="id" column="id"></id>
<result property="name" column="name"></result>
<result property="age" column="age"></result>
</resultMap>

<!-- 查询方法 -->
<select id="findUserById" parameterType="string" resultMap="userMap">

select <include refid="allCloumn"/>from user where id=#{id}
</select>
</mapper>  
  
 额,这里忘记和大家说了,这两个.xml文件是需要引入dtd约束文件的...(谁在"嘘"我,都配置好了在说,这不是明显的"坑爹"啊,哈哈~)
  
  
 好了,不吐槽了, 这里在做一个假设,你的   双配置 + javabean + 数据库  这些你都配置好了,那么接下来,进行Test单元测试把




那么,mybatis主要怎么实现与数据库进行数据交互呢???

这里,他的步骤也是和hibernate的差不多的,嘿嘿...

Test:


@Test
public void test1() throws Exception{

//加载配置文件
String config = "mybatis-config.xml";

//通过classLoad方式进行加载
InputStream stream = Resources.getResourceAsStream(config);

//创建数据工厂SqlSessionFactory
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(stream);

//获取Session
SqlSession session = build.openSession();

//调用方法
User user = (User)session.selectOne("cn.xx.mybatis.User.findUserById", 1);

System.out.println(user);
}



当你一点击"运行"呵呵,你的程序就执行咯,OOOO,了了个去,报了错误("指的是你么啦~")
不过我这里运行的时候也是出错了几处,不过,我发出来的都是修改好了的....




谢谢大家阅读,本文章纯属虚构,如有雷同,纯属高智商  
  
  
  
  
  
  
  
  
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值