mybatis 实验报告1

文章目录

  • 新建数据库
  • 新建项目,并导入jar包
  • 添加配置文件conf.xml
  • 定义实体类
  • 定义操作表user的sql的映射文件 userMapper.xml
  • 注册:将mapper.xml文件注册到conf.xml配置文件中
  • 一共6步,这个只是测试类,这个不算

新建数据库

命名是 随便,因为这里是 数据库连接名
在这里插入图片描述

create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);INSERT INTO users(NAME, age) VALUES('Tom', 12);
INSERT INTO users(NAME, age) VALUES('Jack', 11);

一行一行输入
在这里插入图片描述
在这里我的mybatis这个数据库是建在了test这个连接里
在这里插入图片描述
在这里插入图片描述

新建项目,并导入jar包

新建Javaproject
在这里插入图片描述
在这里插入图片描述新建lib文件夹
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加配置文件conf.xml

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
cofi.xml这个文件里只需要改三行
1. 数据库的名字
2.用户名 和 密码
.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" />//事务管理,类型是jdbc
			<dataSource type="POOLED">//数据源 连接池->提高访问速度
				<property name="driver" value="com.mysql.jdbc.Driver" />//加载数据库驱动
				//jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC  数据库是多少以上
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />//访问数据库的路径,最后(mybatis)是访问数据库名字
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
</configuration>

修改后的结果是:
在这里插入图片描述
格式化代码
在这里插入图片描述

定义实体类

新建package,class
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.zhang.mybatis.sy1;

public class User {
	//三个变量要和数据库建的User表 字段名相同
	private int id;
	private String name;
	private int age;
	//get,set方法
	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;
	}
	
	//toString方法
	
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
	}	
}

定义操作表user的sql的映射文件 userMapper.xml

在这里插入图片描述
在这里插入图片描述

<mapper></mapper>这个文件是要自己写的
sql语句写在.xml文件中,实现了java和完全分离

namespace 类名

<?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.zhang.mybatis.sy1.userMapper">//namespace 命名空间,具有唯一性,类名!!!
	<select id="getUser" parameterType="int" resultType="com.zhang.mybatis.sy1.User">//这个id也是唯一的
	//parameterType 是下面输入变量的类型(这里是id的类型)
	//resultType 是返回的结果类型(这里是*,user的全类名),检查是否正确,按住ctrl变为超链接,点击可跳转到实体类
		//第一个id是字段名,#是占位符,{这个id是变量}
		select * from users where id=#{id}
	</select>
</mapper>

在这里插入图片描述

注册:将mapper.xml文件注册到conf.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 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/zhang/mybatis/sy1/userMapper.xml" /> //先指明路径,从com开始,全路径名
	</mappers>
	
</configuration>

在这里插入图片描述

此时关于mybatis的配置步骤已全部完成 。

一共6步,这个只是测试类,这个不算

这四步是固定的
记得先写main方法
String resource = "conf.xml"; 
Reader reader = Resources.getResourceAsReader(resource); 
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession();

新建测试类,看是否成功
先复制进去

public class Test {
public static void main(String[] args) throws IOException {
String resource = "conf.xml"; 
//加载 mybatis 的配置文件(它也加载关联的映射文件)
Reader reader = Resources.getResourceAsReader(resource); 
//构建 sqlSession 的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中 sql 的 sqlSession
SqlSession session = sessionFactory.openSession();
//映射 sql 的标识字符串
String statement = "com.rjxy.mybatis.bean.userMapper"+".selectUser";
//执行查询返回一个唯一 user 对象的 sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}

在这里插入图片描述

变量1,传给了mapper里面  id=#{id},相当于 id=#{1};

在这里插入图片描述
都保存以后运行,这个就是数据库里id为1,的数据
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/490825.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4、事件修饰符、过滤器、自定义指令、生命周期

一、事件修饰符 按键别名enter 回车 delete 删除键 esc取消键 space 空格键 <script> export default {name: "KeyUp",methods:{keyUp(e){ console.log(e) }},skip(){window.location.href "http:www.xx.com"} } </script> <template>…

BUUCTF-Misc14

[WUSTCTF2020]find_me1 1.打开附件 是一个学校的校徽 2.盲文解密 发现图片属性里的备注是一串盲文 用在线盲文解密 3.得到flag

第三十一天-Flask-ORM-sqlalchemy

目录 1.什么是ORM 2.flask-sqlalchemy 1安装 2.配置 3.数据库模型设计 ​编辑 4.插入修改删除 5.查询 1.什么是ORM 2.flask-sqlalchemy 1安装 2.配置 3.数据库模型设计 4.插入修改删除 5.查询

001_Python(PyCharm,Anaconda,Jupyter更改工作目录)

# 整理笔记&#xff0c;记录一下Python学习过程&#xff0c;希望对像我一样的初学者有所帮助&#xff01; 一、Python三个基本概念 1、解释器 Python解释器&#xff0c;是将高级语言解析为二进制机器语言的工具。 通常说的安装python就是指安装python解释器。 目前最新的P…

基于springboot+vue调用百度ai实现车牌号识别功能

百度车牌号识别官方文档 结果视频演示 后端代码 private String getCarNumber(String imagePath, int count) {// 请求urlString url "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate";try {byte[] imgData FileUtil.readFileByBytes(imagePath);Stri…

【如何安装odl: 1.0.0.dev0】

【如何安装odl: 1.0.0.dev0】 ODL官网 pip install odl可能容易报错&#xff0c;建议使用下述命令安装 pip install https://github.com/odlgroup/odl/archive/master.zip检查是否安装成功 conda list

练习二 霍格沃兹登录页面

1.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>教务系统管理页面</title><link rel"stylesheet" href"./教务管路系统页面.css"> </head> <body&g…

Spring Data Elasticsearch 与ES版本对应关系记录

参考&#xff1a; Versions :: Spring Data Elasticsearch

cpp第二次作业

现象&#xff1a; 源码&#xff1a; #include <iostream>using namespace std;class Rectangle{ private:int length;int width; public:void set_l(int l);void set_w(int w);int get_l();int get_w();void show(); };void Rectangle::set_l(int l) {lengthl; }void Re…

javaWeb健康管理系统

一、引言 1.1 设计背景 紧张的工作节奏、教学和科研的压力、个人不良的工作生活习惯、以及伴随工作压力而来的家庭关系、人际关系紧张等因素使得高校群体成为慢性病的高发群体[1]。学生入学的定期体检&#xff0c;教职工人入职体检&#xff0c;以及所有学生和教职工的定期体检…

使用小皮【phpstudy】运行Vue+MySql项目

现在的情况是我扒到了一个开源的项目&#xff0c;现在想要实现一下前端对应的功能&#xff0c;后端是完备的&#xff0c;但是需要调用数据库将数据跑起来&#xff0c;这里可以使用到MySql数据库&#xff0c;这里我还发现了一个比较好用的软件小皮【phpStudy】 官网 一 安装软件…

前端面试拼图-数据结构与算法(二)

摘要&#xff1a;最近&#xff0c;看了下慕课2周刷完n道面试题&#xff0c;记录下... 1. 求一个二叉搜索树的第k小值 二叉树(Binary Tree) 是一棵树 每个节点最多两个子节点 树节点的数据结构{value, left?, right?} 二叉树的遍历 前序遍历&#xff1a;root→left→right 中…

ArcGIS:焦点统计权重weight的设置方法

ArcGIS中的焦点统计可以用于计算指定邻域大小内的统计值&#xff0c;并重新赋给中心像元。其中可以通过未邻域内每个元素赋权重新计算&#xff0c;下面介绍下如何设置核文件。 1、新建一个txt文件 2、在txt里面写好权重&#xff0c;按照ArcGIS里面的帮助&#xff0c;3*3窗口如…

树和森林解析

01.下列关于树的说法中&#xff0c;正确的是&#xff08;D). Ⅰ.对于有n个结点的二叉树&#xff0c;其高度为log2n Ⅱ.完全二叉树中&#xff0c;若一个结点没有左孩子&#xff0c;则它必是叶结点 Ⅲ.高度为h (h>0)的完全二叉树对应的森林所含的树的个数一定是h IV.一棵树中的…

Python中的数据类型有四类八种如何理解?

在Python中&#xff0c;数据类型大致可以分为四大类&#xff0c;包含了八种基本的数据类型&#xff0c;这些分类有助于理解和使用Python进行编程。这四大类分别是&#xff1a; 数字类型 (Numeric Types): 整型 (int): 表示没有小数部分的整数&#xff0c;可以是正数、负数或零。…

2024年【熔化焊接与热切割】考试报名及熔化焊接与热切割找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新熔化焊接与热切割找解析题目及答案&#xff01;多做几遍&#xff0c;其实通过熔化焊接与热切割实操考试视频很简单。 1、【单选题】 下…

nandgame中的控制单元(Control Unit)

关卡说明的翻译&#xff1a; 控制单元除了ALU指令之外&#xff0c;计算机还应支持数据指令。在数据指令中&#xff0c;指令值直接写入A寄存器。创建一个控制单元&#xff0c;根据指令I的高位执行数据指令或ALU指令&#xff1a;位 15 0 数据指令 1 ALU指令ALU指令 对于ALU指令&…

一阶低通滤波

一阶低通滤波是一种信号处理技术&#xff0c;用于去除信号中高频部分&#xff0c;保留低频部分。在滤波过程中&#xff0c;一阶低通滤波器会使得高于某个截止频率的信号被衰减&#xff0c;而低于截止频率的信号则会被保留。这有助于减少噪音或者不需要的信号成分&#xff0c;从…

前端小白的学习之路(webpack)

提示&#xff1a;webpack简介&#xff0c;nvm,npm配置环境,常用命令&#xff0c;基本web项目构建 目录 webpack 1.配置环境 1)node.js node常用命令 2)nvm nvm常用命令&#xff1a; 3)npm npm常用命令 2.构建简易web项目 1)创建目录 2)安装webpack依赖 3)配置 webpac…

nandgame中的复合存储器

output部分的三个寄存器是用于校验结果的&#xff0c; 实际还得摆放寄存器A、D和RAM 然后st都是触发导通&#xff0c;cl都是触发传值&#xff0c; ad是address的缩写 *a是c语言的写法&#xff0c;a为地址&#xff0c;*a就是地址a指向位置存储的数值。