员工信息的增删改查
为了增加记忆,写下的,如有不足,请多指教。
一、建立数据库ems,创建一个emp表。
create table emp(
id int primary key auto_increment,
name varchar(32),
gender int,
salary decimal(10,2),
dept_id int,
dept_name varchar(32),
remark varchar(32),
deleted tinyint(1) default 0
);
drop table emp;
desc emp;
select * from emp;
insert into emp (name,gender,salary,dept_id,dept_name,remark) values ('陈赫',1,8000,3,'文艺部','演员');
二、在eclipse中,新建一个java项目emsMyBatis,右击项目名,新建一个文件夹lib,将mybatis-3.4.5.jar和mysql-cconnector-java-5.1.25-bin.jar这两个jar包放到lib文件夹中,选中这两个jar包,右击→Build Path→Add to Build Path.
三、配置MyBtis文件,右击src,新建一个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">
<configuration>
<!-- 配置环境 -->
<environments default="env">
<environment id="env">
<!-- 事务管理 -->
<transactionManager type="JDBC"/>
<!-- 数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!-- 只需改一处:ems数据库名称 -->
<property name="url" value="jdbc:mysql://localhost:3306/ems?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 映射 -->
<mappers>
<!-- 一会写 -->
<mapper resource=""/>
</mappers>
</configuration>
四、创建工具类Util,右击src→package,创建一个Util包,创建DbUtil类。
1、先敲上如下代码,导包后如下:
2、抛异常后,敲上如下代码:
package util;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class DbUtil {
public static SqlSession getSqlSession() {
SqlSession session=null;
try {
Reader reader=Resources.getResourceAsReader("MyBatis.xml");
SqlSessionFactoryBuilder build=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=build.build(reader);
session=factory.openSession(true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return session;
}
}
五、新建一个包entity,包中有emp.java实体类,实体类有私有成员,以及getter和setter方法。
package entity;
public class Emp {
private Integer id;
private String name;
private Integer gender;
private double salary;
private Integer dept_id;
private String dept_name;
private String remark;
private boolean deleted;
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 Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Integer getDept_id() {
return dept_id;
}
public void setDept_id(Integer dept_id) {
this.dept_id = dept_id;
}
public String getDept_name() {
return dept_name;
}
public void setDept_name(String dept_name) {
this.dept_name = dept_name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public boolean isDeleted() {
return deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
@Override
public String toString() {
return "Emp [id=" + id + ", name=" + name + ", gender=" + gender + ", salary=" + salary + ", dept_id=" + dept_id
+ ", dept_name=" + dept_name + ", remark=" + remark + ", deleted=" + deleted + "]";
}
}
六、创建一个mapper包,包中有EmpMapper.java接口,接口中写方法。
package mapper;
import java.util.List;
import entity.Emp;
public interface EmpMapper {
List<Emp> findAll();
Emp findById(Integer id);
void add();
void delete(Integer id);
void update(Emp emp);
}
七、创建一个aql包,包中有EmpMapper.xml文件,用来写sql语句。
配置文件+sql语句:
<?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="mapper.EmpMapper">
<select id="findAll" resultType="entity.Emp">
select * from emp
</select>
<select id="findById" resultType="entity.Emp">
select * from emp where id=#{id}
</select>
<insert id="add">
insert into emp (name,gender,salary,dept_id,dept_name,remark) values (#{name},#{gender},#{salary},#{dept_id},#{dept_name},#{remark})
</insert>
<delete id="delete">
delete from emp where id=#{id}
</delete>
<update id="update">
update emp set name=#{name},gender=#{gender},salary=#{salary},dept_id=#{dept_id} dept_name=#{dept_name},remark=#{remark}
</update>
</mapper>
写完这个后,还记得MyBatis.xml配置文件中的映射mapper吗?
八、创建test包,新建SelectTest测试类。
package test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import entity.Emp;
import mapper.EmpMapper;
import util.DbUtil;
public class SelectTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
SqlSession session=DbUtil.getSqlSession();
EmpMapper empMapper=session.getMapper(EmpMapper.class);
List<Emp> emp=empMapper.findAll();
for(Emp e:emp) {
System.out.println(e);
}
}
}

