Spring初学者(1)

    为了将来换一个好工作,学习点Spring的知识。会PHP、C++、Java,谁要是有好工作,请给我介绍个,好不好。

    我是初学,所以很多不太懂,写这些东西,也只是为了方便自己以后看。有什么错的地方,大家多交流。

    1.1 Spring的包下载,

    下载了好多版本的包,我觉得这个很必要,因为总会有那么几个 .jar,在某个版本里被省略。我下的是3.2.7,但后面我还下载了其他版本,我会上传到我的下载里,方便大家下载。



    1.2 创建一个简单程序结构

    一个学生实体类,一个学生抽象接口,一个学生接口实现类。结构很明朗:接口主要用于统一调用接口实现类,接口实现类用于封装学生实体类(这里说封装不知道用的对不对)。然后还需要添加一个服务类。

    基本的结构如下:


    1.3 学生实体类介绍

package com.cn.objInstance;

/*
 * student class
 */
public class Students {

	private String sid;		//studnet ID
	private String name;	//student Name
	private int    age;		//student age
	public String getSid() {
		return sid;
	}
	public void setSid(String sid) {
		this.sid = sid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
		
}

    1.4 学生的抽象接口类介绍:

package com.cn.objInterface;

import com.cn.objInstance.Students;

public interface StudentsDAO {
	
	/*
	 * 
	 */
	public boolean saveStudent(Students stu);

}

    1.5学生的抽象接口实现类

    这个类主要用于实现保存学生信息的操作。原来的例子是System.out输出信息。但是真那样的话,我不就太小儿科了。于是就修改成将学生信息提交到数据库中了。其实这里我也有很多细节不懂。

    我的电脑上装有MySQL数据库, 所以就决定使用MySQL数据库。建表的操作:

    1.5.1 创建表,当然这种手工创建我也很不爽,后面咋们都修改成SQL创建吧。



    1.5.2创建完成之后的预览:



    1.5.3 接口实现类介绍

package com.cn.objImplement;

import javax.sql.DataSource;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;

import com.cn.objInstance.Students;
import com.cn.objInterface.StudentsDAO;

public class StudentsDaoImplements implements StudentsDAO {
	
	//操作数据库的数据源
	private JdbcTemplate jdbcTemplate; 
	
	/*
	 * @see com.cn.objInterface.StudentsDAO#saveStudent(com.cn.objInstance.Students)
	 */
	public boolean saveStudent(Students stu) {
		if(stu!=null){
			try{
				jdbcTemplate.update("insert into baseinfo(studentsName,studentsAge,studentsID) values(?,?,?)",
						new Object[]{stu.getName(),stu.getAge(),stu.getSid()},
						new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER,java.sql.Types.VARCHAR});
			}
			catch(DataAccessException ex){
				
				System.out.println(ex.getMessage());
			}
			System.out.print(stu.getName()+"-"+stu.getAge());
			return true;
			//save students
		}
		return false;
	}
	
	/*
	 * 设置数据源的注入接口
	 */
	public void setDataSource(DataSource dataSource) {  
        this.jdbcTemplate = new JdbcTemplate(dataSource);  
    }

}

    1.6 称作服务层,服务类,为外界提供服务。

package com.cn.service;

import com.cn.objInstance.Students;
import com.cn.objInterface.StudentsDAO;

/*
 * 
 */
public class StudentsServices {

	private StudentsDAO stuDao;
	
	public StudentsDAO getStuDao() {
		return stuDao;
	}

	public void setStuDao(StudentsDAO stuDao) {
		this.stuDao = stuDao;
	}

	/*
	 * save students
	 * 服务层调用接口层
	 */
	public boolean saveStudents(Students stu){
		return stuDao.saveStudent(stu);
	}
}

    基本的框架就是这样,应该很明显吧。

    1.7 创建一个测试类。用于测试代码实现:

package com.cn.objTest;

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.util.Assert;

import com.cn.objInstance.Students;
import com.cn.service.StudentsServices;

/*
 * 
 */
public class TestStudentsService extends TestCase {
	
	public void testSaveStudents(){
		ApplicationContext stx=new ClassPathXmlApplicationContext("FrameworkContext2.xml");
				
		Students stu= (Students)stx.getBean("students");		
		stu.setName("找工作");
		stu.setAge(23);
		stu.setSid("2014-01");
				
		StudentsServices sve=(StudentsServices)stx.getBean("service");
		//Assert..assertEquals(true,sve.saveStudents(stu));
		sve.saveStudents(stu);
	}
}

    1.8 上述生成了一个学生对象,然后调用服务层类,对学生信息进行保存。下面来写一下配置文件,配置文件我是摘录网上的现成例子。

<?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="dbSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">        
     <property name="driverClassName" value="com.mysql.jdbc.Driver" />       
     <property name="url" value="jdbc:mysql://localhost:3306/studentinfo" />       
     <property name="username" value="root" />       
     <property name="password" value="" />  
	</bean>
	
	<bean id="students" class="com.cn.objInstance.Students" />
	<bean id="studentsDao" class="com.cn.objImplement.StudentsDaoImplements" >
		<property name="dataSource" >
			<ref bean="dbSource" />
		</property>
	</bean>
	
	<bean id="service" class="com.cn.service.StudentsServices">
		<property name="stuDao" >
			<ref bean="studentsDao" />
		</property>
	</bean>
</beans>

    创建了一个数据对象dbSource,然后赋值给studentsDao的属性。

    1.9 运行函数testSaveStudents(), 函数执行。



    2.0 虽然是个小应用,但是接下来我将会安装SVN进行,对他进行改版,毕竟这个东西很水,比如数据库的事务机制,再比如数据库的复杂操作,都需要完善,希望大家给我好的建议。

    下载VisualSVN安装,指定代码仓库的名称,创建一个项目,这里我也是不太懂,先这样做,做的不对的希望大家指出来修改交流:


    2.1 下载TortoiseSVN,默认安装乌龟,安装完后会自动加载到右键单击属性中。

    上一步,我们创建了一个项目,以及给项目指定了一个可以编辑的用户。现在,我们将其检出到本地( 姑且这么叫吧 )。



    2.1.0 检出结果如下:

    

    2.1.1 下面将之前创建的students都放置到该目录branches下,上传至版本库,这里我们先放这里,因为我也不知道怎么定义,到底要做一个什么东西。右键单击TortoiseSVN中Add,然后单击commit提交。这时候你会看到版本库中已经有自己的项目信息了:



    我个人比较喜欢英语,如果有特别喜欢汉语的,可以下载TortoiseSVN语言安装。

    我也是先手,有很多不明白,希望大家帮助我快速提高自己。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。