一、准备条件:
1.依赖jar包:mybatis核心包(必须)、lombok插件包(非必须)以及MySQL数据库连接驱动包(必须)
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency>
2.jdk1.8及以上
3.其他
二、配置启动mybatis项目
1.核心配置文件(请放到项目的classpath路径下):
<?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>
<!--属性-->
<properties>
<!--数据库连接属性-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/xiao"/>
<property name="username" value=""/>
<property name="password" value=""/>
</properties>
<!--环境配置信息-->
<environments default="development">
<environment id="development">
<!--事务管理,采用JDBC事务-->
<transactionManager type="JDBC"/>
<!--dataSource连接管理,采用需要连接池的链接-->
<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>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
2.启动。使用mybatis的核心代码就是操作一个SqlSession对象,对数据库进行增删改查操作,那么一个SqlSession对象是如何生成的呢?先读取核心配置文件(参考上面),然后用工厂模式创建。
//使用xml文件来加载mybatis启动项 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//try语句可以单独使用,表名如果代码执行完毕后,自动释放小括号中的资源。前提是该资源实现了AutoCloseable接口。
try (SqlSession sqlSession = sqlSessionFactory.openSession()) { }
3.映射。将对数据库表的操作,放入一个xml配置文件中,并在mybatis-config文件中引入。并且将每一个配置文件都与一个类一一对应。
在mybatis-config中引入映射文件
<!--映射配置文件--> <mappers> <mapper resource="UserMapper.xml"/> </mappers>
具体的映射配置文件:注意,namespace(命名空间)一定与具体的Java类的全路径保持一致,这样mybatis在加载的时候,会自动将xml文件与对应的Java类绑定。在老版本的mybatis中,只需要配置文件便可以访问sql,但是需要用string类型的id和配置文件的进行匹配
这样就可能在编码过程中出现错误。现在将配置文件与一个具体的类接口绑定之后,就不会出错。
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.lv.bean.UserBeanMapper"> <resultMap id="UserMap" type="com.lv.bean.UserBean"> <id property="id" column="uid"/> <result property="user_name" column="userName"/> <result property="user_password" column="userPassword"/> <result property="createTime" column="createTime"/> <result property="updateTime" column="updateTime"/> </resultMap> <!-- 可以将sql语句独立出来,然后引用 --> <sql id="selectMap"> u.username, u.address ,c.campany_name </sql> <!-- 根据id查询用户 --> <select id="getUserInfo" parameterType="int" resultType="com.lv.bean.UserBean"> SELECT * FROM user u WHERE u.uuid = #{uuid} </select> </mapper>
与上面的配置文件绑定的Java类(接口),其中方法名与上面的映射配置文件的id对应。
public interface UserBeanMapper { public UserBean getUserInfo(int dd); }
参考文献:https://mybatis.org/mybatis-3/zh/configuration.html