mybaits整合ldap通过sql方式操作目录服务

探讨问题的同胞们可以加QQ群:315309006

直接上代码吧,懒得写那么多了:

<!-- 定义数据源 -->
<context:property-placeholder location="classpath:ldap.properties"/>
<bean id="ldapDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${ldap.driver}"></property>
	<property name="url" value="${ldap.url}"></property>
	<property name="username" value="${ldap.username}"></property>
	<property name="password" value="${ldap.password}"></property>
</bean>

ldap.properties配置

ldap.driver=com.octetstring.jdbcLdap.sql.JdbcLdapDriver
ldap.url=jdbc:ldap://localhost:389/dc=maxcrc,dc=com?SEARCH_SCOPE:=subTreeScope
ldap.username=cn=Manager,dc=maxcrc,dc=com
ldap.password=secret

mybatis采用注释映射方式提供:

public interface TestMapper {
	public HashMap selectOne() throws Exception;
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC 
	"-//mybatis.org//DTD Mapper 3.0//EN" 
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.restful.ldap.mapper.TestMapper">
	<select id="selectOne" parameterType="hashmap" resultType="hashmap">
		SELECT * FROM ou=people,dc=maxcrc,dc=com WHERE uid=oracle2
	</select>
</mapper>

测试代码:

@Inject
private TestMapper mapper;
private Logger log = Logger.getLogger(this.getClass());

@Test
public void execute() {
	try {
		HashMap map = mapper.selectOne();
		for (Object key : map.keySet()) {
			log.info("\t" + key + " is " + map.get(key));
		}
	} catch (Exception e) {
		log.error("", e);
	}
}

测试结果:

[INFO]Loaded JDBC driver: com.octetstring.jdbcLdap.sql.JdbcLdapDriver (DriverManagerDataSource.java:153):setDriverClassName[org.springframework.jdbc.datasource.DriverManagerDataSource] 
[DEBUG]Logging initialized using 'org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl' adapter. (JakartaCommonsLoggingImpl.java:27):debug[org.apache.ibatis.logging.LogFactory] 
[DEBUG]ooo Connection Opened (JakartaCommonsLoggingImpl.java:27):debug[java.sql.Connection] 
Sort by : null
[DEBUG]==>  Executing: SELECT * FROM ou=people,dc=maxcrc,dc=com WHERE uid=oracle2  (JakartaCommonsLoggingImpl.java:27):debug[java.sql.PreparedStatement] 
[DEBUG]==> Parameters:  (JakartaCommonsLoggingImpl.java:27):debug[java.sql.PreparedStatement] 
Is No Con : false
[DEBUG]<==    Columns: DN, userPassword, uid_0, uid_1, sn, cn, telephoneNumber, objectClass_0, objectClass_1 (JakartaCommonsLoggingImpl.java:27):debug[java.sql.ResultSet] 
[DEBUG]<==        Row: uid=oracle2,ou=People,dc=maxcrc,dc=com, redqueen, oracle, oracle2, Lee, Amy Lee, +1 408 555 0033, uidObject, person (JakartaCommonsLoggingImpl.java:27):debug[java.sql.ResultSet] 
[INFO]	sn is Lee (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	DN is uid=oracle2,ou=People,dc=maxcrc,dc=com (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	cn is Amy Lee (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	telephoneNumber is +1 408 555 0033 (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	userPassword is redqueen (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	objectClass_1 is person (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	uid_1 is oracle2 (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	objectClass_0 is uidObject (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring] 
[INFO]	uid_0 is oracle (TestSpring.java:33):execute[com.ehofy.test.ldap.TestSpring]

探讨问题的同胞们可以加QQ群:315309006

你可能感兴趣的:(mybatis,LDAP,openLdap,整合)