学习目标

  • 了解Mybatis的基本知识
  • 熟悉Mybatis的工作原理
  • 掌握Mybatis入门程序的编写

文章目录

1.初始Mybatis

2.Mybatis入门程序

3.Mybatis操作总结


1.初始Mybatis

  • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2.Mybatis入门程序

1.在MySQL数据库中,创建一个名为mybatis的数据库,在此数据库中创建user表,同时插入相关数据.

2.在Eclipse中,创建Java Project工程,将Mybatis的核心JAR包,lib目录中的依赖JAR包,以及MySQl数据库的驱动JAR包一同添加到项目的lib目录下,并发布到类路径中.添加后的目录如下图

3.MySQL默认使用log4j输出日志信息.如果要查看控制台的输出SQL语句,需要在src目录下创建log4j.properties文件

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.mybatis.mapper=DEBUG
# 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

4.在src目录下,创建一个com.mybatis.po包,在该包下创建持久化类Customer.实际上,Customer就是一个POJO(普通Java对象),Mybatis就是采用POJO作为持久化类来完成对数据库的操作的.

package com.mybatis.po;public class Customer {private Integer id; // 主键idprivate String username; // 客户名称private String jobs; // 职业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 getJobs() {return jobs;}public void setJobs(String jobs) {this.jobs = jobs;}public Customer(Integer id, String username, String jobs) {super();this.id = id;this.username = username;this.jobs = jobs;}public Customer() {}@Overridepublic String toString() {return "Customer [id=" + id + ", username=" + username + ", jobs=" + jobs + "]";}}

5.在src目录下,创建一个com.mybatis.mapper包,并在包中创建映射文件Customermapper.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.mybatis.mapper.CustomerMapper"><!-- 根据客户编号获取客户信息 --><select id="findCustomerById" parameterType="Integer"resultType="com.mybatis.po.Customer">select * from user where id = #{id}</select><!-- 根据客户名模糊查询客户信息列表 --><select id="findCustomerByName" parameterType="String"resultType="com.mybatis.po.Customer">select * from user where username like '%${value}%'</select><!-- 添加用户信息 --><insert id="addCustomer"parameterType="com.mybatis.po.Customer">insert into user(id,username,jobs)values(#{id},#{username},#{jobs})</insert><!-- 更新用户信息 --><update id="updateCustomer"parameterType="com.mybatis.po.Customer">update user setusername=#{username},jobs=#{jobs} whereid=#{id}</update><!-- 删除客户信息 --><delete id="deletetCustomer" parameterType="Integer">delete from userwhere id=#{id}</delete></mapper>    

6. 在src目录下,创建Mybatis的核心配置文件mybatis-config.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">
<configuration><environments default="mysql"><environment id="mysql"><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><mappers><mapper resource="com/mybatis/mapper/CustomerMapper.xml" /></mappers>
</configuration>

7.在src目录下,创建一个com.mybatis.test包,在该包下创建测试类MybatisTest,并在类中编写各种测试方法.

package com.mybatis.test;import java.io.InputStream;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.Test;import com.mybatis.po.Customer;/** 入门程序测试类*/public class MybatisTest {@Testpublic void findCustomerByNameTest() throws Exception {/** 根据客气编号查询客户信息*/// 1.读取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通过配置文件构建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.SqlSession执行映射文件中定义的SQL,并返回映射结果Customer customer = sqlSession.selectOne("com.mybatis.mapper.CustomerMapper" + ".findCustomerById", 2);// 打印输出结果System.out.println(customer.toString());// 5.关闭SqlSessionsqlSession.close();}@Testpublic void findCustomerByNameTest2() throws Exception {/* 根据用户名名称来模糊查询用户信息列表 */// 1.读取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通过配置文件构建 SqlSessionFactorySqlSessionFactory SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = SqlSessionFactory.openSession();// SqlSession执行映射文件中定义的SQl,并返回映射结果List<Customer> customers = sqlSession.selectList("com.mybatis.mapper.CustomerMapper" + ".findCustomerByName","a");for (Customer customer : customers) {// 打印输出结果System.out.println(customer);}// 4.4提交事务sqlSession.commit();// 5.关闭sqlSessionsqlSession.close();}/** 添加客户*/@Testpublic void addCustomerTest() throws Exception {// 1.读取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通过配置文件构建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.SqlSession执行添加操作// 4.1创建Customer对象,并向对象中添加数据Customer customer = new Customer();customer.setId(5);// 每次添加时需要更改id的值customer.setUsername("Rose");customer.setJobs("公务员");// 4.2执行SqlSession的插入方法,返回的是SQL语句影响的行数int rows = sqlSession.insert("com.mybatis.mapper.CustomerMapper" + ".addCustomer", customer);// 4.3通过返回结果判断插入操作是否执行成功if (rows > 0) {System.out.println("您成功插入了" + rows + "条数据!");} else {System.out.println("执行插入操作失败!");}// 4.4提交事务sqlSession.commit();// 5.关闭sqlSessionsqlSession.close();}/** 更新客户*/@Testpublic void updateCustomerTest() throws Exception {// 1.读取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通过配置文件构建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.SqlSession执行添加操作// 4.1 创建Customer对象,对对象中的数据模拟更新Customer customer = new Customer();customer.setId(2);customer.setUsername("mack");customer.setJobs("教师");int rows = sqlSession.update("com.mybatis.mapper.CustomerMapper" + ".updateCustomer", customer);// 4.3通过返回结果判断插入操作是否执行成功if (rows > 0) {System.out.println("您成功修改了" + rows + "条数据!");} else {System.out.println("修改操作失败!");}// 4.4提交事务sqlSession.commit();// 5.关闭sqlSessionsqlSession.close();}/* 删除客户 */@Testpublic void deleteCustomerTest() throws Exception {// 1.读取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通过配置文件构建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通过SqlSessionFactory创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.sqlSession执行删除操作// 4.1执行sqlSession的删除方法,返回的是SQL语句影响的行数int rows = sqlSession.delete("com.mybatis.mapper.CustomerMapper" + ".deletetCustomer", 3);if (rows > 0) {System.out.println("您成功删除了" + rows + "条数据!");} else {System.out.println("删除操作失败!");}// 4.4提交事务sqlSession.commit();// 5.关闭sqlSessionsqlSession.close();}}

8.选中每一个方法名,右击使用JUnit4执行.可在控制台查看输出结果.

3.Mybatis操作总结

  1. 读取配置文件。
  2. 根据配置文件构建SqlSessionFactory。
  3. 通过SqlSessionFactory创建SqlSession。
  4. 使用SqlSession对象操作数据库(包括查询,添加,修改,删除以及提交事务等)。

Mybatis入门程序增删改查操作相关推荐

  1. MyBatis批量的增删改查操作

    本文转载至http://blog.csdn.net/mahoking 前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/m ...

  2. 使用Mybatis框架完成增删改查操作

    一,MyBatis简介 MyBatis是一一个开源.轻量级的数据持久化框架,是JDBC和Hibernate的替代方案. MyBatis 前身为IBatis, 2002 年由Clinton Begin发 ...

  3. MyBatis研习录(06)——基于注解的增删改查操作

    C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View ...

  4. Mybatis实现简单的数据库增删改查操作

    简介: MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Ma ...

  5. MyBatis的增删改查操作

    MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...

  6. 利用Mybatis对数据库进行增删改查操作

    文章目录 mybatis模糊查找 先来了解一下 #{}和${}的使用 parameterType和resultType的使用 selectOne和selectList的使用 mysql自增主键返回 方 ...

  7. MyBatis的Mapper 代理的增删改查操作(三)

    沉迷于黑与白世界中的人,无论怎么挣扎,都逃不过被同化的命运.前世看见了什么,那么今世便是什么. 上一章简单介绍了MyBatis的命名空间方式的增删改查操作(二),如果没有看过,请观看上一章. 一. M ...

  8. Java程序-单链表增删改查(实现对水浒人物的增删改查操作)

    单链表增删改查(实现对水浒人物的增删改查操作) 前言 一.链表(Linked List)介绍 二.应用实例 1.问题描述 2.代码实现 总结 前言 参考:B站,尚硅谷数据结构与算法 课程 一.链表(L ...

  9. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

最新文章

  1. 菜鸟也来学习ORACLE(1)_linux下安装oracle 11g
  2. python 漂亮打印 pprint 简写
  3. 仅仅是又多了一本设计书吗 《软件框架设计的艺术》序
  4. 虚拟人春节搞事情!先在央视《对话》,又跟李玉刚组团除夕出道
  5. 科大星云诗社动态20210331
  6. ITK:使用Deformation Field扭曲图像
  7. ajax 与route的区别,浅析vue-router jquery和params传参(接收参数)$router $route的区别
  8. sae项目服务器,基于SAE的游戏服务器: Server on SAE for RGSS Games 部署在SAE上的简易游戏服务器,为用 RMXP/VX/VA 开发的游戏提供网络服务...
  9. .bin 文件用excel文件打开_用python读Excel文件
  10. qoq是什么意思的缩写_有意思,“TTFN”居然是“再见”的缩写词,具体是指什么呢?...
  11. 自动驾驶的Pipline -- 如何打造自动驾驶的数据闭环?(中)
  12. 龙举直播电商api开发
  13. Redis的安装启动,菜鸟使用(windows)
  14. 最近十年诞生的6种新编程语言
  15. 小程序 Rsa加密
  16. nodejs与JAVA应对高并发的对比
  17. AES加解密(ECB模式)
  18. 三人行网络教育计算机二,三人行老师电脑版
  19. 资源下载--使用Proxy SwitchyOmega+postman下载资源
  20. vue-router的两种模式及区别

热门文章

  1. [蓝桥杯][算法提高VIP]摆花-多重背包计数问题
  2. apache poi斜边框线_如何使用Apache POI在Excel单元格内画斜线(Java)
  3. 蓝桥杯 左baby右兄弟
  4. 2019-03-09-算法-进化(旋转数组)
  5. D:Ehab the Xorcist
  6. Trie:hdu 4825、1251、1247、Poj 3764
  7. P4137 Rmq Problem / mex 主席树求mex
  8. Educational Codeforces Round 77 (Rated for Div. 2) D. A Game with Traps 贪心 +二分
  9. P1963 [NOI2009]变换序列
  10. 可持久化4--可持久化并查集