ibatis项目搭建

该博客介绍了如何利用Ibatis进行项目搭建,包括创建Java项目,添加ibatis和MySQL连接jar包,设置源文件夹,配置数据库连接,以及编写测试类验证效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ibatis提供了pojo到数据库表的映射机制,程序员编写SQL语句和所需参数,通过映射配置文件,返回结果字段映射到指定的POJO


1.新建一个java project项目,项目添加两个jar包,一个是ibatis,一个是mysql数据库连接的jar包



2.两个包,com.bean和com.resource,resource这个包要右键,buld path——use as source folder,不然找不到配置文件


3.数据库连接相关配置,sqlmap_mysql.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"  
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 
        <sqlMapConfig>
            <!-- 基本设置 -->  
    		<!-- cacheModelsEnabled:是否开启缓存机制 -->
    		<!-- enhancementEnabled:是否启用字节码增强机制 -->
   			<!-- errorTracingEnabled:是否启用错误处理机制 -->
    		<!-- lazyLoadingEnabled:是否启用延迟加载机制 -->
    		<!-- 
	    		maxRequests:最大并发请求数
	    		maxSessions:最大session数
	    		maxTransactions:最大并发事物数
	    		useStatementNamespaces:是否启用名称空间
    		 -->
   		<settings cacheModelsEnabled="false" enhancementEnabled="false" errorTracingEnabled="false"
              lazyLoadingEnabled="false" maxRequests="300" maxSessions="300"  
              maxTransactions="300" useStatementNamespaces="false"/>  
                
    		<!-- 数据访问相关配置,transactionManager定义了ibatis的事务管理器,有3种(JDBC,JTA,EXTERNAL) -->
    	<transactionManager type="JDBC"> 
    		<!-- 数据源链接信息,type有3中类型(SIMPLE,DBCP,JNDI) --> 
        <dataSource type="SIMPLE">  
            <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />  
            <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/myWeb?characterEncoding=UTF-8" />  
            <property name="JDBC.Username" value="root" />  
            <property name="JDBC.Password" value="root" />  
        </dataSource>  
    </transactionManager>  
      	
      	<!-- 指定映射文件的位置 -->
    	<sqlMap resource="com/bean/user-mapping.xml"/>
        </sqlMapConfig>

4.新建一个pojo,user.java

package com.bean;

/**
 * 用户pojo
 * 
 * @author mona
 * 
 */
public class User {
	// id
	private int id;
	// 登录账号
	private String username;
	// 登录密码
	private String password;
	// 真是姓名
	private String realname;
	// 所在省份
	private String province;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getRealname() {
		return realname;
	}

	public void setRealname(String realname) {
		this.realname = realname;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

}

5.新建一个用户pojo映射配置文件,user-mapping.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<!--设置映射类别名  -->
<typeAlias alias="User" type="com.bean.User"/>

<!-- 设置映射的字段,数据库字段和类属性映射 -->
<resultMap class="user" id="user.getuser">
<result column="id" property="id"/>
<result column="username" property="username"/>  
<result column="password" property="password" />  
<result column="realname" property="realname"/>  
<result column="province" property="province"/>  
</resultMap>

<!-- parameterClass:传入的参数类型,可以是对象,例如user,不区分大小写,也可以是Integer或者hashmap -->
<!-- 插入操作 -->
<insert id="insertUser" parameterClass="user">
 <![CDATA[ 
        INSERT INTO user( username, password, realname, province) 
        VALUES(#username#, #password#, #realname#, #province#) 
        ]]>  
</insert>

<!-- 删除操作 -->
<delete id="deleteUserByID" parameterClass="Integer">
	DELETE FROM user WHERE id = #id#
</delete>

<!-- 修改操作 -->
<update id="updateUser" parameterClass="user">
	UPDATE user SET username=#username#, password=#password#, 
	realname=#realname#, province=#province# where id = #id#
</update>

<!-- 根据ID查询单条信息,如果用resultMap,这里的值要和开始的resultMap中的id相同,如果要返回其他数据类型,用resultClass,例如<pre name="code" class="html">resultClass="HashMap"
--><select id="selectUserByID" parameterClass="Integer" resultMap="user.getuser">SELECT * FROM USER WHERE id = #id#</select></sqlMap>


</pre><pre>


6.最后写个测试类,测试效果

package com.bean;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class MainTest {
	// main测试程序
	public static void main(String[] args) throws SQLException {
		SqlMapClient sqlMapClient = getSqlMapClient();
		// 插入操作----------------------------------------------
		/*
		 * User user = new User(); user.setId(2); user.setUsername("admin");
		 * user.setPassword("admin"); user.setRealname("管理员");
		 * user.setProvince("安徽省");
		 */
		// insertUser对应的是,user-mapping.xml文件中insert插入操作的id值
		// sqlMapClient.insert("insertUser", user);

		// 删除操作----------------------------------------------
		int id = 2;
		// sqlMapClient.delete("deleteUserByID", id);

		// 修改操作----------------------------------------------
		// sqlMapClient.update("updateUser", user);

		// 查询操作----------------------------------------------
		// Map user = (Map) sqlMapClient.queryForObject("selectUserByID", id);
		// System.out.println(user.get("realname"));
		User user = (User) sqlMapClient.queryForObject("selectUserByID", id);
		System.out.println(user.getRealname());
	}

	/**
	 * SqlMapClient,ibatis接口,对sql执行和批处理
	 * 
	 * @return
	 */
	public static SqlMapClient getSqlMapClient() {
		SqlMapClient sqlMapClient;
		// 加载数据库连接配置文件
		String resource = "sqlmap_mysql.xml";
		Reader reader;
		try {
			reader = Resources.getResourceAsReader(resource);
			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
		} catch (IOException e) {
			sqlMapClient = null;
			e.printStackTrace();
		}
		return sqlMapClient;
	}

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值