eclipse 配置 mybatis 入门(一)

本文详细介绍了MyBatis的基本配置和使用方法,包括mybatis.xml配置文件、PersonMapper.xml SQL语句、实体类Person.java、测试类TestPerson.java的编写,以及如何通过mybatis进行数据查询、插入等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

mybatis.xml : 文件配置
PersonMapper.xml : sql语句
Person.java : 对应数据库列名的实体类
TestPerson.java : 测试类
lib :mybatis的核心包、依赖包
mysql-connector-java-5.1.8-bin.jar mysql连接包

在这里插入图片描述

目录结构

在这里插入图片描述

1.1 配置文件准备

jdbc.properties:

jdbc.DriverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/person?useUnicode=true&characterEncoding=utf8
jdbc.username=#
jdbc.password=#

1.2 添加mybatis-3-config.dtd和mybatis-3-mapper.dtd约束

mybatis.xml :

有的直接编译xml会不出提示,这就很难受,在这里需要添加两个步骤
1> 复制-//mybatis.org//DTD Config 3.0//EN
在这里插入图片描述
2>Window -------》preferences
在这里插入图片描述
在这里插入图片描述

PersonMapper.xml

跟mybatis一样,如果不提示代码补全的话,添加约束
复制:-//mybatis.org//DTD Mapper 3.0//EN
注:跟上述 mybatis 有区别 一个是 config 一个是 Mapper
在这里插入图片描述
注意和mybatis添加约束时的区别
在这里插入图片描述
两个约束添加成功后
在这里插入图片描述

2.1 mybatis.xml、PersonMapper.xml代码

mybatis.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">

<!-- 核心配置对象
mybatis的核心配置文件主要配置数据源,数据库相关的配置 -->
<configuration>
<!-- 加载jdbc.properties文件 -->
<properties resource="jdbc.properties"></properties>
<!-- 可以给java当中的实体类设置别名,别名就是类名的大写或小写,主要为了后面方便调用
 -->
 <typeAliases>
<typeAlias type="com.zk.mybatis.model.Person"/>
</typeAliases>

<!-- 配置将来访问的数据源,数据环境
数据源是可以配置多个的,默认使用开发者模式来连接数据库 -->
<environments default="development">
<environment id="development">
<!-- 事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据源 -->
<!-- 具体的数据源 使用数据库连接池,来获取jdbc连接,获取数据库连接需要设置
驱动名称、数据库地址、数据库用户名、密码 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.DriverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 将mapper.xml导入 -->
<mappers>
<mapper resource="PersonMapper.xml"/>
</mappers>
</configuration>

PersonMapper.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代表该mapper的唯一标识,通常情况下使用相对应的实体类名
 -->
<mapper namespace="com.zk.mybatis.model.Person">

<!-- id:唯一标识,parameterType:参数类型 resultType:返回值类型-->
<select id="findById" parameterType="int" resultType="Person">
select id,name from person where id = #{id};
<!-- 一般用#{}获得参数值 -->
</select>

<!-- 模糊查询 -->
<select id="findByLike" parameterType="string" resultType="Person">
select id,name from person where name like '%${id}%';
<!-- 模糊查询此处用${}获得参数值 -->
</select>

<!-- 插入数据 -->
<insert id="insertPerson" parameterType="Person">
insert into person (id,name) values(#{id},#{name})
</insert>
</mapper>

Person.java person实体类

package com.zk.mybatis.model;

public class Person {
	private int id;
	private String name;
	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;
	}
	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + "]";
	}
	
	
}

3.1 测试类

package com.zk.mybatis.test;

import java.io.IOException;
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 com.zk.mybatis.model.Person;

public class TestPerson {

	public static void main(String[] args) throws Exception {
		//1、得到mybatis.xml文件的输入流
		InputStream in = Resources.getResourceAsStream("mybatis.xml");
		//2、创建SqlSessionFactory
		//使用建造者模式创建会话工厂,mybatis的会话工厂可以理解为jdbc中的连接池
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		//3、sqlsession会话理解成jdbc当中的connection
		SqlSession session = factory.openSession();
		//4、执行
		int id = 1;
		Person person = session.selectOne("com.zk.mybatis.model.Person.findById", id);
		System.out.println(person);
		
		List<Person> list = session.selectList("com.zk.mybatis.model.Person.findByLike", "刘");
		System.out.println(list);
		
		Person person2 = new Person();
		person2.setId(4);
		person2.setName("广坤");
		session.insert("com.zk.mybatis.model.Person.insertPerson", person2);
		//5、对于增删改操作需要提交事务才能执行
		session.commit();
		//6、session 是资源链接,用完要进行关闭
		session.close();
	}
}



个人总结:


mybatis 的作用主要为了底层数据处理,用反射机制直接获得对象。
第一次部署的时候可能会觉得麻烦,不过以后用起来应该会很爽,只需要改动sql就可。
注:第一次部署,主要注意mybatis.xml 不要写错,尽量CV大法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值