注:本文参考了孤傲苍狼关于MyBatis学习总结,在此表示感谢,原文链接为http://www.cnblogs.com/xdp-gacl/p/4261895.html。
1、新建project,勾选create from archetype,选择org.apache.maven.archetypes:maven-archetype-quickstart。
填写GroupId: com.wuhao.database,ArtifactId: mysql,version: 1.0-snapshot。
2、修改pom.xml文件,增加external libraries: mysql以及org.mybatis。pom.xml文件内容如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wuhao.database</groupId> <artifactId>mysql</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>mysql</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.1</version> </dependency> </dependencies> </project>
3、在src/main/resources目录下创建conf.xml文件: 主要用来配置mysql数据库信息等功能(通过调用db.properties配置文件)。
在src/main/resources/com/wuhao/database目录下创建userMapper.xml文件: 用来实现数据表的create、remove、update、select功能。
在src/main/resources/com/wuhao/database目录下创建db.properties文件,里面包含连接数据库的信息。
具体的注释见代码。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<?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> <!-- 引用db.properties配置文件 --> <properties resource="com/wuhao/database/db.properties" /> <!-- 配置实体类的别名。注意<typeAliases>的位置,需要放在<configuration>标签下面靠前的位置,<properties>标签后面, <environments>以及<mappers>标签前面。 --> <typeAliases> <!-- 以下2种方法选其一即可。 第1种方法:使用typeAlias,为单个类设置别名。 --> <typeAlias type="com.wuhao.database.entity.User" alias="User" /> <!-- 第2种方法:使用package,为包下面的所有类设置别名,默认规则为com.wuhao.database.entity.User设置为User,去除前面的包名。 --> <!-- <package name="com.wuhao.database.entity" /> --> </typeAliases> <!-- development : 开发模式; work : 工作模式 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息,${driver}等变量名需要在引用的配置文件中找 --> <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> <!-- 注册petMapper.xml文件,petMapper.xml位于com.wuhao.database这个包下,所以resource写成 com/wuhao/database/petMapper.xml --> <mapper resource="com/wuhao/database/userMapper.xml" /> <!-- 注册UserMapper映射接口 --> <mapper class="com.wuhao.database.dao.UserMapperInterface" /> </mappers> </configuration>
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<?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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀) --> <mapper namespace="com.wuhao.database.userMapper"> <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="me.gacl.entity.User"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 --> <!-- 创建用户 --> <insert id="addUser" parameterType="User"> insert into user(id, username, password, email) VALUES (#{id}, #{username}, #{password}, #{email}) </insert> <!-- 删除用户 --> <delete id="deleteUser" parameterType="String"> delete from user where id = #{id} </delete> <!-- 修改用户 --> <update id="updateUser" parameterType="User"> update user set username = #{username}, password = #{password}, email = #{email} where id = #{id} </update> <!-- 根据id查询得到一个User对象 --> <select id="getUser" parameterType="String" resultType="User"> select * from user where id = #{id} </select> <!-- 查询所有用户 --> <select id="getAllUsers" resultType="User"> select * from user </select> </mapper>
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/mytest
username = root
password = 333
4、创建基本的各种类和接口,User类,UserDao类,UserMapperInterface接口,以及用于测试的TestUserByAnnotationMapper类以及TestUserByXmlMapper类。整个目录结构如下图:
5、mytest数据库中创建表: user。