为了将来换一个好工作,学习点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语言安装。
我也是先手,有很多不明白,希望大家帮助我快速提高自己。