Spring MVC篇二、使用JdbcTemplate进行数据库操作
上一篇只是一个简单的Spring MVC框架,接下来添加一些跟数据库的交互。
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
<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>
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
}
@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;
}
@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);
}
}
@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进行数据库操作的更多相关文章
- Spring MVC 项目搭建 -5- spring security 使用数据库进行验证
Spring MVC 项目搭建 -5- spring security 使用数据库进行验证 1.创建数据表格(这里使用的是mysql) CREATE TABLE security_role ( id ...
- Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java框架之Spring MVC(二)
一.Spring MVC 验证 JSR 303 是ajvaEE6 中的一项子规范 ,叫 Bean Validation 用于对javaBean中的字段进行校验. 官方的参考实现是: Hibernate ...
- Spring MVC篇一、搭建Spring MVC框架
本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中ja ...
- Spring MVC(二)
spring mvc工作流 1A)客户端发出http请求,只要请求形式符合web.xml 文件中配置的*.action的话,就由DispatcherServlet 来处理. 1B)Dispatcher ...
- dotNet程序员的Java爬坑之旅(三)之spring MVC篇一
使用maven構建springMVC項目,開發工具為IDEA 一.構建Maven項目,模板為WebApp 二.在pom文件中配置SpringMvc配置(springMvc需要以來servlet ,如本 ...
- Java面试题(设计模式篇+Spring/Spring MVC篇)
设计模式 88.说一下你熟悉的设计模式? 自行熟悉. 89.简单工厂和抽象工厂有什么区别? 简单理解简单工厂:对 一个对象的创建进行封装.抽象工厂:对 一组对象的创建进行封装. 比如生产 陶瓷马 和 ...
- Spring Mvc 笔记二之异常和文件上传
spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常 1.局部异常对单个controller有效;(在controller类写一 ...
- 乐视开放平台技术架构-servlet和spring mvc篇
在乐视风口浪尖的时候,敢于站出来说我是乐视的而不怕被打脸的,也就是我了.就算我以后不在乐视了,提起来在乐视工作过,我也还是挺骄傲的.因为这是一个有理想,敢拼敢干的公司.想起复仇者联盟里Fury指挥官的 ...
随机推荐
- Python 开源网上商城项目
django-oscar https://github.com/django-oscar/django-oscar#screenshots django-shop https://github.c ...
- linux c system返回值问题总结
先看例子 #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <sys ...
- 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法
今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...
- java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0
java 继承使用关键字extends 继承的作用:减少代码量,优化代码 继承的使用注意点: 1子类不能继承父类的私有变量 2.子类不能继承父类的构造方法 3.子类在调用自己的构造方法时 会默认调 ...
- C++根据图片url下载图片
需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...
- html表单提交方式
xml 表单提交方式: * 使用submit提交 <form> 要提交的数据 <input type="submit" /'> </form> ...
- 病毒四度升级:安天AVL Team揭露一例跨期两年的电信诈骗进化史
自2014年9月起,安天AVL移动安全团队持续检测到一类基于Android移动平台的间谍类病毒,病毒样本大多伪装成名为"最高人民检察院"的应用.经过反编译逆向分析以及长期的跟踪调查 ...
- ppmoney
build/config.js 改 8080端口 build/webpack.dev.conf.js 改路径简写 alias:{ 'vux-components':'vux/dist/componen ...
- Oracle获取干净的建表DDL语句,不含其它存储、表空间、段属性
早上一个同事资讯怎么获取到建表语句而且是不带存储那种SQL.Oracle自己提供了一个函数DBMS_METADATA.GET_DDL,但是获取到的建表语句含有存储.表空间.以及一些其他段的属性.如图: ...
- svn: how to set the executable bit on a file?
http://stackoverflow.com/questions/17846551/svn-how-to-set-the-executable-bit-on-a-file svn uses pro ...