首页 > 其他分享 >mybatis 实验报告1

mybatis 实验报告1

时间:2024-03-30 21:31:55浏览次数:26  
标签:xml age 数据库 public mybatis 实验报告 id

文章目录

新建数据库

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

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,的数据
在这里插入图片描述
在这里插入图片描述

标签:xml,age,数据库,public,mybatis,实验报告,id
From: https://blog.csdn.net/m0_75257168/article/details/137027973

相关文章

  • MyBatis细节注意
    1.参数占位符:${}和#{}#{}:占位符会将传入的值安全地转义,防止SQL注入攻击,它会在预编译阶段将占位符替换为一个问号 ?,然后通过PreparedStatement设置参数值,从而确保安全性。适用于实际参数值作为参数传递给SQL语句的情况,如表名、字段名、条件值等。${}:占位符会直接替换为参......
  • 实验报告( 重载,引用,指针,交换,字符串的连接 )
       一、实验目的:掌握函数重载的使用方法深入理解指针的概念,掌握指针的使用方法理解引用的概念,掌握引用作为函数参数的使用方法二、实验仪器或设备:微型计算机三、总体设计(设计原理、设计方案及流程等)实验内容:1、设计一组重载函数add(),至少包括:charadd(char,int);......
  • mysql之MyBatis核心工作原理
    MyBatis核心工作原理一、源码环境1.手动编译源码工欲善其事必先利其器。为了方便我们在看源码的过程中能够方便的添加注释,我们可以自己来从官网下载源码编译生成对应的Jar包,然后上传到本地maven仓库,再引用这个Jar。大家可以自行去官网下载*gitclonehttps://github.co......
  • Spring Boot整合MyBatis-Plus,并通过AutoGenerator生成项目骨架代码
    作为一名Java后端开发,日常工作中免不了要生成数据库表对应的持久化对象PO,操作数据库的接口DAO,以及CRUD的XML,也就是mapper。MybatisGenerator是MyBatis官方提供的一个代码生成工具,完全可以胜任这个工作,不过最近在开发项目的时候试用了一下MyBatis-Plus官方提供......
  • mybatis+spring组合使用
    1、mybatis+spring配置applicationContext.xml数据库使用c3p0sqlSessionFactory被集成为一个bean<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.o......
  • Mybatis是如何进行分页的?分页插件的原理是什么?
    Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执......
  • MybatisPlus多参数分页查询,黑马程序员SpringBoot3+Vue3教程第22集使用MP代替pagehelpe
    前言:视频来源1:黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关视频来源2:黑马程序员最新MybatisPlus全套视频教程,4小时快速精通mybatis-plus框架创作理由:网上MP实现分页查询功能的帖子易读性太差,具体实现看下面。根据视频完成......
  • Mybatis复习
    用于简化JDBC的操作,直接在mybatis中编写sql,发送给数据库执行,然后返回结果编写sql有注解和xml文件两种方法LocalDate类型对应数据表中的date类型LocalDateTime类型对应数据表中的datetime类型预编译sql性能高,安全like拼接时使用concat('%','#{张}','%')注解:@Mapperpublic......
  • Mybatis学习笔记
    1、概述1.1MyBatisMyBatis是持久层框架,用于简化JDBC的开发。官网:https://mybatis.org/mybatis-3/zh/index.html使用Mybatis操作数据库,就是在Mybatis中编写SQL查询代码,发送给数据库执行,数据库执行后返回结果。1.2预编译SQL性能更高更安全,能防止sql注入SQL注入是通过操......
  • [附源码]计算机毕业设计保险客户管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍在现代保险行业中,客户管理系统对于提升客户服务水平、增强客户满意度和构建长期客户关系至关重要。随着大数据和人工智能技术的发展,保险公司迫切需要一个先进的......