iBatis数据库操作指南:增删改查实例

需积分: 3 3 下载量 127 浏览量 更新于2024-07-31 收藏 68KB DOCX 举报
本文将介绍如何使用iBatis框架进行基本的数据库操作,包括增、删、改、查。iBatis是一个轻量级的数据持久层框架,它允许将对象映射到SQL语句,方便对Java POJOs进行持久化操作。与Hibernate和JDO等框架不同,iBatis更侧重于使用存储过程和已有的SQL来处理数据库交互。 首先,我们需要了解iBatis的基本配置。在本示例中,我们将使用MySQL 5.0数据库,以查询联系人信息为例进行说明。联系人表(contact)的结构如下: ```sql CREATE TABLE `contact` ( `id` int(11) NOT NULL AUTO_INCREMENT, `firstName` varchar(20) DEFAULT NULL, `lastName` varchar(20) DEFAULT NULL, `email` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ); ``` 对应的Java POJO类(Contact.java)如下: ```java public class Contact { private String firstName; private String lastName; private String email; private int id; public Contact() {} public Contact(String firstName, String lastName, String email) { this.firstName = firstName; this.lastName = lastName; this.email = email; } // getters and setters... } ``` 在iBatis中,我们还需要编写SQL映射文件(例如:ContactMapper.xml),用于定义SQL语句和结果映射。例如,查询所有联系人的SQL语句可以这样写: ```xml <select id="selectAllContacts" resultType="com.example.Contact"> SELECT * FROM contact </select> ``` 接下来,我们需要在iBatis的配置文件(mybatis-config.xml)中包含这个映射文件,并设置数据源: ```xml <configuration> <mappers> <mapper resource="com/example/ContactMapper.xml"/> </mappers> <!-- 数据源配置 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/vin"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> </configuration> ``` 在Java代码中,我们需要创建SqlSessionFactory,然后通过它创建SqlSession对象,最后调用SqlSession的selectList方法来执行查询并获取结果集: ```java String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); try (SqlSession session = sqlSessionFactory.openSession()) { ContactMapper mapper = session.getMapper(ContactMapper.class); List<Contact> contacts = mapper.selectAllContacts(); for (Contact contact : contacts) { System.out.println("ID: " + contact.getId() + ", Name: " + contact.getFirstName() + " " + contact.getLastName() + ", Email: " + contact.getEmail()); } } ``` 以上步骤展示了如何使用iBatis从数据库中读取数据。对于添加、更新和删除数据,你可以分别使用insert、update和delete标签在映射文件中定义相应的SQL语句,并在Java代码中调用对应的方法。例如,插入新联系人的SQL语句可以这样定义: ```xml <insert id="insertContact" parameterType="com.example.Contact"> INSERT INTO contact (firstName, lastName, email) VALUES (#{firstName}, #{lastName}, #{email}) </insert> ``` 在Java代码中,调用`mapper.insertContact(contact);`即可执行插入操作。同样,你可以按照这种方式编写更新和删除的Java代码。 通过这个简单的例子,我们了解了iBatis的基本工作流程,包括配置、映射文件、Java对象和数据库操作。随着对iBatis的深入学习,你可以利用它的强大功能,如动态SQL、事务控制等,来实现更复杂的数据库操作。