Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。
Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。
其次,方便扩展。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。
Druid内置提供了用于监控的StatFilter、日志输出的Log系列Filter、防御SQL注入攻击的WallFilter。
阿里巴巴内部实现了用于数据库密码加密的CirceFilter,以及和Web、Spring关联监控的DragoonStatFilter。
第三,Druid集合了开源和商业数据库连接池的优秀特性,并结合阿里巴巴大规模苛刻生产环境的使用经验进行优化。
创建一个登陆页面,输入username和password,如果和数据库对应,则跳转的success.jsp,否则跳转到error.jsp
此项目是在我以前的SSM整合的代码该的,所以项目名称有些对不上,根据你tomcat下的名称就好
点击打开链接下载项目代码
http://localhost:8080/SSMMaven/druid/sql.html
和Druid有关的配置:
web.xml(添加一个Filter和servlet)
修改pom.xml(添加Druid依赖)
修改Spring的配置文件applicationContext.xml中的dataSource
4.0.0
com.imooc
SSMMaven
0.0.1-SNAPSHOT
war
UTF-8
UTF-8
1.8
junit
junit
4.11
test
ch.qos.logback
logback-classic
1.1.1
commons-io
commons-io
2.2
taglibs
standard
1.1.2
jstl
jstl
1.2
compile
javax.servlet
javax.servlet-api
3.1.0
compile
mysql
mysql-connector-java
5.1.39
com.alibaba
druid
1.0.7
org.springframework
spring-core
4.3.10.RELEASE
org.springframework
spring-beans
4.3.10.RELEASE
org.springframework
spring-web
4.3.10.RELEASE
org.springframework
spring-jdbc
4.3.10.RELEASE
org.springframework
spring-webmvc
4.3.10.RELEASE
org.mybatis
mybatis
3.4.1
org.mybatis
mybatis-spring
1.3.0
SELECT 1
配置SpringMVC的配置文件
MyBatis的配置文件
jdbc.user=root
jdbc.password=root
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/text
jdbc.initPoolSize=5
jdbc.maxPoolSize=10
#...
SSMMaven
index.jsp
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
characterEncodingFilter
/*
springDispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext-mvc.xml
1
springDispatcherServlet
/
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
DruidWebStatFilter
com.alibaba.druid.support.http.WebStatFilter
exclusions
*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
DruidWebStatFilter
/*
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
package com.imooc.dao;
public interface UserMapper {
//传入username返回password
String selectPassword(String username);
}
package com.imooc.entity;
public class User {
private Integer id;
private String username;
private String password;
public User() {
super();
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
/**
* @return the id
*/
public Integer getId() {
return id;
}
/**
* @param id
* the id to set
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username
* the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password
* the password to set
*/
public void setPassword(String password) {
this.password = password;
}
}
package com.imooc.handler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.imooc.entity.User;
import com.imooc.service.UserService;
@Controller
public class LoginHandler {
@Autowired
private UserService userService;
@RequestMapping("/login.action")
public String login(User user){
String password=userService.login(user.getUsername());
if(!user.getPassword().equals(password)){
return "error";
}else{
return "success";
}
}
/**
* @return the userService
*/
public UserService getUserService() {
return userService;
}
/**
* @param userService the userService to set
*/
public void setUserService(UserService userService) {
this.userService = userService;
}
public LoginHandler() {
System.out.println("------------->LoginController");
}
}
package com.imooc.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.imooc.dao.UserMapper;
@Service
public class UserService {
@Autowired
private UserMapper userDao;
public String login(String username){
return userDao.selectPassword(username);
}
public UserService() {
super();
}
/**
* @return the userDao
*/
public UserMapper getUserDao() {
return userDao;
}
/**
* @param userDao the userDao to set
*/
public void setUserDao(UserMapper userDao) {
this.userDao = userDao;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Insert title here
success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Insert title here
error.jsp