MyBatis编写映射文件实现增删改操作 附说明及代码

简介: 1.看一下我们接口package cn.bdqn.mybatis.dao;import org.apache.ibatis.annotations.Select;import cn.bdqn.

1.看一下我们接口

package cn.bdqn.mybatis.dao;

import org.apache.ibatis.annotations.Select;

import cn.bdqn.mybatis.been.Emp;
/**
 * 这个接口不用写实现类,是用来给empMapper.xml进行动态绑定的
 * @author Administrator
 *
 */
public interface EmpMapper {
	
	public Emp getEmpById(Integer id);
	public void addEmp(Emp emp);
	/**
	 * MyBatis允许增删改直接定义一下类型返回值
	 * int long boolean 以及相应的包装类,
	 * 在接口中定义方法的时候,直接定义相应的返回值即可,无其他操作
	 * @param emp
	 * @return
	 */
	public boolean updateEmp(Emp emp);
	public void deleteEmpById(Integer id);
}

  

2.编写mapper

<?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">
<!--namespace:名称空间 -->
<mapper namespace="cn.bdqn.mybatis.dao.EmpMapper">
	<!-- id,唯一标识 resultType:返回值类型,bean的全限定名称 #{id},从传递过来的参数中取出id值,相当于换位符 public 
		Emp getEmpById(Integer id); -->
	<select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp"
		databaseId="mysql">
		select * from emp where id = #{id}
	</select>
	<select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp"
		databaseId="oracle">
		select * from emp where id = #{id}
	</select>
	<!-- public void addEmp(Emp emp); insert标签: id:对应我们javaBean的方法名 parameterType 
		可以省略,如果要写就是javaBean的全限定名称 insert into emp(last_name,gender,email) values(#{last_name},#{gender},#{email}) 
		结尾不需要分号,values值的#{对应的javaBean的属性名} -->
	<insert id="addEmp" parameterType="cn.bdqn.mybatis.been.Emp">
		insert into emp(last_name,email,gender)
		values(#{last_name},#{email},#{gender})
	</insert>
	<!-- update标签: public void updateEmp(Emp emp); id:对应我们javaBean的方法名 parameterType 
		可以省略,如果要写就是javaBean的全限定名称 update emp set last_name=#{last_name},email=#{email},gender=#{gender} 
		while id=#{id} 结尾不需要分号,#{}相当于占位符,等于我们传过来的值 -->
	<update id="updateEmp">
		update emp set last_name=#{last_name},email=#{email},gender=#{gender}	where
		id=#{id}
	</update>
	<!-- delet标签: public void deleteEmpById(Integer id); -->
	<delete id="deleteEmpById">
		delete from emp where id=#{id}
	</delete>

</mapper>

  3.编写测试类

package cn.bdqn.mybatis.test;

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;

import cn.bdqn.mybatis.been.Emp;
import cn.bdqn.mybatis.dao.EmpMapper;

public class MyBatisTest_02 {
	public static void main(String[] args) throws IOException {
		//获取SqlSessionFactory实例
		String resource="mybatis-config.xml";
		InputStream is = Resources.getResourceAsStream(resource);
		 SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);
		 //获取到的sqlsession不会自动提交
		 SqlSession openSession = build.openSession();
		 try{
			 //测试添加
			 EmpMapper mapper = openSession.getMapper(EmpMapper.class);
		 /*	 Emp emp = new Emp(null,"liyuanfeng","liyuanfeng@qq.com","1");
			 mapper.addEmp(emp);*/
			 //测试修改
			 Emp emp = new Emp(1,"liyuanfeng","liyuanfeng@qq.com","1");
			 mapper.updateEmp(emp);
			 
			 
			 //进行手动提交
			 openSession.commit();
		 }finally{
			 openSession.close(); 
		 }
		
	}

}

  

相关文章
|
4月前
|
XML Java 数据库连接
mybatis plus模板快速生成代码
MybatisX 是一款提升开发效率的 IDEA 插件,尤其适用于处理多表情况。通过 MybatisX-Generator,用户能轻松生成实体类、服务类、Mapper 接口及 XML 文件,显著减少工作量。安装步骤简便:通过 File -&gt; Settings -&gt; Plugins -&gt; Browse Repositories 完成搜索与安装流程。集成数据库后,右键所需操作的数据表,选择 MyBatisX-Generator 进行自动化代码生成。更多细节可参考相关教程。
91 0
|
2月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
3月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
176 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
3月前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
51 6
|
3月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
764 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
4月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
4月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
80 1
|
6月前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
147 3
|
6月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
6月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作