建立一个mybatis项目

进行父工程pom.xml编写,导入依赖,mysql驱动,mybatis官方文档和junit测试

<!--    导入依赖--><dependencies><!--        mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.17</version><!--            如果与数据库不匹配将useeSSl=false--></dependency><!--官方文档配置--><!--        mybatis--><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><!--        junit--><!--        junit进行测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>

另外在父工程pom.xml中加入

    <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>

识别类型为utf-8

进行程序的编写

再进行程序中porm.xml的编写前面的配置基本相同,在build中配置resources,来防止资源导出失败的问题

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>mybatis-study</artifactId><groupId>org.example</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>mybatis-01</artifactId><!--    build中配置resources,来防止资源导出失败的问题--><build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

编写工具类mybatisUtils

进行工具类的编写,通过sqlSessionFactoryBuilder获取SqlSessionFactory

package com.lyl.utils;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;//sqlSessionFactory-->sqlSessionpublic class mybatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {//使用mybatis第一步:获取SqlSessionFactory对象String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。//你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。public static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}

mybatis配置文件

错误信息:The connection property ‘zeroDateTimeBehavior’ acceptable values are: ‘CONVERT_TO_NULL’,‘EXCEPTION’ or ‘ROUND’.The value ‘convertToNull’ is not acceptable.

解决方案
在jdbc 的配置文件中的URL加上 ?useSSL=false

原因
url地址中useSSL如果idea和mysql的版本不兼容
将useSSL=true改为useSSL=false

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/>
<!--                useSSl=false说明idea和mysql版本不兼容-->
<!--                useSSl=false这是个主要的问题--><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments>
<!--    每一个mapper都需要在mybatis核心配置文件中注册--><mappers><mapper resource="com/lyl/dao/UserMapper.xml"/></mappers>
</configuration>

进行实体类编写

有参,无参,get,set

package com.lyl.pojo;
//实体类
public  class User {private int id;private String name;private String pwd;public User() {}public User(int id, String name, String pwd) {this.id = id;this.name = name;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return pwd;}public String getPwd() {return pwd;}
}

进行usermapper接口编写

package com.lyl.dao;import com.lyl.pojo.User;import java.util.List;public interface UserDao {List<User> getUserList();
}

进行userMapper.xml编写

查询所有的信息从user

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.lyl.dao.UserDao"><select id="getUserList" resultType="com.lyl.pojo.User">select * from mybatis.user</select>
</mapper>

进行测试编写test

建议测试类的位置与编写代码的位置保持一致

package com.lyl.dao;import com.lyl.pojo.User;
import com.lyl.utils.mybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import java.util.List;public class UserDaoTest {@Testpublic void test(){//        第一步:获取SqlSession对象SqlSession sqlSession = mybatisUtils.getSqlSession();//       getMapper执行sqlUserDao userdao = sqlSession.getMapper(UserDao.class);List<User> userList = userdao.getUserList();for(User user: userList){System.out.println(user);}//        关闭sqlSessionsqlSession.close();}
}

出现的错误

错误信息:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException

解决方法:在pom.xml文件中配置

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>

原因:
注解中的中文字符识别不了

错误信息:

 Type interface com.lyl.dao.UserDao is not known to the MapperRegistry.

解决方法:在mybatis-config.xml中添加

<mappers><mapper resource="com/lyl/dao/UserMapper.xml"/></mappers>

原因:
mapper需要在mybatis核心配置文件中注册

mybatis-study相关推荐

  1. Mybatis -study

    Mybatis 1.搭建Mybatis程序 1.1搭建环境 构建数据库环境 1.2.创建一个模块 编写一个mybatis的核心配置文件 <?xml version="1.0" ...

  2. 真正理解mybatis拦截器以及Interceptor和Plugin作用

    看了很多博客文章和,mybatis 的拦截器概念还是不能很好理解, 可能是因为自己基础不好或者理解方式和他人不同吧,所以决定自己花时间好好捋捋, 然后把理解后的总结记录下来,供他人参考,也许你们的理解 ...

  3. MyBatis复习笔记5:MyBatis代码生成器

    前言:做过几个项目之后深感代码生成器的便捷,有了它我们可以少写许多重复的.基础的代码,如基本的增删改查的代码,我们可以交给代码生成器生成,而我们只需要专注于业务逻辑上的代码即可. MyBatis Ge ...

  4. Mybatis入门:2(xml形式的增删改查)

    xml形式的增删改查 这里感觉没啥好讲的,照着代码自己敲一遍.认真再看看应该都懂的. Maven工程坐标 <?xml version="1.0" encoding=" ...

  5. Mybatis入门:1(Mybatis框架的环境搭建)

    Mybatis框架的环境搭建 一.创建maven工程并导入坐标 导入坐标: <dependencies><dependency><groupId>org.mybat ...

  6. MyBatis 一个简单配置搞定数据加密解密!

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言:介绍一个简单的MyBatis加解密方式,日常学习工作中提及这种方法的比较少,所以拿来说说,如果已经知道这种方法的忽略本文! 一 ...

  7. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  8. springboot整合mybatis记录

    首先有个地方要说明一下,要使用到PageHelper插件分页的时候,springboot的版本不能是2.0.0,我试过使用2.0.0的版本,启动报错缺少类 org.springframework.bo ...

  9. 转:mybatis - 分页功能

    本文转自http://www.cnblogs.com/jcli/archive/2011/08/09/2132222.html mybatis高级应用系列一:分页功能 Mybatis3.0出来已有段时 ...

  10. Spring集成Mybatis,spring4.x整合Mybatis3.x

    Spring集成Mybatis,spring4.x整合Mybatis3.x ============================== 蕃薯耀 2018年3月14日 http://www.cnblo ...

最新文章

  1. ckc交易什么意思_限价委托是什么意思?有限制的委托交易
  2. Bean标签范围配置
  3. powershell自动化操作AD域、Exchange邮箱系列(3)—重要的模块/API介绍Get-Aduser Get-Mailbox
  4. MATLAB语言初步学习(四)
  5. Fragstats计算景观生态指数
  6. Wiki引擎mediawiki
  7. 2020游戏主播最爱五款蓝牙耳机推荐,低延迟吃鸡王者顺畅无压力
  8. Docker( 八)docker的安全以及安全加固
  9. plc梯形图的c语言写法,PLC梯形图讲解.ppt
  10. 使用计算机录制声音10,Win10电脑麦克风无法录音怎么解决 win10麦克风声音无法输入的解决方法...
  11. 2022年莆田市高新技术企业申报奖励补贴,高企认定条件以及申报材料汇总
  12. java课程设计(学生信息管理系统设计)+数据库
  13. Extremely hard RSA 低加密指数攻击
  14. 基于51单片机的花样流水灯设计
  15. 【mysql】关闭mysql缓存的方法
  16. 先搞清楚荷、莲、芙蓉的区别
  17. python 绘制简单的折现图
  18. 怎样用C语言打造炫酷的图形编程
  19. (七)python网络爬虫(理论+实战)——json数据解析
  20. 一种基于人脸追踪和特征分析的疲劳驾驶预警平台

热门文章

  1. 装机摸鱼日志--ubuntu16.04安装网易云音乐客户端
  2. 通知栏(Notification)的基本使用
  3. 美剧字幕组高手写的学英语心得(单词篇)
  4. [4G5G专题-117]:5G培训应用篇-2-5G新的网络架构与关键技术
  5. 【逻辑题】是谁在说谎?
  6. Centos7设置多个jar包开机自启动
  7. Service+WebSocket实现实时定位
  8. html各种加载动画
  9. ios逆向傻瓜入门教程(一)
  10. 从高考落榜生到网络专家-转自齐鲁社区之齐鲁杂谈(转)