【MyBatis】第一个入门例子
2017-05-23 18:04
288 查看
在最近的项中用到了MyBatis,所以上网学习了一下相关内容。
一、简介
MyBatis本来是apache的一个开源项目IBatis,2010年这个项目迁移到了google code,并且该名称为MyBatis,2013年11月迁移到了Github。这就是为什么我们引用过的jar版本不同,项目中import也是不同的。老版本的是org.csource.fastdfs,而新版的标识的是GItup上面的。
MyBatis支持普通的SQL查询,存储过程和高级查询的优秀的持久层的框架,MyBatis消除了几乎所有的JDBC代码和参数的手工设置。MyBatis使用简单的XML或注解用于配置和原始映射。将接口和POJOS映射成为数据库中的记录。
MyBatis的最大特性在于它的动态语句功能。我们知道把SQL语句连接拼在一起,是一件特别需要细心和耐心的活,要确保不能够忘记空格或者不要再coloumns列后面省略一个逗号。MyBatis的能够通过在任何映射SQL中使用强大动态SQL语句来改进这些状况。
二、第一个查询实例
项目最终目录结构如下:
1.需要的开发环境
普通的Java项目或者JavaWeb项目都可以。
2.添加相应的jar文件
(1)mybatis mybatis-3.1.1.jar
(2) mysql驱动包 myslq-connector-java -5.1.7-bin.jar
3.创建数据库和表,这里使用的是msyql数据库。
4.添加mybatis的配置文件conf.xml
在src下目录创建conf.xlm文件。
conf.xml文件内容如下
5.创建实体类
6、创建users表的sql映射文件uerMappint.xml文件。
useMapping.xml文件内容如下:
7.在conf.xml文件中注册userMapper.xml文件。
8.创建测试方法
创建测试类,根据id查询数据库的一条记录。
9.最后查询效果
10.执行过程总结
大致执行流程如下:
(1)首先SqlSessionFactoryBuilder去读取Mybatis的配置文件,然后build一个DefaultSqlSessionFactory。
(2)获取SqlSessionFactory之后,就可以通过SqlSessionFactory文件来获取SqlSession.
(3)现在得到了SqlSession对象,接下来就可以直接调用Session的中select、insert、update方法了。
(4)在MyBatis中,通过MapperProxy来动态代理我们的dao,也就是当咱们执行自己写的dao里面的方法时候,其实是对应mapperProxy在代理。
三、参考资料
深入理解Mybatis系列--sql执行流程分析(源码篇)
mybatis知识点总结和梳理
MyBatis原理、优缺点、以及和Hibernate的比较
MyBatis 快速入门
一、简介
MyBatis本来是apache的一个开源项目IBatis,2010年这个项目迁移到了google code,并且该名称为MyBatis,2013年11月迁移到了Github。这就是为什么我们引用过的jar版本不同,项目中import也是不同的。老版本的是org.csource.fastdfs,而新版的标识的是GItup上面的。
MyBatis支持普通的SQL查询,存储过程和高级查询的优秀的持久层的框架,MyBatis消除了几乎所有的JDBC代码和参数的手工设置。MyBatis使用简单的XML或注解用于配置和原始映射。将接口和POJOS映射成为数据库中的记录。
MyBatis的最大特性在于它的动态语句功能。我们知道把SQL语句连接拼在一起,是一件特别需要细心和耐心的活,要确保不能够忘记空格或者不要再coloumns列后面省略一个逗号。MyBatis的能够通过在任何映射SQL中使用强大动态SQL语句来改进这些状况。
二、第一个查询实例
项目最终目录结构如下:
1.需要的开发环境
普通的Java项目或者JavaWeb项目都可以。
2.添加相应的jar文件
(1)mybatis mybatis-3.1.1.jar
(2) mysql驱动包 myslq-connector-java -5.1.7-bin.jar
3.创建数据库和表,这里使用的是msyql数据库。
4.添加mybatis的配置文件conf.xml
在src下目录创建conf.xlm文件。
conf.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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <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="1" /> </dataSource> </environment> </environments> <!-- 注册userMapping.xml文件 --> <mappers> <mapper resource="cn/mapping/userMapping.xml" /> </mappers> </configuration>
5.创建实体类
package cn.entity; /** * 用户实体 * @author lizhenjuan * */ public class User { private int id; private String name; private int age; //省略get和set方法 @Override public String toString(){ return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
6、创建users表的sql映射文件uerMappint.xml文件。
useMapping.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"> <mapper namespace="cn.mapping.userMapping"> <!-- 为这个mapper指定唯一的namespace,习惯上命名:包名称+sql映射文件,这样就能够保证命名空间的唯一性。 --> <!-- 在select标签上编写查询的slq语句。id值必须唯一,不能够重复。 parameterType指明查询的参数类型 resultType查询返回的结果集类型,resultType="cn.entity.User"表示将查询的结果集封装成为一个User对象返回。 --> <select id="getUser" parameterType="int" resultType="cn.entity.User"> <!-- 根据ID查询用户信息 --> SELECT * FROM users where id=#{id} </select> </mapper>
7.在conf.xml文件中注册userMapper.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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <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="1" /> </dataSource> </environment> </environments> <!-- 注册userMapping.xml文件 --> <mappers> <mapper resource="cn/mapping/userMapping.xml" /> </mappers> </configuration>
8.创建测试方法
创建测试类,根据id查询数据库的一条记录。
package MyBaties; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import cn.entity.User; public class TestMybatis { @Test public void test() throws IOException{ //获取mybatis的映射文件 String resource="conf.xml"; //使用类加载器加载mybatis的配置文件,它也加载关联的映射文件 //InputStream is= TestMyBatis.TestMybatis.class.getClassLoader().getResourceAsStream(resource); InputStream is= TestMybatis.class.getClassLoader().getResourceAsStream(resource); //构建sessionFactory SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //能够执行映射文件的sql的sqlSession SqlSession session=sessionFactory.openSession(); //映射sql的标识字符串 //其中“cn.mapping.userMapping”是UserMapping.xml文件的命名空间的值,getUser是select标签的Id值 //因为getUser方法唯一,所以通过id值就可以找到要执行的sql语句。 String statement="cn.mapping.userMapping.getUser"; User user=session.selectOne(statement,2); System.out.println(user); } }
9.最后查询效果
10.执行过程总结
大致执行流程如下:
(1)首先SqlSessionFactoryBuilder去读取Mybatis的配置文件,然后build一个DefaultSqlSessionFactory。
(2)获取SqlSessionFactory之后,就可以通过SqlSessionFactory文件来获取SqlSession.
(3)现在得到了SqlSession对象,接下来就可以直接调用Session的中select、insert、update方法了。
(4)在MyBatis中,通过MapperProxy来动态代理我们的dao,也就是当咱们执行自己写的dao里面的方法时候,其实是对应mapperProxy在代理。
三、参考资料
深入理解Mybatis系列--sql执行流程分析(源码篇)
mybatis知识点总结和梳理
MyBatis原理、优缺点、以及和Hibernate的比较
MyBatis 快速入门
相关文章推荐
- Mybatis3.2.3+mysql第一个例子(入门)
- Mybatis3.2.3+mysql第一个例子(入门) | (转)
- OPENGL入门——第一个例子的讲解
- Mybatis 入门学习,简单例子
- mybatis入门例子
- Lucene第一个入门学习例子
- Lucene第一个入门学习例子
- Spring.Net学习笔记一——入门、第一个例子
- Hibernate入门篇(三)——编写第一个Hibernate例子
- mybatis 入门例子
- Mybatis入门概述及第一个Mybatis实例实现增删改查
- hibernate入门的第一个例子
- Flexpaper二次开发入门教程》(十) Flexpaper简单使用-第一个Flexpaper例子
- 第一个入门例子
- Mybatis第一个例子
- Asp.net 和 Comet 开发入门, 第一个例子
- Mybatis入门-例子
- Mybatis3.2.6+mysql第一个例子
- myBatis入门例子
- 第一个mybatis例子