员工信息的增删改查
为了增加记忆,写下的,如有不足,请多指教。
一、建立数据库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); } } }