4.1 新增员工

1、编辑EmpMapper.xml文件, 添加新增员工对应的sql.
2、编写TestMybatis类,添加testInsert方法,实现新增员工操作。

4.2 修改员工

1、编辑EmpMapper.xml文件, 添加新增员工对应的sql.
2、编写TestMybatis类,添加testUpdate方法,实现修改员工信息。

4.3删除员工

1、编辑EmpMapper.xml文件, 添加新增员工对应的sql.
2、编写TestMybatis类,添加testDelete方法,实现删除员工。

查找员工

mybatis-config.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的全局配置文件 -->
<!-- 程序中读取的是这个文件, XxxMapper,xml文件在第二步中读取 即,XxxMapper.xml是通过这个文件来间接读取的! -->
<configuration >
	<!-- 提示来源: "http://mybatis.org/dtd/mybatis-3-config.dtd" 中文件提供 -->
	
	<!-- 0. 加载常量配置信息 -->
	<properties resource="c3p0.properties"/>  
	
	<!-- 1. 配置开发环境 -->
	<!-- 定义数据库信息,默认使用 develop 数据库构建环境 -->  
	<environments default="develop">
		<environment id="develop">
			<!-- 配置事务管理器(JDBC / MANAGED) type: JDBC: jdbc进行事务管理(√) MANAGED: 自己管理 -->
			<transactionManager type="JDBC"/>
			<!-- 配置数据源(连接池) DataSource type: UNPOOLED ==》 不使用连接池 POOLED ==》 使用连接池 (√) JNDI ==》 (过时) -->
			<dataSource type="POOLED" >
				<property name="username" value="${c3p0.user}"/>
				<property name="password" value="${c3p0.password}"/>
				<property name="driver" value="${c3p0.driverClass}"/>
				<property name="url" value="${c3p0.jdbcUrl}"/>
			</dataSource>	
		</environment>
	</environments>
	
	
	<!-- 2. 导入XxxMapper.xml文件 -->
	<!-- 定义映射器 -->
	<mappers>
		 <!-- 使用这个方案,可以 单独 指定 Mapper的位置 -->  
		<mapper resource="EmpMapper.xml"/>
	</mappers>
</configuration>

Mapper 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">

<!-- namespace一般指定为当前文件的所在包路径+文件名(将来是接口名) 在程序中通过[ namespace + id ]定位到执行哪一条SQL语句 -->
 
 <!-- namespace、id 是定位标识!!重要! -->
<mapper namespace="EmpMapper">
	<!-- 提示的来源:头文件中"http://mybatis.org/dtd/mybatis-3-mapper.dtd" 提供 -->
	<!-- 如果没有提示,通过配置xml***获取。 -->
	
	<!-- 练习1. 查询所有员工信息 -->
	<select id="findAll" resultType="cn.edut.pojo.Empolyee">
		select * from emp ;
	</select>
	
	<!-- 练习5: -->
	<!-- id -> Emp setId(1) ; name -> Emp setName() ; -->
	 <select id="findByName" resultType="cn.edut.pojo.Empolyee" >
	 	select * from emp where name = #{name} 
	 </select>
	
	<!-- 练习2:新增员工信息:刘德华 歌手 888 -->
	<!-- 注意:不用增加返回值,加了报错 -->
	<insert id="insert" >
		insert into emp values(null , '刘德华' ,'歌手'   , 888 )   
	</insert>
		
	<!-- 练习3:修改员工信息,将刘德华的 job改为 演员 salary 改为88888 -->
	<update id="update">
		update emp set job='演员' ,  salary=88888 where name='刘德华'
	</update>
	
	<!-- 练习4 -->
	<delete id="delete">
		delete from emp where name='刘德华'
	</delete>
	
	
</mapper>

Employee 类

package cn.edut.pojo;

public class Empolyee {
	private Integer id ; 
	private String name ; 
	private String job ; 
	private Double salary ;
	
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public Double getSalary() {
		return salary;
	}
	public void setSalary(Double salary) {
		this.salary = salary;
	}
	@Override
	public String toString() {
		return "Empolyee [id=" + id + ", name=" + name + ", job=" + job + ", salary=" + salary + "]";
	}

	
	
	
}

Test类

package cn.edut.day33;

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 org.junit.Test;

import cn.edut.pojo.Empolyee;

public class TestMybatis2 {
	private static  SqlSession session  = null ; 
	static {
		try {
			InputStream in  = Resources.getResourceAsStream("mybatis-config.xml");
			SqlSessionFactory build = new SqlSessionFactoryBuilder().build(in);
			session = build.openSession() ; 
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	
	/** * 练习2:新增员工信息:刘德华 歌手 888 */
	@Test
	public void testInsert() {
		
		//执行sql语句,返回执行结果
		
		int rows = session.update("EmpMapper.insert") ;
		
		//提交事务(默认不提交)
		session.commit();
		
		System.out.println("影响行数:"+ rows);
	}
	
	/** * 练习3:修改员工信息,将刘德华的 job改为 演员 salary 改为88888 */
	@Test
	public void testUpdate() {
		int rows = session.update("EmpMapper.update" ) ; 
		
		session.commit();
		System.out.println("影响行数:"+rows);
	}
	
	
	/** * 练习5:查询name 为 刘德华 的员工信息 */
	@Test
	public void testFindById() {
		
		String name = "刘德华";
		List<Empolyee> list = session.selectList("EmpMapper.findByName", name) ; 
		for (Empolyee e : list) {
			System.out.println(e);
		}
	}
	/** * 练习4:删除name为 刘德华 的记录 */
	@Test
	public void testDelete() {
		int rows = session.update("EmpMapper.delete");
		session.commit();
		System.out.println("影响行数:"+rows);
	}
	
	
	
	
	@Test
	public void testGetSession() {
		System.out.println(session);
	}
	
	
	
}