一、什么是MyBatis
1.MyBatis的前身是IBatis
2.MyBatis主要用于操作数据库。
二、配置MyBatis
1.配置config,用于连接数据库。
<?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="developments">
<!--给他的环境取个名字-->
<environment id="mysql">
<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/test111"/>
<property name="username" value="root" />
<property name="password" value="111" />
</dataSource>
</environment>
</environments>
</configuration>
2.配置操作数据库的映射文件(比如专门用来操作User的user.xml)
2.1先将这个xml文件配置到config中,读取config时会加载到内存中去。
<!--与environments同级-->
<mappers>
<mapper resource="该xml文件的地址" />
</mappers>
2.2
<?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.model.system.User">
<!-- 设置一个resultMap返回值,id是user-- type是user的实体类的src>
<resultMap type="com.model.system.User" id="user">
<!-- 列与属性对应-->
<result column="user_id" property="userId" />
<result column="user_name" property="userName" />
<result column="user_sex" property="userSex" />
<result column="user_age" property="userAge" />
<result column="user_brithday" property="userBrithday" />
</resultMap>
<!-- 查询用户通过用户ID -->
<select id="queryUserByUserId" parameterType="java.lang.Integer"
resultMap="user">
select * from user where user_id = #{userId}
</select>
</mapper>
三、使用MyBatis
1、根据config文件得到sqlSessionFactory对象
//找到这个配置数据库的xml文件
String resource = "mybatis-config.xml";
//创建流
Reader reader = Resources.getResourceAsReader(resource);
//得到这个工厂对象,第二个参数是环境id号
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader,"mysql");
2、根据sqlSessionFactory对象得到sqlSession对象
//得到了session对象
SqlSession session = sqlSessionFactory.openSession();
3、通过SqlSession对象来执行操作数据库。
//第一个参数:该mapper的名字
//第二个参数:传入的参数
session.insert("FirstUser.addUser", u);
四、mapper里面的增删改查函数
select–>查询
delete–>删除
insert–>插入
upadate–>更新
//id为方法名 resultMap为返回类型 parameterType为参数类型
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select * from sys_menu where menu_id = #{menuId,jdbcType=INTEGER}
</select>
五、myBtis使用Mapper
在mybatis-config.xml文件同样配置该mapper
<mappers>
<mapper resource="com/fs/system/mapper/User.xml"/>
</mappers>
<mapper namespace="com.fs.system.dao.UserMapper">
此时的这个nameplace必须为该Dao的地址
六、ORM映射
1.安装插件 MyBatis Generator
2.new MyBatis Generator文件
3.配置这个文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
<!-- 配置驱动 -->
<classPathEntry location="D:\programmingRelated\SoftwareInstallation\mysql-connector-java-5.1.7-bin\mysql-connector-java-5.1.7-bin.jar" />
<context id="context1">
<commentGenerator>
<property name="suppressDate" value="true" />
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--配置你的数据库-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/xxx" userId="root" password="root" />
<!-- 1、领域模型 -->
<javaModelGenerator targetPackage="你想配置到的类中" targetProject="目标项目" />
<!-- 2、xml文件 -->
<sqlMapGenerator targetPackage="你想配置到的类中" targetProject="目标项目" />
<!-- 3、接口 -->
<javaClientGenerator targetPackage="你想配置到的类中" targetProject="目标项目" type="XMLMAPPER" />
<!-- 4、配置表-->
<table tableName="表名" domainObjectName="实体类名" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
七、MyBatis底层运用
1.SqlSessionFactoryBuilder读取配置文件创建了SqlSessionFactory对象
//参数1->读取配置文件的字符流 参数2->环境id
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader,"mysql");
2.通过SqlSessionFactory来获取SqlSession对象
SqlSession session = sqlSessionFactory.openSession();
3.通过这个SqlSession这个对象来执行方法或者得到DaoMapper对象。
UserMapper mapper = session.getMapper(UserMapper.class);
4.通过这个mapper来执行方法。