Spring MVC篇二、使用JdbcTemplate进行数据库操作

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

一、添加jdbc相关配置

在maven中添加相关依赖后,配置数据库访问参数及数据源。数据库参数使用配置文件,代码如下:

jdbc.properties

 1 jdbc.driver=com.mysql.jdbc.Driver
 2 jdbc.url=jdbc:mysql://localhost:3306/sampledb
 3 jdbc.username=root
 4 jdbc.password=123456
 5 jdbc.initialSize=5
 6 jdbc.maxActive=10
 7 jdbc.minIdle=5
 8 jdbc.maxIdle=10
 9 jdbc.timeBetweenEvictionRunsMillis=3600000
10 jdbc.minEvictableIdleTimeMillis=3600000
11 jdbc.testOnBorrow=true
12 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代码如下:

 1 public class User {
 2     private Long id;
 3     private String username;
 4     private String email;
 5     private String password;
 6     private Long credit;
 7     private Date lastVisitTime;
 8     private String lastVisitIp;
 9     //setter、getter
10 }

2.2 实现对数据库的访问操作

新建UserDao.java,在UserDao类上添加@Repository注解

首先在该类中装配JdbcTemplate,使用@Autowired注解

@Autowired
private JdbcTemplate jdbcTemplate;

然后在里面添加一个根据用户名和密码查询用户的方法:

 1 public User findUser(final String username, final String password) {
 2         String sql = "select id,user_name, credit from t_user_info where user_name = ? and password = ?";
 3         User user = null;
 4         try {
 5             RowMapper<User> rm = ParameterizedBeanPropertyRowMapper.newInstance(User.class);
 6             user = (User) jdbcTemplate.queryForObject(sql, new Object[]{username, password}, rm);
 7         }catch (Exception e){
 8             e.printStackTrace();
 9         }
10         return user;
11     }

2.3 添加UserService.java类,代码如下:

 1 @Service("userService")
 2 public class UserService {
 3     @Autowired
 4     UserDao userDao;
 5     public User findUser(String username,String password){
 6         return userDao.findUser(username,password);
 7     }
 8
 9     public int findUserCount(String username,String password){
10         return userDao.findUserCount(username,password);
11     }
12
13     public boolean insertUser(User user){
14         return userDao.insertUser(user);
15     }
16 }

2.4 修改UserController.java的userIndex方法:

 1 @RequestMapping(value = "/index.html", method = RequestMethod.POST)
 2     public ModelAndView userIndex(String username, String password) {
 3         if (StringUtil.isEmpty(username) || StringUtil.isEmpty(password)) {
 4             logger.error("用户名或密码为空");
 5             ModelAndView modelAndView = new ModelAndView("/index");
 6             modelAndView.addObject("error", "用户名或密码为空!");
 7             return modelAndView;
 8         }
 9
10 //        int count = userService.findUserCount(username,password);
11         User user = userService.findUser(username, password);
12         if (user == null) {
13             logger.info("用户名或密码错误");
14             ModelAndView modelAndView = new ModelAndView("/index");
15             modelAndView.addObject("username", username);
16             modelAndView.addObject("error", "用户:" + username + "不存在或用户密码错误!");
17             return modelAndView;
18         }
19         ModelAndView mav = new ModelAndView("success");
20         mav.addObject("username", username);
21         mav.addObject("password", password);
22         logger.info("username : " + username + ", password : " + password);
23         return mav;
24     }

这样就实现了登录的简单流程。

时间: 2024-12-28 11:37:27

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

spring mvc配置 + dbcp数据源+jdbcTemplate

spring mvc配置 + dbcp数据源+jdbcTemplate 最近打算仔细研究一下spring,就从用了2年的spring mvc开始吧,初学者可以看看,大神就pass好了,呵呵.... 首先去spring官网下载完整的spring包,包含libs, docs和schema,spring的版本是3.2.4 我们来看一下spring的lib包都有那些内容: 上面图片中除红色框内的两个jar其它都是spring官方提供的jar包,红色框内的jar我们在配置事务的时候会用到,我们一会再说.我

spring mvc(二)开发环境搭建和HelloWorld程序

Spring MVC3在controller和视图之间传递参数的方法: 一, 从controller往视图传递值, controller---->视图 1)简单类型,如int, String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试). (而用@RequestParam("name")注解,可以从视图上,或地址中加?name=***传递到controller方法里) 2)可以用Map<String, Object>,其键值可以在页面上

Spring MVC篇一、搭建Spring MVC框架

本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中java文件夹是sources文件夹,resources是资源文件夹.spring文件夹里是Spring上下文配置和Spring MVC配置文件. 需要注意的是,项目自动生成以后会有两个web文件目录,一个是web文件夹(我这里已经删除了),另一个是默认的webapp文件夹.我这里使用默认的目录,也就是

SSM框架-----Spring MVC篇

二.Spring MVC 1.1 spring MVC是什么? spring MVC:是一个基于MVC架构,简化的web应用程序开发的框架(属于Spring框架的一部分),通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,每一个请求最先访问的都是DispatcherServlet,DispatcherSe

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

spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常                1.局部异常对单个controller有效;(在controller类写一个处理异常的方法) @ExceptionHandler(value={UserException.class}) public String handlerExceptionTest(UserException e ,HttpServletRequest request){ request.setA

Spring MVC(二)基于标注的MVC

1.基于标注的Spring MVC 1.1 建立一个项目导入jar包(ioc aop mvc) 拷贝容器对应的配置文件到src下 在WEB-INF建立一个login.jsp 1.2 在web.xml 配置一个DispatcherServlet 并且使用 初始化参数 contextConfigLocation 关联容器对应的配置文件 1.3 开启基于标注 Spring MVC 开启组件扫描 <context:component-scan base-package="" />

spring-通过JdbcTemplate进行数据库操作-代码实现,无配置文件

一.创建spring项目    项目名称:spring101301二.在spring项目中添加相关的jar    1.在项目上创建lib目录        /lib    2.在lib目录下添加spring支持的jar包        commons-logging.jar        junit-4.10.jar        log4j.jar        mysql-connector-java-5.1.18-bin.jar        spring-beans-3.2.0.RELE

Python之路【第九篇】堡垒机基础&amp;数据库操作

复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:utf-8 -*- __author__ = 'luo_t' import paramiko ''' 第一种方法 ''' ssh = paramiko.SSHClient() #创建SSH对象 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy

Spring MVC动态切换数据源(多数据库类型)

最近由于项目需求,需要将Sql Server 和 Mysql 两种数据库整合到一个项目,项目的用到的框架是SSM. 因此尝试了利用AOP切面来切每次执行的Servcie方法,根据Service所在的包名来实现数据源自动切换. 1.项目架构如下: 2.在com.jiefupay.database包中建立四个类: 其中 DataSourceContextHolder.java类源码如下: package com.jiefupay.datebase; public class DataSourceCo