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

   MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

  Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回

目录结构

一、导包

  导入mybatis包及其所依赖的lib包

二、根据表创建相应的实体类

三、创建mybatis的配置文件sqlMapConfig.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6 <!-- 和spring整合后 environments配置将废除 -->
7 <environments default="development">
8 <environment id="development">
9 <!-- 使用jdbc事务管理 -->
10 <transactionManager type="JDBC" />
11 <!-- 数据库连接池 -->
12 <dataSource type="POOLED">
13 <property name="driver" value="com.mysql.jdbc.Driver" />
14 <property name="url"
15 value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
16 <property name="username" value="root" />
17 <property name="password" value="root" />
18 </dataSource>
19 </environment>
20 </environments>
21
22 <!-- 加载映射文件 -->
23 <mappers>
24 <mapper resource="cn/tx/mapper/PersonTestMapper.xml"/>
25 </mappers>
26 </configuration>

二、配置映射文件PersonTestMapper.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <!-- namespace:命名空间,用于隔离sql,规范映射文件包的全路径 -->
6 <mapper namespace="cn.tx.mapper.PersonTestMapper">
7 <!-- resultMap用来解决属性与数据库表中列名不一致的情况 -->
8 <resultMap type="cn.tx.model.Person" id="BaseResultMapper">
9 <id column="id" property="id"/>
10 <result column="name" property="name"/>
11 <result column="gender" property="gender"/>
12 <result column="address" property="address"/>
13 <result column="birthday" property="birthday"/>
14 </resultMap>
15 <!--
16 id:sql语句唯一标识
17 parameterType:参数的类型
18 resultType:返回结果的类型
19 -->
20 <select id="selectPersonById" parameterType="java.lang.Integer" resultType="cn.tx.model.Person">
21 select * from person_test where id = #{id}
22 </select>
23
24 <select id="selectPersonCount" resultType="java.lang.Integer">
25 select count(*) from person_test
26 </select>
27 </mapper>

三、运行测试

 1 public class TestMyBatis {
2 private SqlSessionFactory sqlSessionFactory;
3 @Before
4 public void setUp() throws Exception {
5 //读取配置文件
6 InputStream is = Resources.getResourceAsStream("sqlMapConfig.xml");
7 //创建sqlSessionFactory
8 sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
9 }
10
11 @Test
12 public void selectPersonById() {
13 //获得sqlSession
14 SqlSession sqlSession = sqlSessionFactory.openSession();
15 try {
16 Person person = sqlSession.selectOne("cn.tx.mapper.PersonTestMapper.selectPersonById", 1);
17 System.out.println(person);
18 } catch (Exception e) {
19 e.printStackTrace();
20 }finally {
21 sqlSession.close();
22 }
23 }
24 @Test
25 public void selectPersonCount(){
26 SqlSession sqlSession = sqlSessionFactory.openSession();
27 try {
28 Integer count = sqlSession.selectOne("cn.tx.mapper.PersonTestMapper.selectPersonCount");
29 System.out.println(count);
30 } catch (Exception e) {
31 e.printStackTrace();
32 }finally {
33 sqlSession.close();
34 }
35 }
36
37 }

最新文章

  1. 从零开始编写自己的C#框架(25)——网站部署
  2. ajax函数封装
  3. 如何编译Apache Hadoop2.6.0源代码
  4. 「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization
  5. 从头学Qt Quick(1) --体验快速构建动态效果界面
  6. hdu 3157 Crazy Circuits 网络流
  7. WCF 在VS中,添加服务引用,地址输入http://ip/Service.svc,点击前往,提示错误,内容如下:
  8. 一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr
  9. Android使用HttpClient实现文件上传到PHP服务器,并监控进度条
  10. Lucene教程具体解释
  11. 一个消除if语句的例子
  12. 浅谈对JIT编译器的理解。
  13. hdu1358Period
  14. Ubuntu - Dconf 注册表键值修改参考表
  15. Makefile Android.mk 引发的思索
  16. Android样式(style)和主题(theme)
  17. C# partial 关健字说明
  18. 建立标准编码规则(二)-DiagnosticAnalyzer 增加诊断分析代码
  19. 关于hover和after、before合用
  20. ubuntu 14.04 使用 xfce4 的时候,会有图标问题

热门文章

  1. vmware虚拟机Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)详解
  2. 从后端到前端之Vue(六)表单组件
  3. CRMEB小程序商城v4.0二次开发对接集成阿里云短信
  4. TextBox控件保存上次的输入
  5. shader效果
  6. webpack跨域配置处理
  7. h5跳转微信公众号关注页面
  8. Linux 用户与权限
  9. webapi上传图片的两种方式
  10. fabric1.4 网络操作