这里使用一个很简单的例子,没有界面,直接在控制台中输出。
数据库表结构如下:
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();
}
}
至此,现向数据库插入一条测试数据,然后程序便可以运行了。
分享到:
相关推荐
六、IbatisDemo学习要点 1. 理解Ibatis的基本架构和工作原理。 2. 掌握SqlMapConfig.xml的配置,如数据源设置、事务管理等。 3. 学习Mapper接口和Mapper XML的编写,理解SQL与Java方法的映射关系。 4. 熟悉动态SQL的...
在Ibatis-Demo中,我们可以学习到以下几个关键知识点: 1. **配置文件**:Ibatis的核心配置文件(mybatis-config.xml)用于设置全局属性,比如数据库连接池、类型处理器等。通过这个文件,Ibatis知道如何连接数据库...
总之,"ibatisDemo.zip"是一个全面了解和学习Ibatis的好资源,通过实例和视频,我们可以快速上手,并深入理解这个强大的持久层框架。在实际开发中,Ibatis可以帮助我们更高效地处理数据库操作,提升项目的开发效率。
.NET IbatisDemo 学习是针对ASP.NET MVC框架与IBatis.net数据访问层集成的一个实践教程,对于初学者掌握IBatis.net的用法具有很大的帮助。在这个教程中,我们将深入探讨如何将这两种技术结合,以实现高效的数据操作...
学习这个Demo,你需要理解以下步骤: 1. **环境搭建**:确保你的项目中已经引入了Ibatis的相关依赖,如`mybatis-x.x.x.jar`和数据库驱动。 2. **配置初始化**:配置`sqlMapConfig.xml`,包括数据源设置、日志配置...
### Spring+Ibatis Demo搭建详解 #### 一、项目背景与目标 在现代软件开发过程中,集成多种技术栈来构建高效稳定的应用系统是常见的做法。本文档将详细介绍如何使用Spring和Ibatis这两种流行的技术框架搭建一个...
总之,这个"Ibatis 练习Demo和笔记"资源为初学者提供了全面的学习路径,从理论到实践,逐步掌握Ibatis这一强大持久层框架的使用。通过深入研究并实践,不仅可以提升数据库操作技能,还能为后续的Spring全家桶学习...
3. "Ibatis学习随笔 - 努力创造未来! - BlogJava.files":这个文件夹可能包含了博客文章中提到的示例代码、图片或其他辅助资源,有助于读者更好地理解和实践iBatis的应用。 4. "iBatisDemo":这可能是项目的源代码...
【标题】"ibatis的一个简单demo用户登录"指的是使用iBATIS这个轻量级的Java持久层框架实现的一个用户登录...通过这个DEMO,开发者可以学习如何在实际项目中利用iBATIS进行数据库操作,特别是在用户登录这类常见场景下。
【IbatisDemo01】是基于.NET平台的一个完整的IbatisNet框架的应用示例,它包含了对数据库进行增、删、改、查(CRUD)的基本操作。IbatisNet是一款轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句与.NET代码...
3. "oa_demo":这可能是一个办公自动化(OA)系统的示例,展示了如何使用Spring MVC和iBatis构建企业级应用。可能包括用户管理、任务分配、文档处理等模块。 在这个项目中,Spring MVC负责接收HTTP请求,根据配置的...
3. **动态SQL的使用**:在"IbatisDemo03"中,你可能会看到如下的例子,例如,根据用户输入的条件来查询数据: ```xml SELECT * FROM Users WHERE 1=1 != null"> AND Name LIKE #{Name} != null"> AND Age...
这个"struts1+ibatis+Spring demo"是一个示例项目,展示了如何将这三个框架集成到一起,实现一个完整的Web应用。 Struts1是Apache组织开发的一个开源MVC框架,它主要负责控制应用程序的流程,通过Action类处理用户...
通过这个Demo,开发者可以学习到Ibatis的基本使用方法和最佳实践。 【标签】"ibatis"直接指出了这个项目的核心技术,Ibatis是一个流行的Java ORM(对象关系映射)工具,它的主要功能包括:动态SQL、事务管理、结果...
这个"struts+spring+ibatis的Demo"压缩包文件提供了这三个框架集成使用的示例代码,旨在帮助开发者理解和学习如何将它们有效地结合在一起。 **Struts 2框架** Struts 2是一个基于MVC设计模式的Web应用框架,它继承...
iBatis 是一款著名的开源持久层框架,它允许开发者将SQL语句与Java代码分离,提供了灵活的数据库交互方式。本示例项目"Ibatis_Demo"是一个针对新手的入门教程,旨在帮助...这将为后续深入学习和使用iBatis奠定基础。
《IbatisDemo:数据库半自动化操作的精要与实践》 在现代的Web开发中,数据库操作是不可或缺的一部分。IbatisDemo是一个展示如何利用Ibatis框架实现数据库半自动化操作的实例,相较于Hibernate,Ibatis提供了更高的...
IbatisDemo.rar是一个压缩包,其中...IbatisDemo提供了一套完整的Ibatis学习资源,包括文档、示例代码和运行所需的jar包。通过深入研究这个压缩包,你将能够熟练掌握Ibatis的使用,并能将其有效地应用到你的项目中。
总结来说,这个"STRUTS2+SPRING+IBATIS搭建的Demo实例"是一个很好的学习资料,它帮助开发者理解并实践如何在Java Web开发中有效地集成这三个框架,实现MVC架构,以及如何利用自动装配功能简化配置和提高代码的可维护...