Mybatis配置笔记

本文介绍如何通过Maven管理MyBatis依赖,并解决LocalDateTime映射问题。包括配置文件详解、环境设置及测试代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven配置

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>  
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.2</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
    </dependency>
<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.18</version>
    </dependency>
</dependencies>

LocalDateTime与maven依赖包的版本问题:

  1. 设置MyBatis版本为3.4.5以上,在3.4.5之前不支持LocalDateTime会报错
  2. mysql-connector-java包如果过小,mysql中DateTime类型的字段值映射为java的entity中的LocalDateTime的时候为报错;5.1.37版本不报错,5.1.25报错

SqlMapConfig主配置文件

<?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 resource="dbConfig.properties"/>

    <settings>
        <!--是否开启驼峰命名自动映射-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--懒加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="aggressiveLazyLoading" value="false"/>
        <!--显示开启二级缓存-->
        <setting name="cacheEnabled" value="true"/>
    </settings>

    <!--配置环境-->
    <environments default="development">
        <!-- 配置开发环境-->
        <environment id="development">
            <!--配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <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="com/jarvis/dao/StudentMapper.xml" />  xml映射方式
        <mapper class="com.jarvis.dao.StudentMapper" />  注解映射方式
    </mappers>
</configuration>

dbConfig.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.72.141:3306/ssm?useUnicode=true&characterEncoding=UTF-8
username=root
password=123456

XXXMapper.xml

<?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.jarvis.dao.XXXMapper">
    <!--开启二级缓存-->
    <cache/>

   
</mapper>

测试代码

//1.读取配置信息
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建一个SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inputStream);
//3.使用工厂生成SqlSession对象
SqlSession session = factory.openSession(true);  //自动提交数据   
注:如果是factory.openSession()则不会自动提交,使用openSession.commit()手动提交
//4.使用SqlSession创建dao接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//5.使用代理对象执行方法
List<User> userList = userDao.findAll();
for(User user:userList){
    System.out.println(user);
}
//6.释放资源
session.close();
inputStream.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值