这里使用一个很简单的例子,没有界面,直接在控制台中输出。
数据库表结构如下:
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(); } }
至此,现向数据库插入一条测试数据,然后程序便可以运行了。