springMVC学习(spring与jdbc)

          前面几篇文章学习了spring的ioc和aop,大家都知道spring是用在j2EE的开发比较多,所以不可避免的会有数据库的操作,这篇文章,将会带大家学习spring中jdbc的操作。首先不仅需要导入spring的核心jar包commons-logging.jar
spring.jar,同时需要导入commons-pool.jar,mysql-connector-java-5.1.10-bin.jar,
commons-dbcp.jar这三个jar文件。用来操作数据库的。


       其实spring利用jdbc操作数据库很简单,spring已经为我们提供好了一个JdbcDaoSupport,在该类中有一个dataSource属性,并且为该属性提供了set方法,这个dataSource属性就是包含我们要操作的数据库的一些信息,比如数据库名称,数据库的用户名,密码等,就是配置数据库的,我们只需要自己定义一个类继承自JdbcDaoSupport,然后通过设置dataSource属性的值,就可以操作数据库了。

       因此,我们首先编写一个类继承自JdbcDaoSupport.java

public class MyJdbcTemplete extends JdbcDaoSupport {
	
	public int addUser() throws SQLException {
		String sql = "insert into users(username,userpass) values('test','1234')";
		JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
		jdbcTemplate.execute(sql);
		return 0;
	}
}
       可以看到,这里我是给数据库中的表里添加一条记录的。但是这个时候,我们还不知道给那个数据库当中添加,而且也没有设置数据库的用户名和密码,因此我们需要在applicationContext.xml中配置一个dataSource,并且将这个dataSource设置到MyJdbcTemplete的属性当中,注意: MyJdbcTemplete的dataSource属性,是从JdbcDaoSupport继承过来的。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<!-- mysql驱动 -->
		<property name="driverClassName" value="com.mysql.jdbc.Driver">
		</property>
		<property name="url"
			value="jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf-8">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>
	
	<bean id="myJdbcTemplete" class="com.test.jdbc.MyJdbcTemplete">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

</beans>
     可以看到dataSource就是配置我的数据库的基本信息,然后通过set方法设置到MyJdbcTemplete中,这个时候编写测试方法:

MyJdbcTemplete templete = (MyJdbcTemplete) applicationContext.getBean("myJdbcTemplete");
try {
	templete.addUser();
} catch (SQLException e) {
	e.printStackTrace();
}

        此时运行程序,就会成功给users表里边添加一条数据,是不是很简单呢,可以看出我们通过继承JdbcDaoSupport,然后通过this.getJdbcTemplete(),之后通过这个JdbcTemplete对象来操作数据库的,那么,我们也可以直接将JdbcTemplete当成一个属性,然后通过IOC给该属性注入值,我新建一个JdbcTemplete2.java代码如下:

package com.test.jdbc;

import java.sql.SQLException;

import org.springframework.jdbc.core.JdbcTemplate;

public class JdbcTemplete2 {
	private JdbcTemplate jdbcTemplate;
	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	public int addUser() throws SQLException {
		String sql = "insert into users(username,userpass) values('test','3333')";
		JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
		jdbcTemplate.execute(sql);
		return 0;
	}
}
可以看到我声明了一个JdbcTemplete属性,并且设置了set方法,然后就是在spring容器中为该属性赋值即可。

<bean id="jdbcTemplete" class="org.springframework.jdbc.core.JdbcTemplate">
	<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="jdbcTemplete2" class="com.test.jdbc.JdbcTemplete2">
	<property name="jdbcTemplate" ref="jdbcTemplete"></property>
</bean>
可以看到,我首先让spring容器为我初始化了一个org.springframework.jdbc.core.JdbcTemplate类型的类,这个类型就是我们在JdbcTemplete2类中声明的属性的类型,然后为该属性设置dataSource的值,完成之后,这个templete就具有操作数据库的能力了,然后将该templete通过 JdbcTemplete2.java类中提供的set方法设置进去,ok,完成了。此时运行程序同样可以添加一条数据到users表当中。

       不过很多时候,我们是不这样操作数据库的,因为spring同样支持hibernateTemplete,这个是spring和Hibernate结合起来使用的,操作数据库更加的方便,也更安全。


源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值