1、mybatis的优点

mybatis:半自动化持久化框架

  • sql(专注数据)和java编码(专注业务)分离
  • 可使用简单的xml或者注解用于配置和原始映射
  • 将接口和java中的pojo映射成数据库中的记录
  • 可以理解为:业务代码+底层数据库的媒介

2、创建mybatis的步骤(一)---配置

  1. 创建数据库、建表
  2. 搭建开发环境
  3. 导入jar包  

    log4j-1.2.17.jar

    mybatis-3.4.1.jar

    mysql-connector-java-5.1.7-bin.jar

  4. 添加配置文件

    mybatis-config.xml

  5. log4j.properties配置文件(建议加上)
    # Global logging configuration
    log4j.rootLogger=DEBUG, stdout
    # Console output...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

    最终结构可参照下方图片:

3、创建mybatis的步骤(二)---代码

①创建pojo对象User

public class User {
private int id;
private String lastName;
private int sex;
}

②在src目录创建mybatis-config.xml核心配置文件

<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- dataSource 数据源
POOLED 表示使用数据库连接池
-->
<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="root" /> (数据库密码)
</dataSource>
</environment>
</environments>
<!-- 引入sql语句对应的配置文件 -->
<mappers>
<mapper resource="com/atguigu/pojo/UserMapper.xml" /> (根据自己UserMapper.xml的位置更改路径,也可以写成通用的包名)
</mappers>
</configuration>

③创建UserMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <!-- 注释
     namespace 属性一般情况下。
      一种定义规则:
       ①使用对流的javaBean的全类名
      ②使用Mapper接口的全类名
       -->
<mapper namespace="com.atguigu.pojo.User"> (此处写全类名)
<!-- 此处写相应的SQL语句 增删改查 -->
</mapper>

④配置mybatis配置文件的提示:

Config 文件的 key: http://mybatis.org/dtd/mybatis-3-config.dtd

mapper文件的key: http://mybatis.org/dtd/mybatis-3-mapper.dtd

  • 搜索xml  --双击子文件 XML Catalog
  • add--进行添加
  • key--输入对应的Configuration和mapper的约束条件(dtd文件)
  • URI---一定要选择URI
  • File System  选择本地对应的文件添加

可以按照图中的结构进行建包,进行编码测试

⑤创建UserMapper接口

public interface UserMapper {
/*
* 1、根据编号查询用户信息
* 2、查询所有用户信息
* 3、添加用户信息
* 4、删除用户信息
* 5、更新用户信息
*/
public User findUserById(int id); public List<User> allFindUser(); public int saveUser(User user); public int updateUser(User user); public int deleteUser(int id);
}

⑥创建UserMapperTest类

import java.io.IOException;
import java.sql.Connection;
import java.util.List;
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 org.junit.Before;
import org.junit.Test;
import com.atguigu.mapper.UserMapper;
import com.atguigu.pojo.User;
(此处是通用代码)
@SuppressWarnings("unused")
public class UserMapperTest {
private SqlSessionFactory factory;
@Before
public void before(){
try {
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
} catch (IOException e) {
e.printStackTrace();
}
} @Test
//根据id查找
public void testFindUserById() {
/*
* 1.factory创建session
* 2.session通过代理模式 创建Mapper的实体类
* 3、mapper实体类执行方法 并获取返回值
* 4、输出内容
* 5、关流
*/
SqlSession session = factory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.findUserById(1);
System.out.println(user);
session.close();
} @Test
//查找所有
public void testAllFindUser() {
/*
* 1.factory创建session
* 2.session通过代理模式 创建Mapper的实体类
* 3、mapper实体类执行方法 并获取返回值
* 4、输出内容
* 5、关流
*/
SqlSession session = factory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
List<User> list = userMapper.allFindUser();
System.out.println(list);
session.close();
} @Test
//添加
public void testAddUser(){
SqlSession session = factory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
int saveUser = userMapper.saveUser(new User(1,"冷清秋",1));
session.commit(); (需要进行提交,||不提交的结果:运行成功,但数据库无值)
System.out.println(saveUser);
session.close();
} @Test
//修改
public void testUpdateUser(){
SqlSession session = factory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
int updateUser = userMapper.updateUser(new User(1,"zhangsan",0));
session.commit();
System.out.println(updateUser);
session.close();
} @Test
//删除
public void deleteUser() {
SqlSession session = factory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
int deleteUser = userMapper.deleteUser(12);
session.commit();
System.out.println(deleteUser);
session.close();
}
}

⑦对应的UserMapper.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mapper.UserMapper">
<!--
namespace:名称空间(自定义名字)
id:唯一标识
resultType:返回值类型(写返回值类型的全类名)
#{id}:从传递过来的参数中取出id值
-->
<!-- public User findUserById(int id); -->
<select id="findUserById" resultType="cn.aynu.pojo.User">
select* from user where id = #{id}
</select> <!-- public List<User> allFindUser(); -->
<select id="allFindUser" resultType="cn.aynu.pojo.User">
select id,name,sex from user
</select> <insert id="saveUser" parameterType="cn.aynu.pojo.User">
insert into user(name,sex) values(#{name},#{sex})
</insert> <update id="updateUser">
update user set name = #{name},sex=#{sex} where id = #{id}
</update> <delete id="deleteUser">
delete from user where id = #{id}
</delete>
</mapper>

敲小黑板:

1、当返回值是void的时候,resultType可以省略不写

2、当数据是基本数据类型的时候,resulttype可以省略不写

但是建议全部都加上,代码更规范,别人看之后通俗易懂,id和resultType一一对应

***不加resultType的错误***

mybatis-01-简单概述基础点的更多相关文章

  1. MyBatis 01 概述

    官网 http://www.mybatis.org/mybatis-3/zh/index.html GitHub https://github.com/mybatis/mybatis-3 简介 MyB ...

  2. Java多线程| 01 | 线程概述

    Java多线程| 01 | 线程概述 线程相关概念 进程与线程 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位.可以把进程简单的理解 ...

  3. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  4. Java虚拟机JVM学习01 流程概述

    Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

  5. [转载]SharePoint 2013搜索学习笔记之搜索构架简单概述

    Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上, ...

  6. SNMP学习笔记之SNMP简单概述

    0x00 SNMP简单概述 0.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理 ...

  7. Mybatis框架简单使用

    Mybatis框架简单使用 环境搭建 新建一个JavaWeb项目,在web\WEB-INF\创建lib文件,并且在其下添加Mybatis的核心包以及依赖包,以及Mysql驱动包,junit4测试包等. ...

  8. MyBatis(1)-简单入门

    简介 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.My ...

  9. MyBatis 使用简单的 XML或注解用于配置和原始映射

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .My ...

  10. SNMP简单概述

    一.SNMP简单概述 1.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议& ...

随机推荐

  1. VS+QT创建一个OpenCV应用

    1.选择:文件->新建->项目->搜索“QT”->Qt GUI Application,输入工程名,下一步…进行新建. 选择依赖的模块:最基础的QtCore.QtGui.QtW ...

  2. 巨杉Talk | 拒绝数据碎片化,原生分布式数据库灵活应对数据管理需求

    2019年7月19-20日,以“运筹帷幄,数揽未来”为主题的DAMS中国数据智能管理峰会在上海青浦区成功举办.在DAMS峰会上,巨杉数据库为大家带来了题为“云架构下的分布式数据库设计与实践”的主题分享 ...

  3. AcWing 1016. 最大上升子序列和

    #include<iostream> using namespace std ; ; int f[N]; int a[N]; int main() { int n; cin>> ...

  4. Windows常用批处理命令 CMD BAT (CMD目录操作等dir)

    Windows常用批处理 CMD BAT CMD获取文件夹下所有文件的名称并打印(输出)到指定目录 dir C:\Users\\Desktop\png\*.*/s >c:\.txt //cmd ...

  5. INEQUALITY BOOKS

    来源:这里 Bất Đẳng Thức Luôn Có Một Sức Cuốn Hút Kinh Khủng, Một Số tài Liệu và Sách Bổ ích Cho Việc Học ...

  6. python pymysql 基本使用

    from pymysql import * # 1.创建连接数据库 conn = connect(host="localhost", port=3306, user="r ...

  7. 如何去官网上下载tomcat的linux版本

    1.首先进入官网,进入如下位置 2.进入bin文件夹中下载: 原文链接:https://blog.csdn.net/zdb292034/article/details/82433072

  8. LitElement(二)模板编写基本语法

    原文:https://lit-element.polymer-project.org/guide/templates 1.定义一个渲染模板 1.1 基本规则 要用LitElement 组件定义一个模板 ...

  9. WebRTC笔记(一)

    来源<WebRTC权威指南> 1 WebRTC特点 对等连接(Peer Connection):浏览器与浏览器(万维网上的任意两个通信终端)之间的连接(P2P) 信令服务器:在浏览器和对等 ...

  10. eclipse sql server 导出excel文件

    Jxl.jar 访问Excel的Jar包 注意:支持以.xls结尾的Excel文件,可能不支持.xlsx结尾的 下载地址: 程序所需要得包: 程序代码: package partice; import ...