在Spring框架中配置和使用jdbcldap开源驱动

1、  取得jdbcldap驱动程序

http://www.openldap.org/取得Octet String 提供的开源Java JDBC - LDAP Bridge Driver包,即jdbcLdap.jar,并把此jar包加入到应用的lib目录中。

 

2、  配置连接ldap数据源的参数

在应用的init.properties文件中配置连接ldap数据源的参数,代码如下:

 

ldap.datasource.driverClassName=com.octetstring.jdbcLdap.sql.JdbcLdapDriver

ldap.datasource.url=jdbc:ldap://localhost:389/dc=fancy,dc=Com?SEARCH_SCOPE:=subTreeScope

ldap.datasource.username=cn=admin,o=com

ldap.datasource.password=fancy

ldap.hibernate.dialect=net.sf.hibernate.dialect.GenericDialect

hibernate.jdbc.batch_size=25
hibernate.jdbc.fetch_size=50
hibernate.show_sql=
true
 

 

3、  配置数据源和会话工厂

在应用的spring应用上下文配置文件applicationContext.xml中设置数据源,代码如下:

 

<bean id="ldapDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName">

            <value>${ldap.datasource.driverClassName}</value>

        </property>

        <property name="url">

            <value>${ldap.datasource.url}</value>

        </property>

        <property name="username">

            <value>${ldap.datasource.username}</value>

        </property>

        <property name="password">

            <value>${ldap.datasource.password}</value>

        </property>

</bean>

<bean id="ldapSessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">

    <property name="dataSource"><ref local="ldapDataSource"/></property>

    <property name="hibernateProperties">

      <props>

        <prop key="hibernate.dialect">${ldap.hibernate.dialect}</prop>

        <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

        <prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>

        <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>

      </props>

    </property>

  </bean>

 

4、  配置对会话工厂的引用关系

在应用的spring应用上下文配置文件applicationContext.xml中设置DAO对会话工厂的引用关系,代码如下:

 

<bean id="userInfoDAO" class="com.laoer.bbscs.dao.hibernate.UserInfoHibernateDAO">

    <property name="sessionFactory">

      <ref local="ldapSessionFactory"/>

    </property>

  </bean>

 

5、  DAO中访问LDAP数据库

示例代码如下:

Session session = null;

Connection con = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

       //取得与ldap连接的会话实例

       session = getSessionFactory().openSession();

 

//取得数据库连接

       con = session.connection();

} catch (HibernateException e) {

       e.printStackTrace();

}

 

6、  对数据库进行增删查改操作

示例代码如下:

//            Select

              Statement st1 = null;

              try {

                     st1 = con.createStatement();

              } catch (SQLException e) {

                     e.printStackTrace();

              }

              String SQL1 = "SELECT userExp FROM ou=User where cn=fancy";

              ResultSet rs1 = st1.executeQuery(SQL1);

              while (rs1.next() && rs.getString("cn") != null

                                       && (!("".equals(rs.getString("cn"))))) {

                     System.out.println("userExp=" + rs1.getString("userExp"));

              }

             

//            Update

              String DN= "cn=fancy ";

              String SQL2 = "UPDATE ou=User SET userTelNo=? WHERE "+DN;

              try {

                     PreparedStatement update = con.prepareStatement(SQL2);

                     update.setString(1,"13888888888");

                     int count = update.executeUpdate();

              } catch (SQLException e) {

                     e.printStackTrace();

              }

             

//            INSERT

              String SQL3= "INSERT INTO cn,ou=User "

                            + "(objectClass,userName,userTelNo) "

                            + "VALUES (userInfo,风卷流云,13888888888)";

 

              Statement insert = null;

              try {

                     insert = con.createStatement();

              } catch (SQLException e) {

                     e.printStackTrace();

              }

              try {

                     int count = insert.executeUpdate(SQL3);

              } catch (SQLException e) {

                     e.printStackTrace();

              }

             

             

//            DELETE

              String SQL4 = "DELETE FROM ou=User WHERE cn=?";

              PreparedStatement ps = con.prepareStatement(SQL4);

              ps.setString(1,"fancy");

              ps.execute();

 

7、  关闭连接和会话,示例代码如下:

              con.close();

             session.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值