01_mybatis入门

     2022-03-26     697

关键词:

首先呢,我们用mybatis肯定涉及到mybatis的引用,其次,mybatis是用来连接数据库的,所以又涉及到对对应数据库的引用,所以最基本的我们要导入两个jar包,这边数据库以mysql为例。引入如下两个依赖(maven用法),对应两个jar包,分别提供了mabatis服务,连接mysql数据库服务。
 
<!-- Mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.5</version>
</dependency>
 
<!-- MySQL依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
<scope>runtime</scope>
</dependency>
 
mybatis-3.2.5.jar
mysql-connector-java-5.1.38.jar
然后,我们就涉及到mybatis的配置文件,现在的流行框架大多数都会将配置工作交给xml在使用时解析,mybatis也不例外(后期整合spring后,就不会有单独的mybatis配置文件,不代表没有,只是整个的交给了spring的配置文件去配置)。废话不多数,先上配置文件。顺便提一下,配置文件随你放项目哪,只要你用的时候找到对应路径,一般学习时放src下即可(maven项目的话,放java下),这样读取时只需要配置文件名就可以找到。当然,数据库的配置信息对应自己的咯。
 
<?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">
<!-- 指定事务管理类型,JDBC直接简单使用JDBC的提交和回滚设置 -->
<transactionManager type="JDBC" />
<!-- 数据源配置,POOLED是JDBC连接对象的数据源连接池的实现 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
 
<!-- 配置持久化映射文件的路径,通俗讲就是完成mapper接口或mapper xml文件在mybatis的注册 -->
<mappers>
<mapper resource="com/jlb/mapper/PersonMapper.xml" />
</mappers>
</configuration>
技术分享
 
然后就是我们的持久化类映射文件(mapper映射文件)了,三种方式,一种基于xml,一种基于注解写接口,还有一种就是xml结合接口了,但是接口就是纯粹的接口,和普通的接口一样,但不需要实现类,因为类名和mapper映射文件namespace对应的话,就已经自动绑定了,方法名对应mapper映射文件内的各种id,也会自动去匹配,或者说,这种方式才算是mybatis真正的魅力所在吧。这边因为是入门嘛,只基于第一种方式,以我这边所用的例子为例,写了一个PersonMapper.xml,也就是上面配置文件注册的那个映射文件。
该映射文件完成了简单crud的操作(为了笔记的简洁性以及代码的可读性,关于代码的解说,都有对应的注释,直接看代码就是),整体来说,入门算是够了。具体一些名词的解释不放在这里做。
<?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.jlb.mapper.PersonMapper">
<!-- 查询一个人 -->
<select id="selectOnePerson" resultType="com.jlb.domain.Person">
select * from person
where
id = #{id}
</select>
 
<!-- 查询所有人 -->
<select id="selectAllPerson" resultType="com.jlb.domain.Person">
select * from person
</select>
 
<!-- 删除一个人 -->
<delete id="deleteOnePerson">
delete from person
where
id = #{id}
</delete>
 
<!-- 新增一个人 -->
<insert id="insertOnePerson">
insert into person(name,age)
values(#{name},#{age})
</insert>
 
<!-- 修改一个人 -->
<update id="updateOnePerson">
update person
set name = #{name}
where id = #{id}
</update>
</mapper>
 
我们看看具体操作,先把配置文件放到流里,然后通过SqlSessionFactory创建相关东西并通过它创建我们主要执行体SqlSession对象,mybatis对对应操作都有对应的处理,查一个,查多个,新增,修改,删除都有。不过做QL时不需要commit,做DML时必须执行commit。(这边的代码用了Junit单元测试的方式,有部分看不懂,去查阅专门的Junit笔记)
public class TestPerson {
 
private SqlSession session;
private static SqlSessionFactory sqlSessionFactory;
 
@BeforeClass
public static void testBeforeClass() throws Exception{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
 
@Before
public void testBefore() {
try {
session = sqlSessionFactory.openSession();
} catch (Exception e) {
e.printStackTrace();
}
}
 
@After
public void testAfter() {
session.close();
}
 
/*
* 查询一个人
*/
@Test
public void testselectOnePerson() {
try {
Person person = session.selectOne("com.jlb.mapper.PersonMapper.selectOnePerson", 1);
System.out.println(person);
} catch (Exception e) {
e.printStackTrace();
}
}
 
/*
* 查询所有人
*/
@Test
public void testselectAllPerson() {
try {
List<Person> list = session.selectList("com.jlb.mapper.PersonMapper.selectAllPerson");
for (Object object : list) {
System.out.println(object);
}
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
 
/*
* 新增一个人
*/
@Test
public void testinsertOnePerson() {
try {
Person person = new Person();
person.setName("xiaoming");
person.setAge(22);
int i = session.insert("com.jlb.mapper.PersonMapper.insertOnePerson", person);
session.commit();
System.out.println(i);
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
 
/*
* 修改一个人
*/
@Test
public void testupdateOnePerson() {
try {
Person person = new Person();
person.setName("老莫");
person.setId(4);
int i = session.insert("com.jlb.mapper.PersonMapper.updateOnePerson", person);
session.commit();
System.out.println(i);
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
 
/*
* 修改一个人
*/
@Test
public void testdeleteOnePerson() {
try {
int i = session.delete("com.jlb.mapper.PersonMapper.deleteOnePerson", 3);
System.out.println(i);
session.commit();
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
 
}
 
最后上Person类
public class Person implements Serializable {
 
private Integer id;
private String name;
private Integer age;
 
public Integer getId() {
return id;
}
 
public void setId(Integer id) {
this.id = id;
}
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public Integer getAge() {
return age;
}
 
public void setAge(Integer age) {
this.age = age;
}
 
@Override
public String toString() {
return id + " " + name + " " + age;
}
 
}
 
 
总结一下整体的操作过程,首先明确我们是在用mybatis开发,是连接数据库的框架,那么mybatis的jar包和mysql的jar包一定要导入。其次mybatis的配置文件基于xml,该配置文件的创建必不可少。在来我们要处理哪张表,其对应实体类和对应的映射文件有没有创建。最后在操作时有没有创建SqlSession对象,做对应处理,DML操作不要忘了commit。

mybatis_2入门程序

  1.需要导入的jar包    1)mybatis核心包    2)mybatis依赖包    3)数据库驱动包 如下图所示:    2.配置文件:    SqlMapConfig.xml:    1<?xmlversion="1.0"encoding="UTF-8"?>2<!DOCTYPEconfiguration3PUBLIC... 查看详情

mybatis01-mybatis快速入门

一、MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框... 查看详情

springboot入门_数据库访问_mybatis

本文记录在springboot中使用mybatis访问数据库。创建项目并引入对应的依赖1<dependency>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-starter-web</artifactId>4</dependency>5 查看详情

java_mybatis_入门写法

一.整体步骤1.读取全局配置文件“SqlMapConfig.xml”2.用SqlSessionFactoryBuilder来创建一个SqlSessionFactory3.用创建好的SqlSessionFactory创建一个SqlSession4.用创建好的SqlSession来读取对应的映射配置文件“Mapper1.xml”,并传入参数5.返回结果-------... 查看详情

带你快速入门一直那么火的_mybatis技术

MybatisMybatis-入门1.简述为什么学Mybatis?帮程序员更加简单进行数据库增删改查的操作。持久层框架,用来编写DAO;对JDBC进行了封装,即底层依赖JDBC; 2. 入门案例需求说明:需要使用Mybatis,让Java可以操作MySQL数据库。查询... 查看详情

01_mybatis基础

参考:Mybatis3.4.6中文开发手册 开源项目下载网址:github.com/mybatis/mybatis-3/release官方文档网址:www.mybatis.org/mybatis-3 Mybatis原始apache的开源项目iBatis,后来迁移到googlecode,改名Mybatis。iBatis来源:internet+abates,一个基于java的... 查看详情

mybatis复习

目录01.Mybatis课程介绍及环境搭建01.mybatis课程介绍02.三层架构和ssm框架的对应关系03.jdbc操作数据库的问题分析04.mybatis概述05.mybatis环境搭建-前期准备06.mybatis的环境搭建07.环境搭建的注意事项第一个mybatis程序目录结构.png源码:hel... 查看详情

mybatis01快速入门(代码片段)

MyBatis01快速入门文章目录MyBatis01快速入门一、学习目标二、为什么需要框架技术三、框架技术介绍四、主流框架介绍五、持久化与ORM六、MyBatis简介七、搭建MyBatis开发环境八、与JDBC直观对比九、MyBatis框架优缺点十、MyBatis基本要... 查看详情

mybatis_笔记_01_逆向工程

通过Mybatis逆向工程,可以从数据库中的表自动生成pojo、mapper映射文件和mapper接口此处暂存怎么使用逆向工程,原理以后再探讨 工程结构 要修改的地方:generatorConfig.xml配置文件中数据库信息(用户名、密码等)、指定数... 查看详情

mybatis入门案例超详细(代码片段)

...rMapper.xml映射文件添加查询语句3.测试方法4.运行结果二、MyBatis核心对象及工作流程1.MyBatis核心对象2.MyBatis工作流程3.使用SqlSession操作数据库三、添加其他常见方法1.Mybatis新增用户2.Mybatis用户更改3.Mybatis删除用户4.Mybatis根据用户id... 查看详情

java--mybatisplus入门;与mybatis区别;简单使用(代码片段)

阅读前可先参考Java--MyBatis入门_MinggeQingchun的博客-CSDN博客_javamybatis一、MyBatis-PlusMyBatis-Plus(简称MP)是一个 Mybatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生MyBatis-Plus在MyBatis之上... 查看详情

mybatis入门教程

1.下载以下mybatis所需的jar包             还需要一个连接数据库的jar包           2.创建一个数据库,测试用CREATEDATABASE/*!32312IFNOTEXISTS*/`smbms`/*!40100DEFAULTCHARACTERSETutf8COLLATEutf8_unicode_ci*/;USE`smbm... 查看详情

mybatis_记录(代码片段)

文章目录MyBatis入门从XML中构建SqlSessionFactory从SqlSessionFactory中获取SqlSessionMybatis补充Mybatis接口注解Mybatis增删改查(CURD)XML映射配置文件MyBatis加载属性的顺序mybatissettings设置mybatis类型别名(typeAliases)Myb 查看详情

pytest_01_安装和入门(代码片段)

目录pytest安装与入门1.pipinstall-Upytest2.创建一个test01.py的文件3.在该目录下执行pytest(venv)4.执行多个,新建一个py文件test02.py5.在一个类中组合多个测试6.指定测试用例7.Assert8.Fixture执行顺序数据清理pytest安装与入门1.pipinstall-Upytest2.... 查看详情

mybatis_01

原生态JavaJDBC程序问题总结:1.数据库连接,使用时就创建,不使用时就关闭。数据库连接频繁的开启和关闭本身就造成了资源的浪费,影响系统的性能。 解决方案:可以使用数据库连接池来管理数据库的连接。2.将sql语句硬编... 查看详情

01_入门

【何为webService?】 WebService即Web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术,即跨平台远程调用技术。1.采用标准SOAP(SimpleObjectAccessProtocol)协议传输,SOAP属于w3c标准,SOAP协议是基于HTTP的应用层的协议,SO... 查看详情

mybatis之generator入门及使用方法

mybatis之generator入门及使用方法_花洒曾记否的博客-CSDN博客一、generator简介MyBatisGenerator(MBG)是MyBatisMyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或... 查看详情

mybatis之generator入门及使用方法

mybatis之generator入门及使用方法_花洒曾记否的博客-CSDN博客一、generator简介MyBatisGenerator(MBG)是MyBatisMyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或... 查看详情