1、首先新建基础连接类BaseDao,在这里配置链接的数据库名称,用户名以及密码,以及执行读与写操作的父方法,代码如下:

package com.demo.dao;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List; /**
* 数据库操作类
* @author zhangdi
*
*/ public class BaseDao { //数据库地址“jdbc:mysql://服务器域名:端口号/数据库名称”
private String url = "jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=utf-8";
//用户名
private String user = "root";
//用户密码
private String pwd = "zhangdi";
//数据库链接对象
private java.sql.Connection conn;
//数据库命令执行对象
private PreparedStatement pstmt;
//数据库返回结果
private java.sql.ResultSet rs; //静态代码块
static{
//1、加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) { e.printStackTrace();
}
} //2、创建连接
private void getConnection(){
if(conn == null){
try {
conn = DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
e.printStackTrace();
}
}
} //执行读操作方法
public java.sql.ResultSet executeQuery(String query,
List<Object> params){
getConnection();
try {
//3、创建命令执行对象
pstmt = conn.prepareStatement(query);
//4、执行
if(params!=null && params.size()>0){
for(int i=0;i<params.size();i++){
pstmt.setObject(i+1, params.get(i));
}
}
rs = pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
} //执行写操作方法
public int executeUpdate(String query,
List<Object> params){
int result = 0;
getConnection();
try {
//3、创建命令执行对象
pstmt = conn.prepareStatement(query);
//4、执行
if(params!=null && params.size()>0){
for(int i=0;i<params.size();i++){
pstmt.setObject(i+1, params.get(i));
}
}
//5、处理结果
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//6、释放资源
this.close();
}
return result;
} //关闭资源
public void close(){
try {
if(rs!=null){
rs.close();
rs = null;
}
if(pstmt!=null){
pstmt.close();
pstmt = null;
}
if(conn!=null){
conn.close();
conn = null;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

2、第二步,就创建一个数据库操作接口类,采用面向接口的开发思想以便于后期维护,代码如下:

package com.demo.dao;

import java.util.List;

import com.demo.entity.User;

public interface UserDao {
public int addUser(User user);
public List<User> findUsers();
public List<User> findUsers(String name);
public List<User> findUsersByDept(String dept);
public List<User> findUsersByRole(String role);
public int delUserById(int id);
public int updateUserById(int id,User role);
public boolean checkUser(String name);
}

3、第三步创建数据库操作对象接口实现类并继承数据库操作基础类:

package com.demo.daoimpl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import com.demo.dao.BaseDao;
import com.demo.dao.DeptDao;
import com.demo.dao.RoleDao;
import com.demo.dao.UserDao;
import com.demo.entity.User; public class UserDaoImpl extends BaseDao implements UserDao {
DeptDao deptDao = new DeptDaoImpl();
RoleDao roleDao = new RoleDaoImpl();
//添加一条用户信息
@Override
public int addUser(User user) {
String update = "insert into users(account,pwd,NAME,dept,role,phone,qq,email,remark)values(?,?,?,?,?,?,?,?,?)";
List<Object> params = new ArrayList<Object>();
params.add(user.getAccount());
params.add(user.getPwd());
params.add(deptDao.returnDeptIdByName(user.getDept()));
params.add(roleDao.returnRoleIdByName(user.getRole()));
params.add(user.getRole());
params.add(user.getPhone());
params.add(user.getQq());
params.add(user.getEmail());
params.add(user.getMark());
return this.executeUpdate(update, params);
} @Override
public List<User> findUsers() {
List<User> result = new ArrayList<User>();
String query = "select id,account,pwd,NAME,dept,role,phone,qq,email,remark from users";
ResultSet rs = this.executeQuery(query, null);
try {
while(rs.next()){
int id = rs.getInt("id");
String account = rs.getString("account");
String pwd = rs.getString("pwd");
String name = rs.getString("NAME");
String dept = deptDao.returnDeptNameById(rs.getInt("dept"));
String role = roleDao.returnRoleNameById(rs.getInt("role"));
String phone ="11";//+ rs.getInt("phone");
String qq = "22";//+rs.getInt("qq");
String email = rs.getString("email");
String mark = rs.getString("remark");
User user = new User(id, account,pwd,name,dept,role,phone,qq,email,mark);
result.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.close();
}
return result;
} @Override
public List<User> findUsersByDept(String dept) {
List<User> result = new ArrayList<User>();
List<Object> params = new ArrayList<Object>();
String query = "select id,account,pwd,NAME,dept,role,phone,qq,email,remark from users where dept =?";
if(dept!=null&&!"".equals(dept)){
int d = deptDao.returnDeptIdByName(dept);
params.add(d);
}
ResultSet rs = this.executeQuery(query, params);
try {
while(rs.next()){
int id = rs.getInt("id");
String account = rs.getString("account");
String pwd = rs.getString("pwd");
String name = rs.getString("NAME");
String deptName = deptDao.returnDeptNameById(rs.getInt("dept"));
String role = roleDao.returnRoleNameById(rs.getInt("role"));
String phone = Integer.toString(rs.getInt("phone"));
String qq = Integer.toString(rs.getInt("qq"));
String email = rs.getString("email");
String mark = rs.getString("remark");
User user = new User(id, account,pwd,name,deptName,role,phone,qq,email,mark);
result.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.close();
}
return result;
} @Override
public List<User> findUsersByRole(String role) {
List<User> result = new ArrayList<User>();
List<Object> params = new ArrayList<Object>();
String query = "select id,account,pwd,NAME,dept,role,phone,qq,email,remark from users where role =?";
if(role!=null&&!"".equals(role)){
int d = roleDao.returnRoleIdByName(role);
params.add(d);
}
ResultSet rs = this.executeQuery(query, params);
try {
while(rs.next()){
int id = rs.getInt("id");
String account = rs.getString("account");
String pwd = rs.getString("pwd");
String name = rs.getString("NAME");
String deptName = deptDao.returnDeptNameById(rs.getInt("dept"));
String roleName = roleDao.returnRoleNameById(rs.getInt("role"));
String phone = Integer.toString(rs.getInt("phone"));
String qq = Integer.toString(rs.getInt("qq"));
String email = rs.getString("email");
String mark = rs.getString("remark");
User user = new User(id, account,pwd,name,deptName,roleName,phone,qq,email,mark);
result.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.close();
}
return result;
} @Override
public int delUserById(int id) {
String query = "delete from users where id = ?";
List<Object> params = new ArrayList<Object>();
params.add(id);
return this.executeUpdate(query, params);
} @Override
public int updateUserById(int id, User role) {
// TODO Auto-generated method stub
return 0;
} @Override
public boolean checkUser(String name) {
List<User> list = new ArrayList<User>();
list = this.findUsers();
for(User u:list){
if(u.getName().equals(name)){
return true;
}
}
return false;
} @Override
public List<User> findUsers(String name) {
List<User> result = new ArrayList<User>();
List<Object> params = new ArrayList<Object>();
String query = "select id,account,pwd,NAME,dept,role,phone,qq,email,remark from users where 1=1";
if(name!=null&&!"".equals(name)){
query = query+" and NAME like ?";
params.add("%"+name+"%");
}
ResultSet rs = this.executeQuery(query, params);
try {
while(rs.next()){
int id = rs.getInt("id");
String n = rs.getString("name");
String desc = rs.getString("desc");
User user = new User();
result.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.close();
}
return result;
} }

这里面role与dept也是两个数据库操作类,大家可以忽略,其中User为实体类,代码如下:

package com.demo.entity;

public class User {
private int id;
private String account;
private String pwd;
private String name;
private String dept;
private String role;
private String phone;
private String qq;
private String mark;
private String email; public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(int id, String account, String pwd, String name, String dept,
String role, String phone, String qq, String mark, String email) {
super();
this.id = id;
this.account = account;
this.pwd = pwd;
this.name = name;
this.dept = dept;
this.role = role;
this.phone = phone;
this.qq = qq;
this.mark = mark;
this.email = email;
}
public User(String account, String pwd, String name,int id) {
super();
this.account = account;
this.pwd = pwd;
this.name = name;
this.id = id;
} }

至此,web后台与mysql数据库的链接就完成了,如果要执行对数据库的操作就调用数据库操作类即可。

注:这里需要引用的jar包为:

这些为项目基础jar包:

javaweb配置连接mysql数据库的更多相关文章

  1. IntelliJ IDEA通过Spring配置连接MySQL数据库

    先从菜单View→Tool Windows→Database打开数据库工具窗口,如下图所示: 点击Database工具窗口左上角添加按钮"+",选择Import from sour ...

  2. IntelliJ IDEA手动配置连接MySQL数据库

    先从菜单View→Tool Windows→Database打开数据库工具窗口,如下图所示: 点击Database工具窗口左上角添加按钮"+",选择数据库类型,这里以MySQL为例 ...

  3. django新建项目,连接mysql数据库

    安装django,进入Django目录,运行 python setup.py install 在workplace目录下新建一个名为site01的项目: cd workplacedjango-admi ...

  4. JavaWeb连接MySQL数据库

    JavaWeb连接MySQL数据库 JavaWeb连接MySQL数据库的方式有很多,首先我们讲解JDBC的配置方法 一.JDBC的配置方法 1.什么是JDBC 什么是JDBC嘞?JDBC代表Java数 ...

  5. C连接MySQL数据库开发之Windows环境配置及测试

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:\Program Files\MySQL\MySQL Server 5.5 二.配置工程环境 ...

  6. Myeclipes连接Mysql数据库配置

    相信大家在网站上也找到了许多关于myeclipes如何连接mysql数据库的解决方案,虽然每一步都按照他的步骤来,可到最后还是提示连接失败,有的方案可能应个人设备而异,配置环境不同导致.经过个人多方探 ...

  7. jmeter中通过jdbc方式连接mysql数据库的配置参考

    jmeter中通过jdbc方式连接mysql数据库的配置参考: Database URL=jdbc:mysql://ip:port/dbname?useUnicode=true&allowMu ...

  8. jmeter连接mysql数据库配置

    用jmeter连接mysql数据库,在配置的过程中遇到了几个坑,跟大家分享一下,避免人人踩坑~~ 关于驱动包:大部分时候是需要下载与服务器的mysql相同版本的jar包~~ 关于驱动包路径:不是所有的 ...

  9. Django连接MySQL数据库配置

    1.自己手动创建数据库 create database 数据库名; # 如: create database bms character set utf8; # 授权访问: grant all pri ...

随机推荐

  1. servlet容器:jetty,Tomcat,JBoss

    一.几款servlet容器对比:jetty,Tomcat,JBoss 二.JBOSS相关问题解决 1.JBOSS下载安装 2.处理jboss-as-7.1.1.Final与jdk1.8及1.8以上版本 ...

  2. Golang字符串处理以及文件操作

    一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com ...

  3. vue devtools无法使用

    vue devtools无法使用 一.总结 一句话总结: 没显示vue devtools调试工具的原因是用了生产环境的版本或是压缩的vue版本,或是没有勾选:允许访问文件网址 二.vue调试工具Dev ...

  4. Python 自学笔记(一)

    1.打印函数 1-1.print()函数 1-1-1.引号的用法 一.单引号与双引号:直接输出 二.三引号:保留原来的格式 1-2.转义字符 转义字符是一种特殊的字符常量,在编程语言中,我们用转义字符 ...

  5. 如果你的电脑想升级并且支持m.2接口

      便宜啊,赶紧入手.   文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  6. RGBD-SLAM(一)——深度摄像机

    一.根据其工作原理主要分为三类: 1. 双目方案: (1) 原理: http://blog.csdn.net/shenziheng1/article/details/52883536 (2)产品: Z ...

  7. BOM相关方法及属性

    browser objec tmodel浏览器对象模型 BOM里面的方法大多在window对象底下,window代表窗口,也就是说,在BOM里面大多调用window下面的东西. 1.open方法是wi ...

  8. OpenCV学习笔记(2)——如何用OpenCV处理视频

    如何用OpenCV处理视频 读取视频文件,显示视频,保存视频文件 从摄像头获取并显示视频 1.用摄像头捕获视频 为了获取视频,需要创建一个VideoCapature对象.其参数可以是设备的索引号,也可 ...

  9. [js]vue小结

    vue基础 - vue是一个渐进式框架 vue (视图渲染) components(路由机制) vue-router(路由管理) vuex (状态管理) vuecli (构建工具) - 库和框架 库如 ...

  10. 使用badusb“烧鹅”制作“百度U盘”

    HID攻击:USB HID攻击技术是一种利用USB接口伪造用户击键行为实施是攻击的方式.通过恶意USB HID设备连接主机后发送伪造的按键命令,篡改系统设置.运行恶意功能.这种技术区别于传统的USB攻 ...