暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来。现在很有需求要会ssm,所以就学了一下。感觉框架这东西配置就烦的要死。错一丁点就全错。。下面开始说配置详情。

介绍一下这些东西,将mybatis的jar包依赖放入lib目录。User类是一个bean对象,test类是一个测试类(就是要用到这个服务的)。conf.xml是全局配置,配置了数据库相关信息和数据库操作文件的映射(userMapper等数据库操作)。userMapper.xml封装了数据库操作给test调用。
首先,数据库创建数据库

1 create database mybatis;
2 use mybatis;
3 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
4 INSERT INTO users(NAME, age) VALUES('hehe',15 );
//随便输入几条数据

在src目录下建立对应的user对象:

package com.test.mybits;public class User {private int id;private String name;private int age;public User(){}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 int getage(){return age;}public void setage(int age){this.age=age;}public String toString(){return "user [id=" id ",name=" name ",age=" age "]";}}

这样bean对象就建好了。
下一步建立conf.xml,这个是一个全局配置的xml文件,里面包含连接数据库的相关信息,有个要注意的是要把 < DOCTYPE confi----/>这个写在头。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="db.properties"/><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><mapper resource="userMapper.xml"/><mapper class="com.test.mapper.userMapper2"/></mappers></configuration>

这个和普通JDBC连接差不多。
下一步。创建userMapper.xml对象,进行相关配置

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"><mapper namespace="userMapper"><!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 --><!-- 根据id查询得到一个user对象 --><select resultType="com.test.mybits.User" parameterType="Integer" id="getuser">select * from users where id=#{id} </select><!-- 增删改查 --><!-- 增 indesert --><insert parameterType="com.test.mybits.User" id="adduser">insert into users(name,age) values(#{name},#{age}) </insert><delete parameterType="Integer" id="deleteuser">delete from users where id=#{id} </delete><update parameterType="com.test.mybits.User" id="updateuser">update users set name=#{name},age=#{age} where id=#{id} </update><select resultType="com.test.mybits.User" id="datesearch">select * from users </select></mapper>

最后编写test类

package com.test.test1;import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;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 com.test.mybits.User;public class Test {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString resource="conf.xml";//使用类加载mybatis驱动文件,(他也加载关联的附带文件)// InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);//构建sqlsession工厂//    SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);// 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession的工厂SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);//创建能执行映射文件中sql的sqlSession//创建sqlsession文件SqlSession session=sessionFactory.openSession();String statement="getuser";User user=session.selectOne(statement,3);System.out.println(user);User user2=session.selectOne(statement,1);System.out.println(user2);//System.out.print(11);}
}

运行输出为:

user [id=3,name=弟弟,age=22]
user [id=1,name=张赛,age=21]

根据个人的数据库查询出不同结果。在main函数中,statement对应xml中配置的id。这个只是实现了简单的查询功能,后续的增删该查都是类似模块,就是要注意映射的一一对应和路径的问题。

Mybatis学习笔记(1)——第一个程序相关推荐

  1. CC2640R2F学习笔记(五.第一个程序:GPIO点灯)

    文章目录 前言 一.生成配置文件 二.导入工程"empty" 三.代码改动 四.实现点灯 前言 点灯似乎是所有MCU开发编写的第一个程序,使用CUBEMX来配置STM32初始化程序 ...

  2. c#学习笔记之第一个程序“Hello world”

    看到"Hello world"的时候想起了一个笑话:一个退休多年的程序员决定练习书法,他拿起毛笔挥毫泼墨写下一行大字--"Hello world".虽然是一个笑 ...

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

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

  4. mybatis学习笔记(1)-对原生jdbc程序中的问题总结

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...

  5. MyBatis学习笔记2 ——第一个MyBatis程序

    MyBatis学习笔记2 --第一个MyBatis程序 参考教程B站狂神https://www.bilibili.com/video/BV1NE411Q7Nx 环境搭建 建立一个mybatis数据库用 ...

  6. Mybatis学习笔记——第一天

    Mybatis学习打卡 Mybatis学习笔记---第一天 Mybatis笔记 第一天 一.引言 1. 现有Jdbc的缺陷 2. Mybatis框架 3. 搭建环境 1) 引入jar包 2) 引入配置 ...

  7. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  8. 超详细Mybatis学习笔记(可供下载)

    文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...

  9. Mybatis学习笔记【part03】增删改查

    Mybatis 学习笔记 Part03 1.传入参数与返回参数设置(查) <!-- 根据 id 查询 --> <select id="findById" resu ...

  10. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

最新文章

  1. Linux redhat 9.0 中挂载U盘的方法!
  2. 全球及中国电缆保护套管行业十四五规划及投资前瞻专题分析报告2021年版
  3. python-生成器函数进阶和各种推导式day15
  4. There are NAN in the matrix, however, you did not set missing=NAN
  5. SAP Spartacus 和Jerry Sandbox应用Store引用的source字段类型差异
  6. final个人阅读作业
  7. JavaScript触发事件大全--能力工场
  8. Algorithm Gossip (21) 最大访客数
  9. 2009年4月21日 博客更新公告,敬请关注!
  10. python中的import
  11. html怎么设置动画保持,html – 如何使用CSS3为td列可见性设置动画
  12. 【书法字识别】基于matlab余弦形状相似度书法字识别【含Matlab源码 1356期】
  13. 【OpenGL游戏开发之一】MAC OS X And Win7 vs2010 搭建OpenGL
  14. iMX6UL配置MCP2515模块(SPI转CAN)——基于迅为iTOP-iMX6UL开发板
  15. 统计学基础专栏04---回归和预测
  16. 业余时间零基础自学编程,9 个月后我成为一名软件工程师
  17. Thread类的interrupt(),interrupted(),isInterrupted()
  18. 并发编程(一)多线程基础和原理
  19. fcpx插件:Stupid raisins show pop for Mac(20个标题展示模板
  20. 西门子1200与FANUC机器人Profinet通讯

热门文章

  1. buu 传统知识+古典密码
  2. CreateProcess返回错误998
  3. Request模块基本常识
  4. 2020-11-13(四大组件简单回忆内容)
  5. 【WEB安全】轻松检测钓鱼网站的技巧
  6. python实现DES算法
  7. pwn学习总结(五) —— 堆溢出经典题型整理
  8. [保护模式]非PAE模式
  9. 1.19 String、StringBuffer和StringBuilder类的区别
  10. 【PAT乙级】1054 求平均值 (20 分)