MyBatis——(5)MyBatis_映射配置文件_增删改查以及获取自增主键值
发布日期:2021-05-07 02:35:48 浏览次数:20 分类:精选文章

本文共 4796 字,大约阅读时间需要 15 分钟。

思路:

1:根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息
2:sql映射文件;配置了每一个sql,以及sql的封装规则等。,并写一个接口与它对应
3:将sql映射文件注册在全局配置文件中
4:写代码:
1)、根据全局配置文件得到SqlSessionFactory;
2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查一个 sqlSession就是代表和数据库的一次会话,用完关闭
3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。

创建employee表

CREATE TABLE Employee(
id INTEGER PRIMARY KEY auto_increment,
lastName VARCHAR(20) NOT NULL,
email VARCHAR(20) NOT NULL,
gendar VARCHAR(20) NOT NULL
)
在这里插入图片描述

Employee表

package com.atstudying.mybatis.bean;import org.apache.ibatis.type.Alias;public class Employee {   		private Integer id;	private String lastName;	private String email;	private String gendar;	private Department dept;		public Employee() {   		super();	}		public Employee(Integer id, String lastName, String email, String gender) {   		super();		this.id = id;		this.lastName = lastName;		this.email = email;		this.gendar = gender;	}		public Department getDept() {   		return dept;	}	public void setDept(Department dept) {   		this.dept = dept;	}	public Integer getId() {   		return id;	}	public void setId(Integer id) {   		this.id = id;	}	public String getLastName() {   		return lastName;	}	public void setLastName(String lastName) {   		this.lastName = lastName;	}	public String getEmail() {   		return email;	}	public void setEmail(String email) {   		this.email = email;	}	public String getGender() {   		return gendar;	}	public void setGender(String gender) {   		this.gendar = gender;	}	@Override	public String toString() {   		return "Employee [id=" + id + ", lastName=" + lastName + ", email="				+ email + ", gender=" + gendar + "]";	}	}

1:根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息

mybatis-config.xml

MyBatisTest.java

public SqlSessionFactory getSqlSessionFactory() throws IOException {   		String resource = "mybatis-config.xml";		InputStream inputStream = Resources.getResourceAsStream(resource);		return new SqlSessionFactoryBuilder().build(inputStream);	}

2:sql映射文件;配置了每一个sql,以及sql的封装规则等。,并写一个接口与它对应

EmployeeMapper.java

package com.atstudying.mybatis.dao;import java.util.List;import java.util.Map;import org.apache.ibatis.annotations.MapKey;import org.apache.ibatis.annotations.Param;import com.atguigu.mybatis.bean.Employee;public interface EmployeeMapper {   		public Employee getEmpById(Integer id);	public Long addEmp(Employee employee);	public boolean updateEmp(Employee employee);	public Integer deleteEmpById(Integer id);	}

EmployeeMapper.xml

insert into employee(lastName,email,gendar) values(#{lastName},#{email},#{gendar})
update employee set lastName=#{lastName},email=#{email},gendar=#{gendar} where id=#{id}
delete from employee where id=#{id}

3:将sql映射文件注册在全局配置文件中

4:写代码:
1)、根据全局配置文件得到SqlSessionFactory;
2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查一个 sqlSession就是代表和数据库的一次会话,用完关闭
3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。
MyBatisTest.java

public class MyBatisTest {   		public SqlSessionFactory getSqlSessionFactory() throws IOException {   		String resource = "mybatis-config.xml";		InputStream inputStream = Resources.getResourceAsStream(resource);		return new SqlSessionFactoryBuilder().build(inputStream);	}	@Test	public void test03() throws IOException{   				SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();		//1、获取到的SqlSession不会自动提交数据		SqlSession openSession = sqlSessionFactory.openSession();				try{   			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);			//测试添加			Employee employee = new Employee(null, "jerry4","22@qq.com", "1");			mapper.addEmp(employee);			System.out.println(employee.getId());						//测试修改			Employee employee = new Employee(2, "Tom", "jerry@qq.com", "0");			boolean updateEmp = mapper.updateEmp(employee);			System.out.println(updateEmp);			//测试删除			Integer num=mapper.deleteEmpById(3);			System.out.println(num);			//2、手动提交数据			openSession.commit();		}finally{   			openSession.close();		}			}

结果:

在这里插入图片描述

测试增删改查这一个过程中,我们可以得到如下结论

1、mybatis允许增删改直接定义以下类型返回值
Integer、Long、Boolean、void
2、我们需要手动提交数据
sqlSessionFactory.openSession();——》手动提交
sqlSessionFactory.openSession(true);——》自动提交
3,主键必须
< insert id=“addEmp” parameterType=“com.atstudying.mybatis.bean.Employee”
useGeneratedKeys=“true” keyProperty=“id” databaseId=“mysql”>
insert into employee(lastName,email,gendar)
values(#{lastName},#{email},#{gendar})
< /insert >
获取自增主键的值:
useGeneratedKeys=“true”;使用自增主键获取主键值策略
keyProperty;指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性

上一篇:MyBatis——(6)MyBatis_映射配置文件_参数处理
下一篇:MyBatis—— 小知识:全局配置文件中settings属性的设置、含义和默认值。

发表评论

最新留言

不错!
[***.144.177.141]2025年04月02日 11时25分15秒