JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理 附带:Navicat Premium 11.0.12中文破解版.zip(下载)mysql数据库工具
先写一个工具类,有实现MySQL数据库连接的方法,和关闭数据库连接、关闭ResultSet 结果集、关闭PreparedStatement 的方法。代码如下:
package com.swift; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DBUtil {
//连接MySQL数据库工具
public static Connection getConn() {
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
try {
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?user=root&password=root");
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
//关闭数据库连接、sql连接、结果集
public static void closeAll(Connection conn,PreparedStatement ps,ResultSet rs) {
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
接下来实现登录,已有帐号在数据库中检验存在与否。代码如下:
package com.swift; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class JDBC_Login { public static void main(String[] args) {
User user=new User("swift","abc123");
if(login(user)) {
System.out.println("成功");
}else {
System.out.println("失败");
} } public static boolean login(User user) { Connection conn=DBUtil.getConn();
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=conn.prepareStatement("select * from sw_user where username=? and password=?");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
rs=ps.executeQuery();
if(rs.next()) {
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBUtil.closeAll(conn, ps, rs);
return false;
}
}
实现在数据库增加数据,数据库表sw_user中插入新数据,代码如下:
package com.swift; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; public class JDBC_Add { public static void main(String[] args) {
User user=new User("duoduo","abc123");
if(add(user)) {
System.out.println("帐号注册成功");
}else {
System.out.println("注册失败");
}
} private static boolean add(User user) { Connection conn=DBUtil.getConn();
PreparedStatement ps=null;
try {
ps=conn.prepareStatement("insert into sw_user(username,password) values(?,?)");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
int count=ps.executeUpdate();
if(count==1) {
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBUtil.closeAll(conn, ps, null);
return false;
}
}
实现在数据库中删除数据,数据库表sw_user中删除已存在的数据,代码如下:
package com.swift; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; public class JDBC_Delete { public static void main(String[] args) {
User user=new User("duoduo","abc123");
if(JDBC_Login.login(user)) {
if(delete(user)) {
System.out.println("帐号注销成功");
}else {
System.out.println("注销失败");
}
}else {
System.out.println("账户不存在");
}
} private static boolean delete(User user) { Connection conn=DBUtil.getConn();
PreparedStatement ps=null;
try {
ps=conn.prepareStatement("delete from sw_user where username=? and password=?");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
int count=ps.executeUpdate();
if(count==1) {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
DBUtil.closeAll(conn, ps, null);
return false;
}
}
实现在数据库中修改数据,数据库表sw_user中更新已存在的数据,代码如下:
package com.swift; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; public class JDBC_Update { public static void main(String[] args) {
User user=new User("swift","abc123");
String setPassword="abc12345";
if(JDBC_Login.login(user)) {
if(update(user,setPassword)) {
System.out.println("密码修改成功");
}else {
System.out.println("修改失败");
}
}else {
System.out.println("账户不存在");
} } private static boolean update(User user,String setPassword) { Connection conn=DBUtil.getConn();
PreparedStatement ps=null;
try {
ps=conn.prepareStatement("update sw_user set password=? where username=?");
ps.setString(1, setPassword);
ps.setString(2, user.getUsername());
int count=ps.executeUpdate();
if(count==1) {
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
DBUtil.closeAll(conn, ps, null);
return false;
}
}
工具类的使用可以提高代码的复用性,提高代码阅读性便于修改。
附带:Navicat Premium 11.0.12中文破解版.zip(下载)mysql数据库工具
链接: https://pan.baidu.com/s/1jId5hHW 密码: aprj
sw_database数据库中表sw_user字段的设置如图:

JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理 附带:Navicat Premium 11.0.12中文破解版.zip(下载)mysql数据库工具的更多相关文章
- 第二百七十七节,MySQL数据库-数据表、以及列的增删改查
MySQL数据库-数据表.以及列的增删改查 1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNO ...
- node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录
Node + mysql 实现基础的增删改查,以及性能测试. 网上有很多这样的例子,我也是找来学习的. 感觉node对mysql的操作非常简单,也很实用,比如自带防止sql注入的功能,一开始还担心注入 ...
- GZFramwork数据库层《一》普通表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCode ...
- GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- 招新系统(jsp+servlet,实现简略前端网页注册登录+后台增删改查,分学生和管理员,Java语言,mysql数据库连接,tomcat服务器)
生活不只是眼前的苟且,还有诗和远方. 架构说明: 要求是采用MVC模式,所以分了下面的几个包,但是由于是第一次写,可能分的也不是很清楚: 这个是后台部分的架构: 这个是前端的的展示: (那个StuLo ...
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
- MySQL数据库的权限问题操作及基本增删改查操作
前面我们讲了mysql的基本内容,现在我们详细的了解一下mysql中的具体操作. what's the SQl SQL(Structured Query Language 即结构化查询语言) SQL语 ...
- Java学生信息增删改查(并没用数据库)
一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...
随机推荐
- thinkphp5.1使用支付宝接口(沙箱环境)
接口文件以及沙箱的测试账号可以去支付宝开发中心获取,下面给出一个简单地例子 我新建了一个控制器Pay用来专门做支付 <?phpnamespace app\index\controller; us ...
- emmet缩写大全
Syntax Child: > nav>ul>li <nav> <ul> <li></li> </ul> </n ...
- 5、python数据类型之元组(tuple)
元组 元组和列表最大的区别是元组中的元素固定,元组不能修改,所以不能对元组进行增.删.改 1.创建 tu = (11,22,33) tu = tuple(11,22,33) tu = tuple([] ...
- python3.6下安装wingIDE破解方法
1.wingIDE的下载: 在电脑配置好的python环境情况下,去官网下载wingIDE6,按照一般方式安装好.安装好它会自动提示你是否激活,你点击激活.然后到下一步. 2.脚本的制作: impor ...
- CodeForces - 589A
题目链接:http://codeforces.com/problemset/problem/589/A Polycarp has quite recently learned about email ...
- Java面向对象_常用类库api——对象比较器
概念:对两个或多个数据项进行比较,以确定他们是否相等,或确定他们之间的大小关系及排列顺序成为比较. 1.Comparable接口: 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然 ...
- (转)CentOS最大文件描述符限制更改
CentOS最大文件描述符限制更改 原文:https://www.cnblogs.com/TonyXiaoClub/p/4747736.html 系统级的限制:/proc/sys/fs/file-ma ...
- 浅谈堆-Heap(一)
应用场景和前置知识复习 堆排序 排序我们都很熟悉,如冒泡排序.选择排序.希尔排序.归并排序.快速排序等,其实堆也可以用来排序,严格来说这里所说的堆是一种数据结构,排序只是它的应用场景之一 Top N的 ...
- 程序员从初级到中级10个秘诀——摘自CSDN
程序员从初级到中级10个秘诀 1.学习先进的搜索技术.手段和及策略 2.帮助别人 教别人始终是学习一切东西的最好方法之一.相对而言,由于你在开发领域还是个新手,认为自己没什么可教给人家的,这可以理解. ...
- 斗鱼扩展--拦截替换js_辅助抢宝箱(六)
代码可以在 https://pan.baidu.com/s/1uN120-18hvAzELpJCQfbXA 处下载 说思路 页面加载一段时间后,判断页面有没有宝箱,如果没有就停止注入js,如果有则 ...