概述
今天做了一个spring小项目,第一次使用spring连接mysql数据库,按照实例步骤,一步一步的做;
1。首先创建一个mysql数据库myspringtest;
2。在Eclipse中创建了SpringDBTest项目
2.1 在Eclipse“窗口首选项java构建路径用户库”中建立用户库"spring",选择spring开发包spring-framework-1.2中的dist目录下的所有jar文件,完成后在项目中"配置构建路径\库\添加库用户库spring"
2.2 建立spring配置文件myspring.xml
配置数据源
ttp://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd">
class="org.springframework.jdbc.core.JdbcTemplate">
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
org.gjt.mm.mysql.Driver
jdbc:mysql://localhost:3306/mytest
root
root
2.3 新建一个SqlStatement类存放操作数据库的语句,包括新建表格,插入数据,查询
package test;
public 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";
}
2.4 新建类SpringtoReseltSetInfo类,对应查询所得到的数据记录
package test;
public class SpringtoResultSetInfo {
private int id;
private String templatename;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTemplatename() {
return templatename;
}
public void setTemplatename(String templatename) {
this.templatename = templatename;
}
}
2.5 建立测试类Test,连接,查询,输出数据package test;
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.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.jdbc.core.RowCountCallbackHandler;
public class test {
public static void main(String[] args) {
ClassPathResource resource = new ClassPathResource("myspring.xml");
BeanFactory factory = new XmlBeanFactory(resource);
JdbcTemplate jt = (JdbcTemplate) factory.getBean("dbtest");
//创建数据库
//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.println(str[i] + " ");
}
//获取数据表中的数据
final ArrayList list = new ArrayList();
jt.query(SqlStatement.selectSql, new RowCallbackHandler(){
public void processRow(ResultSet rs) throws SQLException {
SpringtoResultSetInfo sri = new SpringtoResultSetInfo();
sri.setId(rs.getInt(1));
sri.setTemplatename(rs.getString(2));
list.add(sri);
}
}
);
for(int i = 0; i < list.size(); i ++){
SpringtoResultSetInfo sri = (SpringtoResultSetInfo) list.get(i);
System.out.print("n" + "" + sri.getId());
System.out.print("n" + "" + sri.getTemplatename());
}
System.out.print("n完成");
}
}
注:在连接mysql数据库的过程中,一定要导入mysql的驱动程序:mysql-connector-java-3.1.14-bin.jar.
此时,运行程序test.java,出现如下异常:
提示信息:2009-9-14 20:49:58 org.springframework.core.CollectionFactory 信息: JDK 1.4+ collections available
2009-9-14 20:49:58 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [myspring.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Line 14 in XML document from class path resource [myspring.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Attribute "destory-method" must be declared for element type "bean".
org.xml.sax.SAXParseException: Attribute "destory-method" must be declared for element type "bean".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate(XMLDTDValidator.java:1306)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1971)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:795)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:878)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:222)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
at org.springframework.beans.factory.xml.XmlBeanFactory.(XmlBeanFactory.java:73)
at org.springframework.beans.factory.xml.XmlBeanFactory.(XmlBeanFactory.java:61)
at test.Test.main(Test.java:17)在网上搜索了很久,才找到如下的解决方法:
连接时一定要导入spring-framework-1.2spring-framework-1.2.7libjakarta-commons下的四个包,commons-collections,commons-dbcp,commons-pool,commons-logging.他们对于连接过程很重要,在开发过程中,在这里卡了很长时间,因为我在spring核心包内并不包括这几个jar文件.
到此,运行成功了O(∩_∩)O~
3.完成后的项目输出如下:
2009-9-14 22:40:18 org.springframework.core.CollectionFactory 信息: JDK 1.4+ collections available
2009-9-14 22:40:19 org.springframework.core.CollectionFactory 信息: Commons Collections 3.x available
2009-9-14 22:40:19 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [myspring.xml]
结果集中的列数量:2
结果集中的行数量:6
结果集中的结果:
id
cname
1
name1
2
test2
3
test3
1
name1
2
test2
3
test3
完成
最后
以上就是烂漫黄豆为你收集整理的spring中的mysql数据库_spring中连接mysql数据库的全部内容,希望文章能够帮你解决spring中的mysql数据库_spring中连接mysql数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复