Emp类:与表中的字段映射,定义get,set和toString方法
/*
Emp类是与数据库表tb_emp进行映射
表名与类名不一定要相同
表中字段映射成类的属性
*/
public class Emp {
private Integer id;//与表tb_emp的id字段映射
private String empName;//与表tb_emp的empName字段映射
private Integer age;//与表tb_emp的age字段映射
private String deptName;//与表tb_emp的deptName字段映射
private String address;//与表tb_emp的address字段映射
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Emp{" +
"id=" + id +
", empName='" + empName + '\'' +
", age=" + age +
", deptName=" + deptName +
", address='" + address + '\'' +
'}';
}
}
MapperEmp.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:命名空间 作为多个mapper文件的唯一标识
-->
<mapper namespace="emp">
<!--
insert标签
-->
<insert id="addEmp">
insert into tb_emp(id,empName,age,deptName,address)
values(null,'李四','20','开发部','湛江');
</insert>
<!--
动态sql
参数从外界传进来
parameterType:参数类型,如果参数类型是一个对象,那么就写这个对象对应类的全路径
mybatis中提供了一个占位符#(取值符)
#{对象的属性}相当于调用了 对象.get()方法
-->
<insert id="addEmpInfo" parameterType="com.pojo.Emp">
insert into tb_emp(id,empName,age,deptName,address)
values(null,#{empName},#{age},#{deptName},#{address})
</insert>
<!--
当传入的参数是String类型或者是Integer类型,这时候parameterType可以写,也可以不写
当传入的参数是对象类型,那么parameterType一定要写,不可省略
-->
<delete id="delById" parameterType="com.pojo.Emp">
delete from tb_emp where id= #{id};
</delete>
<update id="updateById" parameterType="com.pojo.Emp">
update tb_emp
set empName=#{empName},
age=#{age},
deptName=#{deptName},
address=#{address}
where id=#{id}
</update>
<select id="selectById" resultType="com.pojo.Emp">
select * from tb_emp where id=#{id}
</select>
<select id="selectAll" resultType="com.pojo.Emp">
select * from tb_emp
</select>
</mapper>
mybatis.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的核心配置文件
1、数据源 (交给spring)
2、事务(交给了sp了ring)
3、映射文件
-->
<configuration>
<!-- 事务 、 数据源、 映射文件 -->
<!-- 配置开发环境
default:默认的环境
-->
<environments default="dev">
<!--id值就是默认的环境 -->
<environment id="dev">
<!-- 配置事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源 type:池化的-->
<dataSource type="pooled">
<property name="driver"
value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<!--引入映射文件-->
<mappers>
<mapper resource="Mappers/EmpMapper.xml"></mapper>
</mappers>
</configuration>
测试类:
import com.pojo.Emp;
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 java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
public class testEmp {
@Test
public void insertEmp() throws IOException {
//加载mybatis的核心配置文件
InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
//创建SQLSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//通过SqlSessionFactory 创建SqlSession对象
//SqlSession对象执行sql
SqlSession session = factory.openSession(true);//true表示默认提交事务
//执行sql 定位执行的sql
int row = session.insert("emp.addEmp");
//提交事务
//session.commit();
if(row>0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
//关闭资源
session.close();
}
@Test
public void insertInfo() throws IOException {
InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession(true);
//封装参数
Emp emp = new Emp();
emp.setEmpName("旺财");
emp.setAge(30);
emp.setDeptName("监察部");
emp.setAddress("湛江");
int row = session.insert("emp.addEmpInfo",emp);
if(row>0){
System.out.println("新增成功");
}else{
System.out.println("新增失败");
}
session.close();
}
@Test
public void delById() throws IOException {
InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession(true);
//Integer id = 2;
//int row = session.delete("emp.delById",id);
Emp emp = new Emp();
emp.setId(1);
int row = session.delete("emp.delById",emp);
if(row>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
session.close();
}
@Test
public void updateByIdInfo() throws IOException {
InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession(true);
Emp emp = new Emp();
emp.setId(2);
emp.setEmpName("王五");
emp.setAge(13);
emp.setDeptName("维修部");
emp.setAddress("广州");
int row = session.update("emp.updateById",emp);
if(row>0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
session.close();
}
@Test
public void selectById() throws IOException {
InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession(true);
int id = 2;
List list = session.selectList("emp.selectById", id);
//迭代器输出
Iterator itor = list.iterator();
while(itor.hasNext()){
System.out.println(itor.next());
}
//foreach输出
/* for (Object o: list) {
System.out.println(o);
}*/
//for循环输出
/* for(int i=0 ;i<list.size();i++) {
System.out.println(list.get(i)+" ");
}*/
session.close();
}
@Test
public void selectAll() throws IOException {
InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession(true);
List list = session.selectList("emp.selectAll");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i)+" ");
}
}
}