ibatis与Mybatis的区别以及Mybatis的简单用法
2015-01-07 19:42
351 查看
mybatis 简化了编码的过程,不需要去写dao的实现类,直接写一个dao的借口,再写一个xml配置文件,整个mybatis就配置好了,也就是数据库就连接好了,然后再service里面调用dao就可以了, ibatis 则不可以,必须要写dao的实现类,再写个return getSqlMapClientTemplate().queryForList()神马的, 所以说mybatis是ibatis的升级版本,也就是在这里,不用写dao的实现类,还有些区别就是xml里面的sql语句的写法有些小变化,但是不大
转自:http://blog.csdn.net/huzheaccp/article/details/7399124
所需要jar包:mybatis-3.x.x.jar 、如果需要和spring整合,还需要加入相关的包
1:看项目目录 红颜色不要关心
![](http://my.csdn.net/uploads/201203/27/1332833542_4837.png)
2:按照步骤:
1:加入jar包
2:创建数据源(configuration.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>
<!--给实体类起一个别名 user -->
<typeAlias type="com.forum.po.User" alias="User" />
</typeAliases>
<!--数据源配置 这块用 BD2数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="jdbc" />
<dataSource type="POOLED">
<property name="driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="url" value="jdbc:db2://localhost:50000/forum" />
<property name="username" value="DB2ADMIN" />
<property name="password" value="admin" />
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="myBatis/userMapper.xml" />
</mappers>
</configuration>
3:创建实体类USER
package com.forum.po; /** * 用户类 * * @author db2admin * */ public class User extends Entity { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public User() { } }
4:创建dao接口、可以说是Mapper接口:UserMapper
package com.forum.dao; import com.forum.po.User; public interface UserMapper { public User findById(String Id); }
5:创建dao的实现,不同于hibernarte的此处的实现为一个xml文件,也就是userMapper.xml
<?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"> <!--这块等于dao接口的实现 namespace必须和接口的类路径一样--> <mapper namespace="com.forum.dao.UserMapper"> <!-- findById必须和接口中的方法名一样 返回一个User 就是刚才的别名 如果不弄别名要连类路径一起写 麻烦--> <select id="findById" parameterType="HashMap" resultType="User"> select * from butone.student where id=#{id} </select> </mapper>
6:测试类,MyBatisTest
package com.forum.test; import java.io.IOException; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.forum.dao.UserMapper; import com.forum.po.User; /** * myBatis数据库连接测试 * * @author db2admin * */ public class MyBatisTest { /** * 获得MyBatis SqlSessionFactory * SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。 * @return */ private static SqlSessionFactory getSessionFactory() { SqlSessionFactory sessionFactory = null; String resource = "configuration.xml"; try { sessionFactory = new SqlSessionFactoryBuilder().build(Resources .getResourceAsReader(resource)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sessionFactory; } public static void main(String[] args) { SqlSession sqlSession = getSessionFactory().openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.findById("1"); System.out.println(user.getName()); } }
MyBatis 的动态sql:
相关文章推荐
- 动态获取程序的版本名称的方法以及dialog的简单用法以及两种上下文的区别
- 宏和函数的区别以及宏的一些简单用法介绍
- C,与C++的static的几大用法以及区别。
- [转载] ArrayList Vector LinkedList 区别与用法 以及对 List,Map,Set 的解析
- window.showModalDialog 和 window.open的区别以及用法
- #define用法以及#define和typedef区别
- C# IList, ArrayList与List的区别详解 & 简单用法举例(转)
- const的用法,以及声明const变量与宏的区别
- cookie用法以及cookie与session的区别
- 关于jsp中session,application的简单介绍以及用法
- #define用法以及#define和typedef区别
- C# IList, ArrayList与List的区别详解 & 简单用法举例
- Ibatis动态查询例子(#和$以及iterate等的用法)
- Delphi异常处理try except语句和try finally语句用法以及区别
- StringBuilder的用法以及StringBuilder和String的区别 ?
- window.showModalDialog 和 window.open的区别以及用法
- delphi try except语句 和 try finally语句用法以及区别
- ShellExecute()用法以及和system()的区别
- 测试对象的等价性以及==与equals的区别和用法
- ibatis的#和$的区别、like、in的用法