iBATIS3学习--Demo

这里使用一个很简单的例子,没有界面,直接在控制台中输出。

 

数据库表结构如下:

 

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();
    }
}
 

 

至此,现向数据库插入一条测试数据,然后程序便可以运行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值