スプリングMVC学習(springとjdbc)


前のいくつかの文章はspringのiocとaopを勉強しました.springはJ 2 EEでの開発が多いことを知っていますから、データベースの操作が避けられないです.この文章はspringでjdbcの操作を勉強します.まず、springのコアjar commons-logging.jar spring.jarを導入するだけでなく、commons-pool.jar、mysql-connector-java-5110-bin.jar、comons-dbcp.jarの3つの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;
	}
}
       ここではデータベースの表にレコードを追加しました.しかし、この時、私達はまだそのデータベースに追加することが分かりません.データベースのユーザー名とパスワードも設定していません.だから、私達はappication Contact.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に注入します.私はJdbcTemplet 2.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.spring frame ebook.jdbc.co.co.jdbc.com.JdbcTemplateタイプのクラスです.このタイプは私達がJdbcTemplet 2のクラスで宣言した属性のタイプです.それから、この属性のためにdataSourceの値を設定します.完成したら、このtempleteはデータベースの操作能力があります.
JdbcTemplet 2.javaクラスで提供されるset方法は設定されています.ok、完成しました.この時、プログラムを実行しても、データをusersテーブルに追加できます.
       でも、多くの場合、私達はこのようにデータベースを操作しません.springもhibernateをサポートしています.これはspringとHbernateを結合して使うので、データベースを操作するのがもっと便利で、安全です.
ダウンロード