[学习记录,]Mybatis入门

环境:

Eclipse 2019
Tomcat 9.0
jdk1.8

开搞

首先创建工程

结构如下
项目结构

导入Jar包

可在mybatis官网下载 http://www.mybatis.cn/82.html
在这里插入图片描述

配置文件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>
	<typeAliases>
		<package name="com.org.entity" /> <!-- 实体类路径,方便下面配置映射文件 -->
	</typeAliases>
	<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?characterEncoding=UTF-8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
</configuration>

事务管理有两种:JDBC和MANAGED
JDBC:
在这里插入图片描述
MANAGED
在这里插入图片描述
数据源类型:UNPOOLED、POOLED、JNDI

创建实体类文件User.java

package com.org.entity;

public class User {
	private Integer id;
	private String name;
	private String password;
	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 String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
	}
}

映射文件 User.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="user">
	<select id="findUser" resultType="User">  <!-- 查找所有用户 -->
		select * from user
	</select>
	<insert id="insertUser" parameterType="User">  <!-- 新增 -->
		insert into user
		(name,password) values (#{name},#{password})
	</insert>
	<update id="updateUser" parameterType="User"> 
		update user set name = #{name} ,password = #{password} where id = #{id}
	</update>
	
	<delete id="deleteUser" parameterType="_int">
			delete  from user where id = #{id}
	</delete>
	
</mapper>

这样一个简单的Mybatis就搭建好了,现在开始测试

Mybatis工具类

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBasisUtils {
	private  static SqlSessionFactory sessionFactory;
	static {
		String resources = "mybatis-config.xml";
		InputStream inputStream;
		SqlSessionFactory build = null ;
		try {
			inputStream = Resources.getResourceAsStream(resources);
			sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static SqlSession openSession() {
		return sessionFactory.openSession();
	}
	
}

dao接口类

import java.util.List;
import com.org.entity.User;

public interface TestDao {
	List<User> findUser() ;
	void updateUser(User user) ;
	void insertUser(User user);
	void deleteUserById(Integer id);
}

DAO实现类 ,增删改查

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.org.dao.TestDao;
import com.org.entity.User;
import com.org.utils.MyBasisUtils;

public class TestDaoImpl implements TestDao {
//	@Test

	@Override
	public void insertUser(User user) {
		SqlSession session = MyBasisUtils.openSession();
		session.insert("user.insertUser",user);
		session.commit();
		session.close();

	}

	@Override
	public void updateUser(User user) {
		SqlSession session = MyBasisUtils.openSession();
		session.delete("user.updateUser",user);
		session.commit();
		session.close();
	}
	@Override
	public List<User> findUser() {
		SqlSession session = MyBasisUtils.openSession();
		List<User> userList = session.selectList("user.findUser");
		session.close();
		return userList;
	}

	@Override
	public void deleteUserById(Integer id) {
		// TODO Auto-generated method stub
		SqlSession session = MyBasisUtils.openSession();
		session.delete("user.deleteUser",id);
		session.commit();
		session.close();
	}
}

后面就是简单的测试了

测试

public class Test01 {
	
	private TestDao testDao = new TestDaoImpl();
	@Test
	public void test01() {
		List<User> findUser = testDao.findUser();
		for (User user : findUser) {
			System.out.println(user);
		}
	}
	
	
}
版权声明:本文为baozi141990原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baozi141990/article/details/102928897

智能推荐

【学习笔记】03-v-html的学习和示例

v-html的认识和使用 示例: 显示结果: 注意:v-html是有复制的...

Java实现在线考试系统(系统介绍)

1.和现在有的考试系统有以下几种优势: a.和现在有的系统比较起来,本系统有科目、章节、老师、学生、班级等信息的管理,还有批阅试卷查看已批阅试卷等。传统的考试系统划分并不细,业务功能简单。 b.和学校的考试系统还有外面的考试系统比较起来,本系统是B/S结构,学校的考试系统一般为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑具有浏览器,在同一局域...

计算机视觉--多视几何初步尝试

基础矩阵的原理 K和K’分别是两个相机的参数矩阵。p和p’是X在平面π的坐标表示。所以可以得出 具体计算过程 代码: #!/usr/bin/env python coding: utf-8 from PIL import Image from numpy import * from pylab import * import numpy as np from imp ...

java初学者怎么学习才可以快速入门

java初学者怎么学习才可以快速入门 一、了解JAVA 我们要知道:Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言。 Java之父:詹姆斯·高斯林 1.1 java的三个体系 Java SE(Java Platform Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境...

字段属性之主键&增删改查&自增长&唯一键约束

字段属性之主键&自增长&唯一键约束 主键 主键:primary key 主要的键 一张表中只有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复,这种称之为主键 一张表只能最多一个主键 增加主键 SQL操作中有多种方式增加主键大体分为三种 1.在创建表的时候直接在字段之后跟primary key关键字(主键本身不允许为空) 优点:非常直接:缺点:只能使用一个字段作为...

猜你喜欢

linux下 基于libmad的socket多用户mp3音频在线播放服务器

在众多大神的帮助下,这个在线播放流媒体服务器终于完成啦。。。。 这个mp3流媒体服务器设计的思路是,服务器程序server用多线程实现和多个客户端的通信(这是必然的),然后发送给客户端当前的音频列表公客户端选择,之后根据k客户端的选择给多个客户端传输相应mp3文件的数据,同时,客户端进行实时地音频解码并播放。 关于libmad开源mp3音频解码库的使用,见上一篇博客吧。。。。 在服务器程序这一端,...

Nginx

Nginx Nginx简介: Nginx是一个高性能的http和反向代理服务器,特点是有内存少,并发能力强,事实上Nginx的并发能力确实在同类型网页服务器中表现较好, Nginx用作web服务器:Nginx可以作为静态页面的web服务器,同时还支持CGI语言,但不支持java,java程序只能通过Tomcat配合完成。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受...

SpringCloud Alibaba - Sentinel入门案例(二)(流控规则 | 直接 / 关联 / 链路 / 快速失败 / Warm Up / 排队等待)

SpringCloud Alibaba - Sentinel入门案例(二)(流控规则 | 直接 / 关联 / 链路 / 快速失败 / Warm Up / 排队等待) 回溯 Sentinel 基本概念 正文 环境准备 流控规则介绍 简单介绍 对 阈值类型 / 单机阈值做 测试 流控模式 直接流控模式 关联流控模式 链路流控模式 资源名称的修改 链路模式正文 坑来了,怎么解决? 禁止收敛URL的入口 ...

SQL Server 无法创建索引 因为对象名称和索引名称重复

需求分析:如下图所示,给T_DD_OP1200_Final表的Id字段添加主键,保存时弹出 “T_DD_OP1200_Final”表 - 无法创建索引“PK_T_DD_OP1200_Final”。 因为发现对象名称 ‘dbo.T_DD_OP1200_Final’ 和索引名称 ‘PK_T_DD_OP1200_Fina...

Android中内存泄漏超级精炼详解

一、前期基础知识储备 (1)什么是内存? JAVA是在JVM所虚拟出的内存环境中运行的,JVM的内存可分为三个区:堆(heap)、栈(stack)和方法区(method)。 栈(stack):是简单的数据结构,但在计算机中使用广泛。栈最显著的特征是:LIFO(Last In, First Out, 后进先出)。后来者居上。(跟线程中队列的顺序恰好相反)栈中只存放基本类型和对象的引用(不是对象)。 ...