- 浏览: 38823 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
qian3313:
好!非常好!
hibernate中lazy="false"理解 -
雪韧梅:
...
hibernate和struts2心得 -
xycdgc:
是啊,在自学struts,书上的一个例子,自己尝试着敲了下, ...
struts2+hibernate实现简单登录与注册 -
pweffort:
看到好熟悉哦.
struts2+hibernate实现简单登录与注册
今天写了一下Spring连接数据库的程序,学到了一些东西,我用的数据库是sqlserver2000,首先将需要的包导入(包括数据库以及spring的相关的包),然后进行编写程序。
(1)myspring.xml
不同的数据库,需要变动加载驱动类的名称、url,并且填好针对自己数据库的用户名和密码。
(2)SqlStatement.java
把这些语句单独的定义在一个类中,可以使程序结构更加清晰,维护更加方便。
(3)SpringToResult.java
SpringToResult类中的对象对应数据库中mytable表中一条记录。
(4)DbTest.java
然后运行后会发现有这样的错误产生:
2010-5-6 19:44:48 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [com/myspring.xml]
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databasetest' defined in class path resource [com/myspring.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [com/myspring.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [com/myspring.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:229)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:327)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1073)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:348)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at com.DbTest.main(DbTest.java:19)
(5)进行仔细查看发现在xml中运用到了org.apache.commons.dbcp.BasicDataSource
dbcp是用来配置连接池的,在引入的包当中没有找到所以会出现ClassNotFound的例外,在lib\jakarta-commons找到对应的common-dbcp.jar和common-pool.jar,进行导入,然后再次运行出现正确的结果。
(1)myspring.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="databasetest" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"> <ref local="dataSource"/> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" > <property name="driverClassName"> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </property> <property name="url"> <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseNamemypro=mypro</value> </property> <property name="username"> <value>sa</value> </property> <property name="password"> <value>sa</value> </property> </bean> </beans>
不同的数据库,需要变动加载驱动类的名称、url,并且填好针对自己数据库的用户名和密码。
(2)SqlStatement.java
package com; public abstract class SqlStatement { final public static String createsql="create table mytable(id int,cname varchar(50))"; final public static String insertdata1="insert into mytable values(1,'name1')"; final public static String insertdata2="insert into mytable values(2,'test2')"; final public static String insertdata3="insert into mytable values(3,'test3')"; final public static String selectsql="select * from mytable"; }
把这些语句单独的定义在一个类中,可以使程序结构更加清晰,维护更加方便。
(3)SpringToResult.java
package com; public class SpringToResult { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
SpringToResult类中的对象对应数据库中mytable表中一条记录。
(4)DbTest.java
package com; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.jdbc.core.RowCountCallbackHandler; public class DbTest { public static void main(String args[]) { Resource resource = new ClassPathResource("com/myspring.xml"); BeanFactory factory = new XmlBeanFactory(resource); JdbcTemplate jt = (JdbcTemplate) factory.getBean("databasetest"); jt.execute(SqlStatement.createsql);//创建表 jt.execute(SqlStatement.insertdata1);//插入数据 jt.execute(SqlStatement.insertdata2); jt.execute(SqlStatement.insertdata3); //获取表中信息 RowCountCallbackHandler rcch = new RowCountCallbackHandler(); jt.query(SqlStatement.selectsql, rcch); System.out.println("结果集中的列数量:" + rcch.getColumnCount()); System.out.println("结果集中的行数量" + rcch.getRowCount()); System.out.println("结果集中的结果:"); String[] str = rcch.getColumnNames(); for (int i = 0; i < str.length; i++) { System.out.print(str[i] + " "); } final ArrayList<SpringToResult> list = new ArrayList<SpringToResult>(); jt.query(SqlStatement.selectsql, new RowCallbackHandler() { public void processRow(ResultSet rs) throws SQLException { SpringToResult sri = new SpringToResult(); sri.setId(rs.getInt(1)); sri.setName(rs.getString(2)); list.add(sri); } }); for (int i = 0; i < list.size(); i++) { SpringToResult sri = (SpringToResult) list.get(i); System.out.print("\n" + " " + sri.getId()); System.out.print(" " + sri.getName()); } System.out.println("\n完成"); } }
然后运行后会发现有这样的错误产生:
2010-5-6 19:44:48 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [com/myspring.xml]
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databasetest' defined in class path resource [com/myspring.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [com/myspring.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name 'dataSource' defined in class path resource [com/myspring.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:229)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:327)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1073)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:348)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at com.DbTest.main(DbTest.java:19)
(5)进行仔细查看发现在xml中运用到了org.apache.commons.dbcp.BasicDataSource
dbcp是用来配置连接池的,在引入的包当中没有找到所以会出现ClassNotFound的例外,在lib\jakarta-commons找到对应的common-dbcp.jar和common-pool.jar,进行导入,然后再次运行出现正确的结果。
发表评论
-
hibernate和struts2心得
2010-12-02 17:52 7201.hibernate中 load和get参数一样,完成功能一 ... -
hibernate中lazy="false"理解
2010-11-29 17:32 904今天看到了别人的回答感觉讲解不错,分享下: hiberna ... -
一个计算表达式的
2010-05-17 17:05 681老师留了个小作业,做一个能够算表达式的,要求是用截取字 ... -
Spring的一些概念2
2010-05-07 00:34 618继续学习Spring中,Spring对服务的支持是蛮强 ... -
Spring的第一个程序
2010-05-06 01:26 647今天写了第一个Spring的小程序,体验了一下它的特性 ... -
Spring的一些概念1
2010-05-05 00:00 627今天开始进阶到Spring,Spring框架中有不少的概 ... -
扑克牌程序
2010-04-28 23:09 889经常遇到这个问题,自己做了一下,随机发52张牌,分给4 ... -
struts2+hibernate实现简单登录与注册
2010-04-28 00:53 4029最近在自学ssh,以前开发一直用的普通的MVC模式进行 ... -
使用Hibernate进行数据查询却清除了数据库对应表的内容
2010-04-19 22:09 910这些天,在运用Hibernate框架的时候,出现了一个问题,我 ... -
HTTP Status 404 There is no Action mapped for namespace / and action name
2010-04-17 22:56 1948在首次进行struts的开发中,初学者经常会遇到HTT ... -
struts2 简单配置
2010-04-14 17:16 657Struts2 是Apache下的一个开源在view层中 ... -
Hibernate 接口和配置文件
2010-04-12 23:58 534Hibernate核心接口位于业务层和持久化层,核心接口总共有 ... -
hibernate对数据库连接方言
2010-04-12 00:43 813今天在编程的过程中,配置hibernate的xml文件的 ... -
连接池技术
2010-02-02 22:11 830java在操作数据库时,用到的是jdbc,在操作数据库时引 ... -
在myeclipse下启动报错的问题
2010-02-02 18:58 1799以前一直是用eclipse来做web的开发,这个学期换了 ...
相关推荐
第二部分以第一部分介绍的DI和AOP特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了Spring构建 Web应用程序的各种方式。 目 录 第一部分 spring的核心 第1章 开始spring之旅 第...
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...
12.2 创建第一个Spring Roo项目 486 12.2.1 问题 486 12.2.2 解决方案 486 12.2.3 工作原理 486 12.3 把现有项目导入SpringSource Tool Suite 491 12.3.1 问题 491 12.3.2 解决方案 492 12.3.3 工作...
第二部分以第一部分介绍的DI和AOP特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了Spring构建 Web应用程序的各种方式。 目 录 第一部分 spring的核心 第1章 开始spring之旅 第...
12.2 创建第一个Spring Roo项目 486 12.2.1 问题 486 12.2.2 解决方案 486 12.2.3 工作原理 486 12.3 把现有项目导入SpringSource Tool Suite 491 12.3.1 问题 491 12.3.2 解决方案 492 12.3.3 工作...
二:服务介绍: 1) 服务的注册与发现 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、...
正如第二版那样,Spring 3.0 也仅支持 iBatis2。那么,我们就想将 MyBatis3 的支持添加 到 Spring3.0(参考 Spring Jira 中的问题)中。而不幸的是,Spring 3.0 的开发在 MyBatis 3.0 官方发布前就结束了。 因为 Spring ...
第二部分以第一部分介绍的DI和AOP特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了Spring构建 Web应用程序的各种方式。 《Spring in Action(中文版)(第2版)》适合所有Java开发...
第二部分 企业Spring 第5章 使用数据库 5.1 Spring的数据访问哲学 5.1.1 了解Spring数据访问的异常体系 5.1.2 数据访问的模板化 5.1.3 使用DAO支持类 5.2 配置数据源 5.2.1 使用JNDI数据源 5.2.2 使用数据源...
第二部分 企业Spring 第5章 使用数据库 5.1 Spring的数据访问哲学 5.1.1 了解Spring数据访问的异常体系 5.1.2 数据访问的模板化 5.1.3 使用DAO支持类 5.2 配置数据源 5.2.1 使用JNDI数据源 5.2.2 使用数据源...
第二部分企业spring 第5章使用数据库 5.1spring的数据访问哲学 5.1.1了解spring数据访问的异常体系 5.1.2数据访问的模板化 5.1.3使用dao支持类 5.2配置数据源 5.2.1使用jndi数据源 5.2.2使用数据源连接池 ...
第二部分 架构与实现 73 9.技术概述 73 9.1运行环境 73 9.2核心组件 74 9.2.1 SecurityContextHolder,SecurityContext和认证对象 74 获取有关当前用户的信息 75 9.2.2 UserDetailsService 75 9.2.3授予权力 77 ...
一次性密码令牌可以用作认证的带外第二因素。 该插件支持通过电子邮件和SMS文本传输OTP令牌。 组件 OtpGeneratingAuthenticationProvider 这包装了一个现有的AuthenticationProvider 。 身份验证请求被委派给包装...
在这个例子中,我们将创建三个程序集,分别是MainApp.exe、HelloGenerator.dll以及SayHello.dll。它们之间的关系如下图所示: HelloGenerator类根据提供的姓名产生一个问候字符串,代码如下: using System; ...
恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。 整个工程目录结构如下: 除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! mybatis实战教程(mybatis in action)之二:以...
本套课程在录制时采用难度逐步递进的方式,从入门的第一个程序到手写Spring框架,真正的能够让小白成为老手。如果你是老程序员不妨看看手写Spring框架,也会让你受益颇多。本套Spring教程与其他Spring教程的区别可...
第二部分 Spring在业务层的应用 第4章 征服数据库 4.1 学习Spring的DAO理念 4.1.1 理解Spring的DataAccessException 4.1.2 与DataSource一起工作 4.1.3 一致的DAO支持 4.2 在Spring中使用...
第二篇文章将涵盖web层可用的新特性;最后一篇文章将着重介绍集成和测试的新增性能。这一系列的三篇文章中引用的例子都基于Spring PetClinic应用程序范例。此范例最近被重构以用于展示Spring最新功能,并被包含于...
NULL 博文链接:https://flyqantas.iteye.com/blog/2191032
第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path、Classpath和JAVA_HOME 3.2 验证JDK是否安装成功 3.3 建立J2EE的开发环境 3.3.1 ...