我们从几乎所有的项目都会有的登录模块来入手学习一下Spring的基本概念。关于登录的具体逻辑我这里就不多加赘述。从MVC的思想上我们可以演化出大概3个分层模块:展现层,业务层(Service),持久层(Dao)
1.持久层的学习 UserDao
//下面是通过Spring注解的方式定义了一个DAO
//现如今我们可以使用通过注解的方式和通过XML配置的方式混合使用来定义一个bean,而通过注解的方式则使得定义一个bean的工作变得简单了很多
@Repository
public class UserDAO {
//下面是通过自动注入 获得了JdbcTemplate 中的bean
@Autowired
private JdbcTemplate jdbcTemplate;
//返回1(登录成功) 返回0(登陆不成功)
public int getMatchCount(String userName,String password){
String sqlStr = "Select count(*) from t_user where user_name = ? and password = ?";
return jdbcTemplate.queryForInt(sqlStr,new Object[]{ userName, password});
}
//根据用户名获得User对象
public User findUserByUserName(final String userName){
}
}
通过上面的例子我们大概明白了持久层的作用:负责数据的访问很操作,DAO类被上层的业务层类所调用。而从中我们可以发现很多细节都需要记住:
1)Spring JDBC 对于JDBC API进行了简单的封装,传统的数据库API少不了各找重复的代码和异常处理,有了Spring JDBC我们就可以只用关注那些必不可少的代码的编写,其模板类是org.springframework.jdbc.core.JdbcTemplate。
2)经验:我们在用数据库的时候会涉及到密码这个隐私度比较高的东西,一般利用MD5摘要比较好。