您的位置:首页 > 其它

Mybatis学习笔记一:环境搭建以及简单使用

2016-11-02 13:11 846 查看

1、Mybatis简介

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

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis
消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis
使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

以上内容转自百度百科

2、环境搭建

2.1、开发环境搭建

开发环境:IntelliJ IDEA,操作系统:Mac OS 10.12,使用maven管理项目;
首先创建项目,并导入相关库,pom.xml文件如下:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

主要使用mybatis、mysql-connector-java,使用junit进行测试,具体使用哪个版本都可以,下载最新的即可。

2.2、数据库创建

数据库使用mysql,并建立表User
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`address` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

-- ----------------------------
--  Records of `user`
-- ----------------------------
BEGIN;
INSERT INTO `user` VALUES ('1', 'zhang', 'password', 'uestc');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;


2.3、配置mybatis配置文件

在main/java/resources文件夹下建立配置文件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 alias="User" type="com.dfz.mybatis.model.User"/>
</typeAliases>

<!-- 配置数据库参数 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />
<property name="username" value="root"/>
<property name="password" value="zsfarther"/>
</dataSource>
</environment>
</environments>

<mappers>
<!-- 指定xml文件位置 -->
<mapper resource="com/dfz/mybatis/model/User.xml"/>
</mappers>
</configuration>

可以看到,第一部分为配置实体类的别名;
第二部分为配置数据库的地址等相关信息;
第三部分指定实体类的映射文件。
创建实体类User.java,这个就不再贴代码了,可以按照数据库信息来创建一个User

配置User的映射文件,并写一个查询方法。
<?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="com.dfz.mybatis.model.UserMapper">
<select id="selectUserByID" parameterType="int" resultType="User">
select * from user where id = #{id}
</select>
</mapper>

在这里定义了方法的命名空间,方法名,参数以及返回值。其中返回值的User是在前面的mybatis-config.xml文件中定义的别名,并以此来映射实体类。

2.4、测试

使用JUnit对mybatis进行测试,测试代码如下:
public class Chapter1Test {

private SqlSessionFactory sqlSessionFactory;
private Reader reader;

@Before
public void before() {
try {
//读取mybatis参数
reader = Resources.getResourceAsReader("mybatis-config.xml");
//建立session factory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}

@Test
public void test() {
//打开session
SqlSession session = sqlSessionFactory.openSession();
//调用查找方法
User user = session.selectOne("com.dfz.mybatis.model.UserMapper.selectUserByID",1);
System.out.println(user);
session.close();
}
}

结果如下:



3、总结

Mybatis的简要启动顺序为:
1、读取配置文件;
2、根据配置文件创建session factory;
3、使用session factory创建session;
4、使用session调用某个方法;
5、关闭session。
Mybatis需要配置的内容包括:
1、配置typeAliases,即某个实体类的别名,用于描述参数;
2、配置数据库参数,包括环境、事务管理以及数据库地址等;
3、配置实体映射文件。
未尽之处后期再补,代码下载地址:https://github.com/EdwardEricZhang/MybatisFun
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: