上一篇只是一个简单的Spring MVC框架,接下来添加一些跟数据库的交互。

一、添加jdbc相关配置
 
在maven中添加相关依赖后,配置数据库访问参数及数据源。数据库参数使用配置文件,代码如下:
jdbc.properties
 jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sampledb
jdbc.username=root
jdbc.password=123456
jdbc.initialSize=5
jdbc.maxActive=10
jdbc.minIdle=5
jdbc.maxIdle=10
jdbc.timeBetweenEvictionRunsMillis=3600000
jdbc.minEvictableIdleTimeMillis=3600000
jdbc.testOnBorrow=true
jdbc.validationQuery=SELECT 1 FROM DUAL
在app-servlet.xml中添加数据源配置和jdbcTemplate配置:
<bean id="jdbcConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="databasesource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="initialSize" value="${jdbc.initialSize}"/>
<property name="maxIdle" value="${jdbc.maxIdle}"/>
<property name="minIdle" value="${jdbc.minIdle}"/>
<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}"/>
<property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}"/>
<property name="testOnBorrow" value="${jdbc.testOnBorrow}"/>
<property name="validationQuery" value="${jdbc.validationQuery}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="databasesource"/>
</bean>
二、实现一个使用用户名为super,密码为123456的用户登录过程
2.1 添加User实体类
User.java代码如下:
 public class User {
private Long id;
private String username;
private String email;
private String password;
private Long credit;
private Date lastVisitTime;
private String lastVisitIp;
//setter、getter
}
2.2 实现对数据库的访问操作
新建UserDao.java,在UserDao类上添加@Repository注解
首先在该类中装配JdbcTemplate,使用@Autowired注解
@Autowired
private JdbcTemplate jdbcTemplate;
然后在里面添加一个根据用户名和密码查询用户的方法:
 public User findUser(final String username, final String password) {
String sql = "select id,user_name, credit from t_user_info where user_name = ? and password = ?";
User user = null;
try {
RowMapper<User> rm = ParameterizedBeanPropertyRowMapper.newInstance(User.class);
user = (User) jdbcTemplate.queryForObject(sql, new Object[]{username, password}, rm);
}catch (Exception e){
e.printStackTrace();
}
return user;
}
2.3 添加UserService.java类,代码如下:
 @Service("userService")
public class UserService {
@Autowired
UserDao userDao;
public User findUser(String username,String password){
return userDao.findUser(username,password);
} public int findUserCount(String username,String password){
return userDao.findUserCount(username,password);
} public boolean insertUser(User user){
return userDao.insertUser(user);
}
}
2.4 修改UserController.java的userIndex方法:
 @RequestMapping(value = "/index.html", method = RequestMethod.POST)
public ModelAndView userIndex(String username, String password) {
if (StringUtil.isEmpty(username) || StringUtil.isEmpty(password)) {
logger.error("用户名或密码为空");
ModelAndView modelAndView = new ModelAndView("/index");
modelAndView.addObject("error", "用户名或密码为空!");
return modelAndView;
} // int count = userService.findUserCount(username,password);
User user = userService.findUser(username, password);
if (user == null) {
logger.info("用户名或密码错误");
ModelAndView modelAndView = new ModelAndView("/index");
modelAndView.addObject("username", username);
modelAndView.addObject("error", "用户:" + username + "不存在或用户密码错误!");
return modelAndView;
}
ModelAndView mav = new ModelAndView("success");
mav.addObject("username", username);
mav.addObject("password", password);
logger.info("username : " + username + ", password : " + password);
return mav;
}
这样就实现了登录的简单流程。

Spring MVC篇二、使用JdbcTemplate进行数据库操作的更多相关文章

  1. Spring MVC 项目搭建 -5- spring security 使用数据库进行验证

    Spring MVC 项目搭建 -5- spring security 使用数据库进行验证 1.创建数据表格(这里使用的是mysql) CREATE TABLE security_role ( id ...

  2. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. Java框架之Spring MVC(二)

    一.Spring MVC 验证 JSR 303 是ajvaEE6 中的一项子规范 ,叫 Bean Validation 用于对javaBean中的字段进行校验. 官方的参考实现是: Hibernate ...

  4. Spring MVC篇一、搭建Spring MVC框架

    本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中ja ...

  5. Spring MVC(二)

    spring mvc工作流 1A)客户端发出http请求,只要请求形式符合web.xml 文件中配置的*.action的话,就由DispatcherServlet 来处理. 1B)Dispatcher ...

  6. dotNet程序员的Java爬坑之旅(三)之spring MVC篇一

    使用maven構建springMVC項目,開發工具為IDEA 一.構建Maven項目,模板為WebApp 二.在pom文件中配置SpringMvc配置(springMvc需要以來servlet ,如本 ...

  7. Java面试题(设计模式篇+Spring/Spring MVC篇)

    设计模式 88.说一下你熟悉的设计模式? 自行熟悉. 89.简单工厂和抽象工厂有什么区别? 简单理解简单工厂:对 一个对象的创建进行封装.抽象工厂:对 一组对象的创建进行封装. 比如生产 陶瓷马 和  ...

  8. Spring Mvc 笔记二之异常和文件上传

    spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常                1.局部异常对单个controller有效;(在controller类写一 ...

  9. 乐视开放平台技术架构-servlet和spring mvc篇

    在乐视风口浪尖的时候,敢于站出来说我是乐视的而不怕被打脸的,也就是我了.就算我以后不在乐视了,提起来在乐视工作过,我也还是挺骄傲的.因为这是一个有理想,敢拼敢干的公司.想起复仇者联盟里Fury指挥官的 ...

随机推荐

  1. DevExpress 关于alertControl 改变其大小

    private void alertControl1_FormLoad(object sender, DevExpress.XtraBars.Alerter.AlertFormLoadEventArg ...

  2. PHP之打开文件

    今天在看<PHP与MySQL程序设计(第四版)>(ISBN: 9787115253521)的时候,183页,如下图: 尝试:$file = fopen("F:\Books\投行笔 ...

  3. SQL Server 从数据库中查询去年的今天的数据的sql语句

    因为最近的项目的一个小功能需要实现当前数据和历史的今天做一个对比.在网上也查了很久,很多都是实现一个月内的,一年内的所有数据,昨晚突然就找到了下面的实现方法,在SQL Server2008中试了一下, ...

  4. oracleDBA-D1

    一.数据库备份 1.测试系统环境:win10 64位 企业版 测试数据库环境:oracle11gR2 2.步骤: I.首先以sysdba权限用户登录数据库,命令: SQL> connect  超 ...

  5. BMW

    tc金游世界单登陆允许服务 tc金游世界注册机允许服务 tc金游辅助智能游戏清分允许服务[智能游戏] tc金游辅助挂机王清分允许服务[游辅助挂机清分] tc金游世界王自动打牌允许服务[自动打牌] tc ...

  6. 第一次使用UML的感觉

    刚开始接触的时候,其实我内心是拒绝的,因为感觉这种软件之前接触过,觉得就是相当于思维导图那种的. 可当自己使用的时候,觉得大纲总体上是类似是规划方向的,可是细节却让人深思,用什么图标,特别是用什么线, ...

  7. PHP中的一些常用正则表达式

    匹配表单验证 验证账号,字母开头,允许 5-16 字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z ...

  8. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  9. 【Android】一种提高Android应用进程存活率新方法

    [Android]一种提高Android应用进程存活率新方法 SkySeraph Jun. 19st 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph ...

  10. TextInputLayout的注意事项

    1.依赖文件build.gradle 加入 compile 'com.android.support:design:23.4.0'compile 'com.marlonmafra.android.wi ...