mybatis的环境搭建

第一步:创建maven工程并导入坐标
        第二步:创建实体类和dao的接口
        第三步:创建Mybatis的主配置文件
                      SqlMapConifg.xml
        第四步:创建映射配置文件
                      IUserDao.xml
    环境搭建的注意事项:
        第一个:创建IUserDao.xml 和 IUserDao.java时名称是为了和我们之前的知识保持一致。
            在Mybatis中它把持久层的操作接口名称和映射文件也叫做:Mapper
            所以:IUserDaoIUserMapper是一样的
        第二个:在idea中创建目录的时候,它和包是不一样的
            包在创建时:com.dym.dao它是三级结构
            
目录在创建时:com.dym.dao是一级目录
        第三个:mybatis的映射配置文件位置必须和dao接口的包结构相同
        第四个:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
        第五个:映射配置文件的操作配置(select)id属性的取值必须是dao接口的方法名

当我们遵从了第三,四,五点之后,我们在开发中就无须再写dao的实现类。


mybatis的入门案例
        第一步:读取配置文件
        第二步:创建SqlSessionFactory工厂
        第三步:创建SqlSession对象
        第四步:创建Dao接口的代理对象
        第五步:执行dao中的方法
        第六步:释放资源

注意事项:
            不要忘记在映射配置中告知mybatis要封装到哪个实体类中
            配置的方式:指定实体类的全限定类名

pom.xml

<?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"><modelVersion>4.0.0</modelVersion><groupId>com.dym</groupId><artifactId>day01_eesy_01mybatis</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency></dependencies>
</project>

User.java

package com.dym.domain;import java.io.Serializable;
import java.util.Date;public class User implements Serializable{private Integer id;private String username;private Date birthday;private String sex;private String address;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", birthday=" + birthday +", sex='" + sex + '\'' +", address='" + address + '\'' +'}';}
}

IUserDao.java

package com.dym.dao;import com.dym.domain.User;
import java.util.List;/*** 用户的持久层接口*/
public interface IUserDao {/*** 查询所有操作* @return*/List<User> findAll();
}

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis的主配置文件 -->
<configuration><!-- 配置环境 --><environments default="mysql"><!-- 配置mysql的环境--><environment id="mysql"><!-- 配置事务的类型--><transactionManager type="JDBC"></transactionManager><!-- 配置数据源(连接池) --><dataSource type="POOLED"><!-- 配置连接数据库的4个基本信息 --><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 --><mappers><mapper resource="com/dym/dao/IUserDao.xml"/></mappers>
</configuration>

IUserDao.xml

<?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.dym.dao.IUserDao"><!--配置查询所有--><select id="findAll" resultType="com.dym.domain.User">select * from user</select>
</mapper>

MybatisTest.java

package com.dym.test;import com.dym.dao.IUserDao;
import com.dym.domain.User;
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.InputStream;
import java.util.List;public class MybatisTest {public static void main(String[] args)throws Exception {//1.读取配置文件InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.创建SqlSessionFactory工厂SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory = builder.build(in);//3.使用工厂生产SqlSession对象SqlSession session = factory.openSession();//4.使用SqlSession创建Dao接口的代理对象IUserDao userDao = session.getMapper(IUserDao.class);//5.使用代理对象执行方法List<User> users = userDao.findAll();for(User user : users){System.out.println(user);}//6.释放资源session.close();in.close();}
}

mybatis的入门相关推荐

  1. c++框架有哪些_Java Mybatis框架入门教程_v20200726

    MyBatis 的前身是 Apache 的开源项目 iBatis.MyBatis 几乎可以代替 JDBC,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架.MyBat ...

  2. MyBatis学习总结(1)——MyBatis快速入门

    2019独角兽企业重金招聘Python工程师标准>>> 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所 ...

  3. MyBatis基础入门《九》ResultMap自动匹配

    MyBatis基础入门<九>ResultMap自动匹配 描述: Mybatis执行select查询后,使用ResultMap接收查询的数据结果. 实体类:TblClient.java 接口 ...

  4. Mybatis最入门---代码自动生成(generatorConfig.xml配置)

    [一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...

  5. mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 一.Mybatis介绍 MyBatis是一个支持普通*SQL*查询,存储过程和高级映射的优秀持 ...

  6. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

  7. Mybatis从入门到精通下篇

    Mybatis从入门到精通下篇: 输入类型: 输出类型: ResultMap: 动态sql: if标签: where标签: sql片段: foreach标签: 关联查询: 以订单作为主体: 一对一查询 ...

  8. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  9. Mybatis的入门到精通这一篇文章就够了

    Mybatis的产生 idea 的配置 idea当中配置好maven工具 1Idea当中配置自动编译 Mybatis是什么? Mybatis的执行原理图 Mybatis的入门Demo 对象的详解 Re ...

最新文章

  1. B树与B+树 两者的区别
  2. mysql udf禁用_Mysql数据库UDF的安全问题利用
  3. 运行txt文本也可能中毒!微软急修“文本病毒”漏洞
  4. hive olap 数据仓库_数据仓库系统的实现和使用(含OLAP重点讲解)
  5. 响应服务器535.5.7.0AUTH,javax.mail.AuthenticationFailedException:535 5.7.3无法发送邮件
  6. 操作系统上机题目(多进程1)
  7. 尝试引用已删除的函数_如何在Excel中使用ROW函数
  8. mysql服务连接标识_MySQL 连接 | 菜鸟教程
  9. android 屏幕长宽,怎么获取手机屏幕长宽
  10. 2018java面试集合
  11. OpenCV cv.INTER_AREA和cv.INTER_CUBIC 还有cv.INTER_LINEAR
  12. 【常用Dos命令操作】操作+图(1)
  13. 在一个页面的多个位置同时显示不同的Toastr提示信息
  14. [LeetCode 1360~1363][周赛]周赛177题解
  15. python 面试题 aac caa相似_Python 面试实训 100 题,哪道难住了你?| 文末附答案
  16. 天尚网最新单机游戏下载,直接下载哦!
  17. 微盟WOS新商业操作系统正式公测
  18. 步进电机的转矩与功率的换算公式
  19. 基于STM32的智能温室控制系统仿真电路设计(温控补光)-基于STM32的智能蓝牙温控风扇控制系统设计-基于STM32的无线蓝牙心电监护仪系统设计【毕设课设分享】
  20. 用pandas生成excel文件示例,并调整excel的格式或样式

热门文章

  1. 201807 相关性度量的几种方法-卡方检验、相关系数、信息增益...
  2. Django框架详细介绍---cookie、session、自定义分页
  3. ubuntu安装qtcreator
  4. angularjs里对JS的lowercase和uppercase的完善
  5. 2011软考软件设计师:C语言代码规范问题(1
  6. linux内核 DebugFS
  7. HP ALM 使用经验
  8. Device Tree(一):背景介绍
  9. 手持机设备公司(WINCE/ANDROID/LINUX)
  10. Git的分支命令详解