这里使用一个很简单的例子,没有界面,直接在控制台中输出。
数据库表结构如下:
CREATE TABLE hr (
ID INT(11) NOT NULL AUTO_INCREMENT ,
Date DATE NULL DEFAULT NULL ,
EmployeeId VARCHAR(15) NULL DEFAULT NULL ,
Name VARCHAR(10) NULL DEFAULT NULL ,
Sex CHAR(3) NULL DEFAULT NULL ,
IdCard VARCHAR(18) NULL DEFAULT NULL ,
Wage DECIMAL(10,2) NULL DEFAULT NULL ,
Content TEXT NULL DEFAULT NULL ,
PRIMARY KEY (ID) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
总配置文件Configuration.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"> <configuration> <!--配置别名--> <typeAliases> <typeAlias alias="Hr" type="com.freewhere.ibatistest.Hr"/> </typeAliases> <!--配置运行环境--> <environments default="development"> <!--开发环境--> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="2479136"/> </dataSource> </environment> <!--测试环境--> </environments> <!--配置SQL Map文件--> <mappers> <mapper resource="HrMap.xml"/> </mappers> </configuration>
SQL Map文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="HrMapper"> <!--根据ID查询记录--> <select id="selectWithID" parameterType="int" resultType="Hr"> select * from hr where id = #{id} </select> <!--查询所有记录--> <select id="selectAll" resultType="Hr"> select * from hr </select> <!--插入一条记录--> <insert id="insertHr" parameterType="Hr"> insert into hr (name,sex,idCard,employeeId,date,wage,content) values (#{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{idCard,jdbcType=VARCHAR}, #{employeeId,jdbcType=VARCHAR},#{date,jdbcType=DATE},#{wage,jdbcType=NUMERIC},#{content,jdbcType=VARCHAR}) </insert> <!--根据ID删除一条记录--> <delete id="deleteHr" parameterType="int"> delete from hr where id = #{id} </delete> <!--跟新一条记录--> <update id="updateHr" parameterType="Hr"> update hr set name = #{name,jdbcType=VARCHAR},sex = #{sex,jdbcType=VARCHAR}, idCard = #{idCard,jdbcType=VARCHAR},employeeId = #{employeeId,jdbcType=VARCHAR}, date = #{date,jdbcType=DATE},wage = #{wage,jdbcType=NUMERIC},content = #{content,jdbcType=VARCHAR} where id = #{id} </update> </mapper>
Util类:
public class IBatisUtil {
private static SqlSessionFactory factory;
private IBatisUtil() throws Exception {
}
public static SqlSession openSession() throws Exception {
if (factory == null) {
String resource = "configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
factory = new SqlSessionFactoryBuilder().build(reader);
}
return factory.openSession();
}
}
实体类:
public class Hr {
private int id; //主键
private Date date; //入职时间
private String employeeId; //员工编号
private String name; //姓名
private String sex; //性别
private String idCard; //身份证号
private float wage; //薪酬
private String content; //备注
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public float getWage() {
return wage;
}
public void setWage(float wage) {
this.wage = wage;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getEmployeeId() {
return employeeId;
}
public void setEmployeeId(String employeeId) {
this.employeeId = employeeId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
主类:
public class Main {
public static void main(String[] args) throws Exception {
SqlSession session = IBatisUtil.openSession();
/*查询所有记录*/
List<Hr> list = session.selectList("HrMapper.selectAll");
System.out.println("员工总数:" + list.size());
/*根据ID查询记录*/
Hr hr = (Hr) session.selectOne("HrMapper.selectWithID", "1");
System.out.println(hr.getEmployeeId());
System.out.println(hr.getDate());
System.out.println(hr.getWage());
/*添加一条记录*/
Hr nhr = new Hr();
nhr.setIdCard("15345731245323");
nhr.setDate(new Date());
nhr.setEmployeeId("em23123");
nhr.setName("李四");
nhr.setSex("男");
nhr.setWage(250.00f);
session.insert("HrMapper.insertHr", hr);
session.commit();
/*修改一条记录*/
Hr uhr = new Hr();
uhr.setId(26);
uhr.setIdCard("1534657657323");
uhr.setDate(new Date());
uhr.setEmployeeId("em82115");
uhr.setName("张三");
uhr.setSex("男");
uhr.setWage(2250.00f);
session.insert("HrMapper.updateHr", hr);
session.commit();
/*删除一条记录*/
session.delete("HrMapper.deleteHr", "21");
session.commit();
/*最后谨记关闭Session*/
session.close();
}
}
至此,现向数据库插入一条测试数据,然后程序便可以运行了。