如何连接数据库:
1)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="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="dataSource"></ref>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/example11</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>111111</value>
</property>
</bean>
</beans>
2)调用数据库连接:
Resource resource = new ClassPathResource("appcontext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
JdbcTemplate jt = (JdbcTemplate) factory.getBean("jdbcTemplate");//JdbcTemplate 是spring的数据库提取类
3)执行SQL语句:
jt.execute(
"create table jdbctemplate(id int ,templatename varchar(100))");//执行SQL语句
jc.update("UPDATE user SET age = 10 WHERE id = 'erica'");//更新表数据
//以下是带参更新(delete,insert类似)
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//带参数的更新
jt.update("update mytable set name = ? where id = ?", new Object[] {name, new Integer(id)});
4)返回数据集处理:
//得到列名及总体信息
Resource resource = new ClassPathResource("appcontext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
JdbcTemplate jt = (JdbcTemplate) factory.getBean("jdbcTemplate");
RowCountCallbackHandler rcch = new RowCountCallbackHandler();
jt.query("select * from interest", rcch);
log.info("结果集中的列数量:" + rcch.getColumnCount());
log.info("结果集中的行数量:" + rcch.getRowCount());
log.info("结果集中的列名:");
String[] str = rcch.getColumnNames();
for (int i = 0, k = str.length; i < k; ++i) {
log.info(str[i]);
}
List rows = jt.queryForList("select * from interest");//提取实际的结果集
for (int i=0,k=rows.size();i<k;++i)
{
String tot=rows.get(i).toString();
String[] tmp=tot.substring(1,tot.length()-1).split(",");
log.info(tmp[0]+'/n'+tmp[1]);
}
//查询并返单一结果
String name = (String) jt.queryForObject("select name from mytable", String.class);
//查询返回结果集
List rows = jt.queryForList("select * from mytable");
return rows;