上一篇只是一个简单的SPRing MVC框架,接下来添加一些跟数据库的交互。
一、添加jdbc相关配置
在maven中添加相关依赖后,配置数据库访问参数及数据源。数据库参数使用配置文件,代码如下:
jdbc.properties
1jdbc.driver=com.MySQL.jdbc.Driver2jdbc.url=jdbc:mysql://localhost:3306/sampledb3jdbc.username=root4jdbc.passWord=1234565jdbc.initialSize=56jdbc.maxActive=107jdbc.minIdle=58jdbc.maxIdle=109jdbc.timeBetweenEvictionRunsMillis=360000010jdbc.minEvictableIdleTimeMillis=360000011jdbc.testOnBorrow=true12jdbc.validationQuery=SELECT1FROMDUAL
在app-servlet.xml中添加数据源配置和jdbcTemplate配置:
<beanid="jdbcConfig"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><propertyname="location"><value>classpath:jdbc.properties</value></property></bean><beanid="databasesource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><propertyname="driverClassName"value="${jdbc.driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/><propertyname="maxActive"value="${jdbc.maxActive}"/><propertyname="initialSize"value="${jdbc.initialSize}"/><propertyname="maxIdle"value="${jdbc.maxIdle}"/><propertyname="minIdle"value="${jdbc.minIdle}"/><propertyname="timeBetweenEvictionRunsMillis"value="${jdbc.timeBetweenEvictionRunsMillis}"/><propertyname="minEvictableIdleTimeMillis"value="${jdbc.minEvictableIdleTimeMillis}"/><propertyname="testOnBorrow"value="${jdbc.testOnBorrow}"/><propertyname="validationQuery"value="${jdbc.validationQuery}"/></bean><beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"ref="databasesource"/></bean>
二、实现一个使用用户名为super,密码为123456的用户登录过程
2.1 添加User实体类
User.java代码如下:
1publicclassUser {2privateLong id;3privateString username;4privateString email;5privateString password;6privateLong credit;7privateDate lastVisitTime;8privateString lastVisitip;9//setter、getter10}
2.2 实现对数据库的访问操作
新建UserDao.java,在UserDao类上添加@Repository注解
首先在该类中装配JdbcTemplate,使用@Autowired注解
@AutowiredprivateJdbcTemplate jdbcTemplate;
然后在里面添加一个根据用户名和密码查询用户的方法:
1publicUser findUser(finalString username,finalString password) {2String sql = "select id,user_name, credit from t_user_info where user_name = ? and password = ?";3User user =null;4try{5RowMapper<User> rm = ParameterizedBeanPropertyRowMapper.newInstance(User.class);6user = (User) jdbcTemplate.queryForObject(sql,newObject[]{username, password}, rm);7}catch(Exception e){8e.printStackTrace();9}10returnuser;11}
2.3 添加UserService.java类,代码如下:
1@Service("userService")2publicclassUserService {3@Autowired4UserDao userDao;5publicUser findUser(String username,String password){6returnuserDao.findUser(username,password);7}89publicintfindUserCount(String username,String password){10returnuserDao.findUserCount(username,password);11}1213publicbooleaninsertUser(User user){14returnuserDao.insertUser(user);15}16}
2.4 修改UserController.java的userIndex方法:
1@RequestMapping(value = "/index.html", method =RequestMethod.POST)2publicModelAndView userIndex(String username, String password) {3if(StringUtil.isEmpty(username) ||StringUtil.isEmpty(password)) {4logger.error("用户名或密码为空");5ModelAndView modelAndView =newModelAndView("/index");6modelAndView.addObject("error", "用户名或密码为空!");7returnmodelAndView;8}910//int count = userService.findUserCount(username,password);11User user =userService.findUser(username, password);12if(user ==null) {13logger.info("用户名或密码错误");14ModelAndView modelAndView =newModelAndView("/index");15modelAndView.addObject("username", username);16modelAndView.addObject("error", "用户:" + username + "不存在或用户密码错误!");17returnmodelAndView;18}19ModelAndView mav =newModelAndView("success");20mav.addObject("username", username);21mav.addObject("password", password);22logger.info("username : " + username + ", password : " +password);23returnmav;24}
这样就实现了登录的简单流程。