(如有错漏,望大神指正,依赖包版本不同有可能出现不同问题)

关于mybatis

1,传统的JDBC代码都是写死的,存在硬编码问题

2,修改参数的方式繁琐(set get)

mybatis是什么(概括,详情见MyBatis中文网)

1,是一款持久层框架

2,简化了JDBC代码

3,可以通过xml和注解来配置和映射

MyBatis

1,连接数据库,创建mybatis数据库(这里用到MySQL)

Navicat可视化连接数据库,mysql初始用户名:root;密码:123456(可自行修改)

创建mybatis数据库;

CREATE DATABASE mybatis;

2,创建要查询的MySQL数据表

在mybatis库中创建Student数据表

--创建表
create TABLE Student(
sid int primary key auto_increment,
sname varchar(64) not null,
note varchar(200) not null,
);--添加元素
insert int Student(sname,note)values('颜回' ,'一箪⻝,一瓢饮,在陋巷,人不堪其忧,回也不改其乐');INSERT INTO student (sname, note)VALUES('闵损','二十四孝之芦衣顺母;母在一子寒,母去三子单'
);INSERT INTO student (sname, note)
VALUES
(
'冉伯牛',
'不幸患麻⻛病,端正正派,善于待人接物'
);
INSERT INTO student (sname, note)
VALUES
(
'仲弓',
'冉雍出身贫贱,但气量宽宏,沉默厚重'
);
INSERT INTO student (sname, note)
VALUES
(
'冉求',
'冉求个性谨慎,做事畏缩;力不足者,中道而废。今女画'
);
INSERT INTO student (sname, note)
VALUES
(
'子路',
'生性豪爽,为人耿直,有勇力才艺,闻过则喜'
);
INSERT INTO student (sname, note)
VALUES
(
'子贡',
'子贡与子路一文一武,犹如孔子的左右手,尤善经商,首富,但不是君子,因为君子
不器'
);
INSERT INTO student (sname, note)
VALUES
(
'子我',
'口⻮伶俐,能说善辩,被孔子骂朽木不可雕也'
);
INSERT INTO student (sname, note)
VALUES
(
'子游',
'割鸡焉用牛刀典故主⻆,割鸡焉用牛刀;君子学道则爱人,小人学道则易使也'
);
INSERT INTO student (sname, note)
VALUES
(
'子夏',
'学而优则仕提出者;巧笑倩兮,美目盼兮,素以为绚兮’,何谓也?”子曰:“绘事后
素'
);--查看表
select * from Student;

3,打开idea,创建maven项目

1, 配置pom文件(junit,log2j,mysal-connector-java,mybatis)

 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version>
</dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency>

2,新建配置文件mybatis-config.xml(mybatis中文网可查到相关代码,拷贝加以修改)

<?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://localhost:3306/mybatis"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments></configuration>

4,接口StudentMapper

5,实体类Student

package org.example;public class Student {private Integer sid;private String sname;private String note;public Student(Integer sid, String sname, String note) {this.sid = sid;this.sname = sname;this.note = note;}public Student() {}@Overridepublic String toString() {return "Student{" +"sid=" + sid +", sname='" + sname + '\'' +", note='" + note + '\'' +'}';}public Integer getSid() {return sid;}public void setSid(Integer sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getNote() {return note;}public void setNote(String note) {this.note = note;}
}

6,映射文件StudentMapper.xml(mybatis中文网可查到相关代码,拷贝加以修改)

<?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="org.example.StudentMapper"><select id="selectStudent" resultType="org.example.Student">select * from Student where sid = #{id}</select>
</mapper>

7,再次修改配置文件,添加如下(其实就直接修改cop的代码引号里的内容)

<mappers><mapper resource="StudentMapper.xml"/></mappers>

在接口中增加方法

8,写测试文件

package org.example;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;/*** Hello world!**/
public class App
{public static void main( String[] args ) throws IOException{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);try(SqlSession session = sqlSessionFactory.openSession()){Student stu = (Student)session.selectOne("org.example.StudentMapper.selectStudent",2);System.out.println(stu);}}
}

9,测试结果

关于SSM(mybatis)入门01相关推荐

  1. 01.MyBatis入门

    MyBatis入门: 第一天接触Mybatis,总结一下入门案例的流程: 首先导入Mybatis的jar包和数据库的驱动包 1.创建数据表和实体类 2.创建一个表和实体类映射的xml配置文件,具体配置 ...

  2. MyBatis-学习笔记02【02.Mybatis入门案例】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  3. SSM框架入门学习记录

    SSM框架入门学习记录 //项目结构 在这里插入图片描述 在这里插入图片描述 包名多种多样,命名习惯问题. 流程:Controller(接受请求)-->Service(biz)(bl)(写业务函 ...

  4. 【Mybatis从入门到实战教程】第一章 Mybatis 入门

    一.Mybatis 入门 1.1 什么是MyBatis MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了goo ...

  5. mybatis入门学习之环境的搭建——helloworld

    Mybatis框架环境的搭建 首先,我是一名走java后端的大二菜鸟,我写博客一方面是用来记录我学习中遇到的问题,另一方面是希望和更多的人分享经验.如果我写的内容有不严谨的地方,还请大佬们纠正一下. ...

  6. 【MyBatis系统拓荒笔记 - 1】MyBatis入门之混沌初开

    MyBatis系统拓荒系列文章: [MyBatis系统拓荒笔记 - 1]MyBatis入门之混沌初开 视频学习教程:Mybatis教程IDEA版-4天-2018黑马SSM-01 目录 MyBatis简 ...

  7. Mybatis入门从新手村到打低级野怪

    课程目标 搭建MyBatis开发环境 完成基于注解,单表增删改查操作 完成基于注解,多表增删改查操作 完成基于通用Mapper,单表增删改查操作 完成分页操作 完成基于XML,单表增删改查操作 完成基 ...

  8. Mybatis入门之动态sql

    Mybatis入门之动态sql 通过mybatis提供的各种标签方法实现动态拼接sql. 1.if.where.sql.include标签(条件.sql片段) <sql id="sel ...

  9. MyBatis1:MyBatis入门

    MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...

  10. MyBatis(1):MyBatis入门

    MyBatis是什么 MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的: MyBatis is a first class persistence fra ...

最新文章

  1. linux设置网卡队列,CentOS 修改网卡队列长度
  2. python教学网站-python教学网站
  3. Py之docx:Python库之docx简介、安装、使用方法详细攻略
  4. bootstrap_bootstrap中日历范围选择插件daterangepicker的使用
  5. 法线贴图Nomal mapping 原理
  6. mybatis中<mappers> ,mapperLocations,和MapperScannerConfigurer 用法
  7. rhel Linux 网络配置
  8. IE7下position:relative的问题
  9. Python 3.x中reduce()函数完整用法
  10. linux挂载磁盘没有权限,linux肿么知道哪个盘没有被挂载
  11. 安装 Unity Hub 发现 进不了 Unity3D 了
  12. 6自由度机械臂建模与仿真
  13. vim 剪贴板历史插件
  14. MicroExpSTCNN and MicroExpFuseNet-基于三维时空卷积神经网络的自发面部微表情识别
  15. QQ登录界面实现(JAVA)
  16. Window图片和传真查看器不能用
  17. OS学习笔记-11(清华大学慕课)进程与线程
  18. 各大IT公司校园招聘程序猿笔试、面试题集锦
  19. 重复一下:关于Flash停止支持后Chrome如何启用过期插件
  20. Oracle CTAS

热门文章

  1. 显示表结构sql语句
  2. 【方法实践】军工企业智能物流系统研究
  3. Java网编之:Socket套接字
  4. 动态数码管显示(单片机)
  5. Web安全之SQL注入总结
  6. _findnext()报错写入位置 0x000000000BE2A940 时发生访问冲突。
  7. Vera平台,为NFT赋予DeFi衍生价值
  8. 图像处理之简单综合实例(大米计数)
  9. IDEA的debug调试功能
  10. linux主机账户权限,【干货】linux账号和权限管理