MyBatis总结 Day01
发布日期:2021-05-08 20:50:31 浏览次数:23 分类:原创文章

本文共 2604 字,大约阅读时间需要 8 分钟。

MyBatis快速入门及一些错误Day01

1.MyBatis介绍

​ MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀半自动持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装,转而使用简单的XML或注解用于配置原始映射,将接口和Java的POJO(普通Java对象)映射为数据库中的记录。

​ 半自动化:需要手写SQL语句。

JDBC–>dbutils–>MyBatis–>Hibernate(过于自动化)

2.MyBatis入门

2.1 导包

【mybatis】mybatis-3.1.1.jar【MYSQL 驱动包】mysql-connector-java-5.1.7-bin.jar

2.2 配置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>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC" />            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver" />                <property name="url" value="jdbc:mysql://localhost:3306/XXX" />                <property name="username" value="root" />                <property name="password" value="root" />            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="mapper/XXXMapper.xml"></mapper>        (可以配置多个mapper)    </mappers></configuration>

2.3 书写Dao层接口

public interface StudentDao {       /**     * 查询所有学生     * @return     */    List<Student> queryAllStudent();    /**     * 增加一个学生     * @param student     * @return     */    int insertStudent(Student student);    /**     * 删除一个学生     * @param sid     * @return     */    int deleteStudent(Integer sid);    /**     * 修改一个学生(测试{param1}形式接收参数)     * @param name     * @param sex     * @return     */    int updateStudent(String name,String sex,Integer sid);}

2.4 配置对应的Mapper.xml映射文件
建议创建一个Mapper文件夹,用于存放各种Mapper映射文件

<?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.xxx.dao.StudentDao(接口全类名)">    <select id="queryAllStudent" resultType(返回类型)="com.xxx.entity.Student">        select * from student    </select>    <insert id="insertStudent" parameterType(提供参数类型)="com.xxx.entity.Student">        insert into student(sid,sname,ssex,classid) values(#{sid},#{sName},#{sSex},#{classId})    </insert>    <update id="updateStudent" >        update student set sname=#{param1},ssex=#{param2} where sid=#{param3}    </update>    <delete id="deleteStudent">        delete from student where sid=#{sid}    </delete></mapper>

3.使用中碰到的BUG


在这里插入图片描述
解决方法:mybatis-config.xml中数据库连接url后添加时区


在这里插入图片描述
解决方法:在mybatis-config.xml中配置mapper
或者mapper映射文件中的命名空间不是dao层接口的全类名


在这里插入图片描述
解决方法:注意mapper映射文件中SQL语句对应的字段名
在这里插入图片描述

如果使用的Maven工程可能会报这个错误,是IDEA的兼容问题。
在这里插入图片描述
解决办法:测试不要用main方法测试,使用junit测试

在这里插入图片描述

上一篇:MyBatis总结 Day02
下一篇:动态开点线段树

发表评论

最新留言

不错!
[***.144.177.141]2025年04月04日 20时42分12秒