kevincheung 2020-06-14
一.下载MyBatis
github项目地址:https://github.com/mybatis/mybatis-3/releases
二.将MySql驱动和MyBatis的jar包放到项目的buildpath中

三.在src根目录下新建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>
<!-- 加载类路径下的属性文件(JDBC加载数据库driver,url,username,password的字段封装) -->
<!--properties resource="db.properties"/-->
<!--此处设置Java POJO类型别名-->
<typeAliases>
<!--1.单独设置某个类型的别名-->
<!--<typeAlias type="com.woniuxy.mall.entity.Category" alias="Category"/>-->
<!--2.将package中的所有类,都以简单类名作为别名-->
<package name="com.woniu.mall.entity"/>
</typeAliases>
<!-- 设置一个默认的连接环境信息 -->
<environments default="development">
<!-- 连接环境信息,取一个任意唯一的名字 -->
<environment id="development">
<!-- mybatis使用jdbc事务管理方式 -->
<transactionManager type="JDBC" />
<!-- mybatis使用连接池方式来获取连接 -->
<dataSource type="POOLED">
<!-- 配置与数据库交互的4个必要属性 -->
<!--1.若存在属性文件字段(例:jdbc.driver=com.mysql.cj.jdbc.Driver)则使用${mysql.*}方式读取-->
<!--property name="driver" value="${mysql.driver}"/-->
<!--2.若不存在属性文件,则手动填写数据库连接相应信息(driver,url,username,password)-->
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3310/woniumall?useSSL=false&serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- 加载映射文件-->
<mappers>
<mapper resource="com/woniu/mall/dao/CategoryMapper.xml" />
<mapper resource="com/woniu/mall/dao/UserMapper.xml" />
<mapper resource="com/woniu/mall/dao/RecAddressMapper.xml" />
<mapper resource="com/woniu/mall/dao/GoodsMapper.xml"/>
<mapper resource="com/woniu/mall/dao/CartMapper.xml"/>
<mapper resource="com/woniu/mall/dao/OrderMapper.xml"/>
<mapper resource="com/woniu/mall/dao/OrderDetilsMapper.xml"/>
</mappers>
</configuration>三.在实体类entity包新建POJO, 属性与关系数据库中的列对应

四.在数据访问层 DAO(Data Access Object),dao包中新建接口XxxDAO,里面声明若干的抽象方法

五.为每一个在同一个包中新建一个_ _Mapper.xml的映射文件,其中配置就是DAO中的方法,映射关系

映射文件配置:
<?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对应一个dao -->
<mapper namespace="com.woniu.mall.dao.CartDAO">
<!-- id字段必填对应接口中抽象方法名-->
<!-- parameterType (可选配置, 默认为mybatis自动选择处理)
将要传入语句的参数的完全限定类名或别名, 如果不配置,mybatis会通过ParameterHandler 根据参数类型默认选择合适的typeHandler进行处理
parameterType 主要指定参数类型,可以是int, short, long, string等类型(简单类型),也可以是复杂类型(如对象) -->
<!--此处的别名已在config文件中将实体类全部包扩,将com.*.entity前缀简化-->
<insert id="add" parameterType="Cart">
insert into mall_cart(userid,goodsid,goodsnum,goodsprice,date)
values(#{userId},#{goodsId},#{goodsNum},#{goodsPrice},#{date})
</insert>
</mapper>六.将映射文件配置到config文件中
<!-- 加载映射文件-->
<mappers>
<mapper resource="com/woniu/mall/dao/CategoryMapper.xml" />
<mapper resource="com/woniu/mall/dao/UserMapper.xml" />
</mappers>七.写入数据测试
@Test
public void testAdd() {
//读取mybatis-config.xml文件
String resource = "mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
//初始化mybatis,创建SqlSessionFactory类的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建一个session实例
SqlSession session = sqlSessionFactory.openSession(); // 类似Connection
//使用session.getMapper(**DAO.class)创建对应的DAO实例
CategoryDAO dao = session.getMapper(CategoryDAO.class); // 会根据接口产生一个实现(动态代理)
Category category = new Category();
category.setName("生活");
category.setStatus("1");
//调用DAO接口中对应的抽象方法,实现数据的增删改查
dao.add(category);
//事务提交
session.commit(); //提交,MyBatis默认不会提交事务
}