(一)MyBatis快速入门

通过一个案例快速入门Mybatis框架

案例:查询user表中所有数据1) 创建user表,添加数据2) 创建模块,导入坐标3) 编写MyBatis核心配置文件-->替换连接信息,解决硬编码问题4) 编写SQL映射文件-->统一管理sql语句,解决硬编码问题5) 编码i. 定义POJO类ii. 加载核心配置文件,获取SqlSessionFactory对象iii. 获取SqlSession对象,执行SQL语句iv. 释放资源

1、创建user表,添加数据

DROP table IF exists tb_user;CREATE TABLE tb_user(id int primary key auto_increment,username varchar(20),password varchar(30),gender char(1),addr varchar(20)
);insert into tb_user(id, username, password, gender, addr) values
(1, 'zhangsan', '123', '男', '广州'),
(2, '李四', '234', '女', '天津'),
(3, '王五', '11', '男', '北京');
sql语句执行结果

2.创建模块,导入坐标

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.itheima</groupId><artifactId>mybatis-demo</artifactId><version>1.0-SNAPSHOT</version><repositories><repository><id>JBoss repository</id><url>https://repository.jboss.org/nexus/content/repositories/releases/</url></repository></repositories><dependencies><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!--单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!--添加slf4j日志API--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.20</version></dependency><!--添加logback-classic依赖--><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><!--添加logback-core依赖--><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency></dependencies></project>
logback文件的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"><!--定义日志文件的存储地址--><property name="LOG_HOME" value="/home" /><!--控制台日志, 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder></appender><!--文件日志 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天数--><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>10MB</MaxFileSize></triggeringPolicy></appender><logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" /><logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" /><logger name="org.hibernate.SQL" level="DEBUG" /><logger name="org.hibernate.engine.QueryParameters" level="DEBUG" /><logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /><logger name="com.apache.ibatis" level="TRACE"/><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/><root level="DEBUG"><appender-ref ref="STDOUT" /><appender-ref ref="FILE"/></root>
</configuration>

3.编写MyBatis核心配置文件–>替换连接信息,解决硬编码问题

mybatis核心配置文件参考官网给出的示例
官网:https://mybatis.org/mybatis-3/zh/getting-started.html红色框框中的内容是需要根据自己的设置更改的

 我自己的配置如下:
<?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><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://127.0.0.1:3306/mybatis?useSSL=false"/><property name="username" value="root"/><property name="password" value="111111"/></dataSource></environment></environments><mappers><mapper resource="UserMapper.xml"/></mappers>
</configuration>

4.编写SQL映射文件–>统一管理sql语句,解决硬编码问题

sql映射配置文件参考官网给出的示例
官网:https://mybatis.org/mybatis-3/zh/getting-started.html红色框框中的内容是需要根据自己的设置更改的

我的sql映射文件 UserMapper.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"><!--namespace:名称空间
-->
<mapper namespace="test"><select id="selectAll" resultType="com.itheima.Pojo.User">select * from tb_user;</select>
</mapper>

5. 编码

首先创建User类包含表中的所有字段

public class User {private Integer id;private String username;private String passWord;private String gender;private String addr;public User() {}public User(Integer id, String username, String passWord, String gender, String addr) {this.id = id;this.username = username;this.passWord = passWord;this.gender = gender;this.addr = addr;}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 String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord = passWord;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", passWord='" + passWord + '\'' +", gender='" + gender + '\'' +", addr='" + addr + '\'' +'}';}
}
测试类:main方法
public static void main(String[] args) throws Exception {//1.加载mybatis核心配置文件,获取SqlSessionFactoryString resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//2.获取SqlSession对象,用它来执行sqlSqlSession sqlSession = sqlSessionFactory.openSession();//3.执行sqlList<User> users = sqlSession.selectList("test.selectAll");System.out.println(users);//4.释放资源sqlSession.close();}

Mybatis笔记——Mybatis入门相关推荐

  1. SSM整合之Mybatis笔记( MyBatis获取参数值的两种方式(重要))(P020—P025)

    P20 MyBatis获取参数值的两种方式(重要) 一.什么叫做获取取参数值的两种方式 以后在我们开发是方向B/S系统,然后我们现在要做的任务通过浏览器/页面/视图 收集用户输入的一些数据,然后把这些 ...

  2. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  3. Mybatis学习笔记——Mybatis入门

    文章目录 Mybatis入门 1.为什么要使用mybatis? 2.ORM 3.mybatis简介 4.mybatis框架 5.mybatis入门程序 5.1搭建环境 5.2 配置log4j 5.3 ...

  4. java元婴期(22)----java进阶(mybatis(1)---mybatis框架概述入门程序)

    1.对原生态jdbc程序中问题总结(为啥要用mybatis) 1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接 ...

  5. MyBatis之快速入门

    MyBatis之快速入门 2017/9/30 首先我要明确告诉大家的是MyBatis是一个java持久层框架,以前我们都是用jdbc来将我们的java程序与数据库相连接,而MyBatis是对jdbc的 ...

  6. mybatis笔记之一次插入多条数据sql语句写法

    mybatis笔记之一次插入多条数据sql语句写法

  7. mybatis 依赖于jdbc_大数据基础:Mybatis零基础入门

    在Java企业级开发任务当中,持久层框架的选择,国内市场的主流选择一定有Mybatis的一席之地,从入门来说,Mybatis的学习难度不算高,但是要把Mybatis发挥出真正的效用,还是需要深入学习的 ...

  8. Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建

    目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...

  9. 【狂神JAVA】MyBatis笔记

    简介 自学的[狂神JAVA]MyBatis 分享自写源码和笔记,希望对大家有帮助 本人配置 jdk13.0.2 (jdk1.7以上均可) Maven 3.6.3 MySQL 5.7.23 (mysql ...

最新文章

  1. 手把手教你如何建立自己的Linux系统(二)
  2. c#_异常捕获(try catch finally、throw)
  3. 二叉树的基本概念以及基本操作
  4. c语言程序设计第4版pdf荣政_C语言程序设计(第4版) (史蒂芬.寇肯) 中文pdf扫描版[82MB]...
  5. redhat php5 安装,完整的linux(RedHat)+php5.3.10+mysql5.5.19+apache2.2.22安装配置说明
  6. wxWidgets:编写一个应用程序
  7. python刷阅读_通过python+selenium3实现浏览器刷简书文章阅读量
  8. 面试官:谈谈数据库连接池的原理
  9. Altium AD20分屏显示,交叉选择模式使用,原理图和PCB器件的同步选择
  10. Java使用IntelliJ IDEA创建一个基于Swing的GUI图形化程序,打包发布为jar
  11. matlab曲线导入cad,MATLAB导入CAD数据
  12. Python转换音频采样率(8k到16k)
  13. [转载]关于sql连接语句中的Integrated Security=SSPI
  14. 【漫画+图解】面试官让我用 2GB 内存给 20亿个整数(需要8GB内存)排序,我该咋整??
  15. 计算机操作系统——(第四章) 存储器管理/内存管理
  16. 视频的编码与传输过程
  17. Bing 无法访问临时解决方案
  18. 【小程序】开发需要注意的地方(二)
  19. 【人工智能】作业1: Bait游戏 实验报告
  20. 电脑c盘不够用怎么扩容,磁盘c怎么扩展

热门文章

  1. 使用session保持登录状态,cookie保存用户账号密码
  2. 乒乓球单循环赛_重庆市首届乒乓球业余锦标赛开拍 冠军奖3万 总奖金近10万
  3. java客户姓名添加和查找_java类与对象 演练 客户姓名添加与查看
  4. 面试题:移动数组的元素
  5. Unity预计算全局实时GI(gi params)
  6. [poj3321]Apple Tree_dfs序_树状数组
  7. windows下memcache的安装总结
  8. python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)...
  9. 工程中选择数据结构和算法的依据
  10. 深度学习第一次课-数学