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);
}
}