|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在1995年5月23日以“Java”的名称正式发布了。一,场景:编写一个用户办理的服务层,包含增添用户、删除用户和查询用户等等,并且用户信息以干系型数据库情势存储。
剖析:
这是一个典范的使用服务,触及到营业层(BusinessObjectsLayer)、数据库会见层(DBAccess)和存储层(EIS)。
接纳典范的架构:BO+DAO
DAO接纳Spring供应的JdbcTemplate来举行封装。
二,详细完成
1)用户类User
publicclassUser{
privateStringusername;
privateStringemail;
privateDatebirthday;
publicUser(){}
…
响应的setter/getter办法。
}
这是一个复杂的bean类,纪录用户的信息。
2)数据库会见类:UserDao
publicinterfaceUserDao{
publicvoidsave(Useruser);
publicvoidremove(Stringusername);
publicUsersearchByName(Stringusername);
}
这是数据库会见的接口类,界说了对用户的数据库操纵,实在现类是UserDaoJdbc
UserDaoJdbc类
publicclassUserDaoJdbcextendsJdbcDaoSupportimplementsUserDao{
publicUserDaoJdbc(){
super();
}
publicvoidsave(Useruser){
getJdbcTemplate().update(
"insertintoSAMPLE_USERvalues(?,?,?)",
newObject[]{user.getUsername(),user.getEmail(),
user.getBirthday()});
}
...
}
3)营业类UserManageService
publicinterfaceUserManageService{
publicvoidsaveUser(Useruser);
publicvoidremoveUser(Stringusername);
publicUsergetUserByName(Stringusername);
}
这是用户的营业类接口,界说了和用户相干的一些营业操纵,实在现类UserManageServiceImpl
完成类UserManageServiceImpl
publicclassUserManageServiceImplimplementsUserManageService{
privateUserDaoudao;
publicUserManageServiceImpl(){
super();
}
publicvoidsaveUser(Useruser){
udao.save(user);
}
publicUserDaogetUdao(){
returnudao;
}
publicvoidsetUdao(UserDaoudao){
this.udao=udao;
}
}
4)Springbean形貌文件设置
<beans>
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<propertyname="url">
<value>jdbc:oracle:thin:@172.16.4.219:1521:orcl</value>
</property>
<propertyname="username">
<value>zhangbo</value>
</property>
<propertyname="password">
<value>password</value>
</property>
</bean>
<beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
</bean>
<beanid="userdao"class="sample.spring.dao.UserDaoJdbc">
<propertyname="dataSource">
<refbean="dataSource"/>
</property>
</bean>
<beanid="userManageService"class="sample.spring.service.UserManageServiceImpl">
<propertyname="udao">
<refbean="userdao"/>
</property>
</bean>
</beans>
5)数据中存储用户的表SAMPLE_USER
usernamevarchar2(30)notnull,
emailvarchar2(50)notnull,
birthdaydate
6)经由过程单位测试来考证UserManageService中的操纵:
publicclassUserManageServiceTestextendsTestCase{
privateUserManageServiceservice;
privatestaticLoglogger=LogFactory.getLog(UserManageServiceTest.class);
protectedvoidsetUp()throwsException{
super.setUp();
service=(UserManageService)SpringContextUtil
.getBean("userManageService");
}
publicvoidtestSaveAndSearchAndRemoveUser()throwsException{
Useruser=newUser();
user.setUsername("zhangsan");
user.setEmail("zhangsan@test.com");
user.setBirthday(newDate());
service.saveUser(user);
logger.debug("存进一个新用户:"+user);
UseruserFromDb=service.getUserByName("zhangsan");
assertNotNull(userFromDb);
assertEquals(userFromDb.getEmail(),"zhangsan@test.com");
logger.debug("从数据库中查到用户:"+userFromDb);
service.removeUser("zhangsan");
logger.debug("从数据库删除用户:"+userFromDb);
}
protectedvoidtearDown()throwsException{
super.tearDown();
}
}
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。 |
|