
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测试
发表评论
最新留言
不错!
[***.144.177.141]2025年04月04日 20时42分12秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
上周热点回顾(1.23-1.29)
2021-05-09
上周热点回顾(3.20-3.26)
2021-05-09
上周热点回顾(6.19-6.25)
2021-05-09
云计算之路-阿里云上:docker swarm 集群故障与异常
2021-05-09
上周热点回顾(2.19-2.25)
2021-05-09
云计算之路-阿里云上:博客web服务器轮番CPU 100%
2021-05-09
云计算之路-阿里云上:服务器CPU 100%问题是memcached连接数限制引起的
2021-05-09
上周热点回顾(3.26-4.1)
2021-05-09
上周热点回顾(6.25-7.1)
2021-05-09
【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
2021-05-09
工作半年的思考
2021-05-09
不可思议的纯 CSS 滚动进度条效果
2021-05-09
【CSS进阶】伪元素的妙用--单标签之美
2021-05-09
惊闻NBC在奥运后放弃使用Silverlight
2021-05-09
IE下尚未实现错误的原因
2021-05-09
创建自己的Docker基础镜像
2021-05-09
Python 简明教程 --- 20,Python 类中的属性与方法
2021-05-09
KNN 算法-理论篇-如何给电影进行分类
2021-05-09
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2021-05-09