Mavenは、注釈を使用してSQLマッパーを構成します(@ Select、@ Insert、@ Update、@ Delete)

プロジェクトディレクトリ:
ここに写真の説明を挿入
Client.java

package client;

import java.io.*;
import java.util.List;
import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;
import domain.Employee;
import domain.UserMapper;

public class Client {
	public static void main(String args[]) throws IOException {
		InputStream in=null;
		SqlSessionFactory factory=null;
		SqlSession sqlSession=null;
		try {
			in = Resources.getResourceAsStream("mybatis-config.xml");
		}
		catch(IOException e) {
			e.printStackTrace();
		}
		try {
			factory = new SqlSessionFactoryBuilder().build(in);
			sqlSession = factory.openSession();		
			UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
			List<Employee> list = userMapper.findAllEmployees();//注解配置映射查询 
			for(Employee emp:list)
				System.out.println(emp.getDeptId()+" "+emp.getEmpId()+" "+emp.getName());
			Employee emp=new Employee();
			emp.setDeptId(1);
			emp.setEmpId(5);
			emp.setName("小包");
			System.out.println("insert "+userMapper.insertEmp(emp)+" row is affected");//注解配置映射插入
			Employee emp2=new Employee();
			emp2.setEmpId(1);
			emp2.setName("月牙");
			System.out.println("update "+userMapper.updateEmp(emp2)+" row is affected");//注解配置映射更新
			System.out.println("delete "+userMapper.deleteEmp(2)+" row is affected");//注解配置映射删除
			sqlSession.commit();
		}
		catch(Exception e) {
			e.printStackTrace();
			if(sqlSession!=null) {
				sqlSession.rollback();
			}
		}
		finally {
			if(sqlSession!=null) {
				sqlSession.close();
			}
		}
	}
}

Department.java

package domain;

public class Department {
	private int deptId;
	private String deptName;
	public int getDeptId() {
		return deptId;
	}
	public void setDeptId(int deptId) {
		this.deptId = deptId;
	}
	public String getDeptName() {
		return deptName;
	}
	public void setDeptName(String deptName) {
		this.deptName = deptName;
	}
}

Employee.java

package domain;

public class Employee {
	private int empId;
	private String name;
	private int deptId;
	public int getEmpId() {
		return empId;
	}
	public void setEmpId(int empId) {
		this.empId = empId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getDeptId() {
		return deptId;
	}
	public void setDeptId(int deptId) {
		this.deptId = deptId;
	}
}

UserMapper.java(interface)

package domain;

import java.util.List;

import org.apache.ibatis.annotations.*;

public interface UserMapper {
	@Select("select * from employee")
	public List<Employee> findAllEmployees();
	
	@Insert("insert into employee values(#{empId},#{name},#{deptId})")
	public int insertEmp(Employee emp);//返回受影响的行数
	
	@Update("update employee set name=#{name} where empId=#{empId}")
	public int updateEmp(Employee emp);
	
	@Delete("delete from employee where empId=#{empId}")
	public int deleteEmp(int empId);
}

UserMapper.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="domain.UserMapper">
</mapper>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.zlm</groupId>
	<artifactId>Maven</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.6</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.40</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.1</version>
		</dependency>
	</dependencies>
</project>

従業員テーブルの
ここに写真の説明を挿入
クエリ結果:
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43873198/article/details/108419818