建立一个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. DCN-cs6200 ipv6 6to4隧道
  2. 首款微控制器级树莓派 Pico,超廉价只需4美元
  3. 从 Java 到 Scala(二):object
  4. go中NOSQL数据库操作
  5. Liferay门户与CAS实现SSO单点登录
  6. python元祖用法_Python序列(列表list和元组tuple)用法完全攻略
  7. Leetcode刷题之旅1
  8. 在shell中使用echo命令输出带颜色的文本-转
  9. MySQL主从原理,基于快速学习一门技术的3种方式
  10. 动态组合sql语句详解
  11. 情绪管理训练APP的产品概念分析
  12. 【微信篇】取证遇到微信昵称、微信号、微信账号、微信ID一次性区分清楚
  13. 遥感学习笔记(八)——遥感影像
  14. 倪光南院士2006年9月1号在南京软件博览会上的讲话
  15. 基于SEIR模型对美国COVID-19疫情传播的预测和分析
  16. predefined annotation
  17. 瀚龙广告提供一站式的新型广告模式!大大增加用户体验
  18. 在Oracle中,如何定时清理INACTIVE状态的会话?
  19. 【树莓派基础小实验笔记】1. 点亮LED二极管
  20. 物流围城 让今年双11商家拿什么发货?

热门文章

  1. 如何向IE的历史记录添加记录?
  2. 将一个大于4的正整数分解为连续的正整数之和,请显示全部分解结果。
  3. jvisualvm的简略介绍
  4. SQL注入关键词大全
  5. 做SEO和SEM有什么区别?哪个推广效果会更好?
  6. android mjpg格式,android下mjpeg格式硬解码
  7. Photoshop-软件安装
  8. vue-router 原理
  9. 三相异步电动机空间矢量控制详解
  10. php本地数据查询,PHP中如何实现首字母数据查询