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 ...
随机推荐
- 《SQL 进阶教程》 case:练习题1-1-3 用 ORDER BY 指定顺序进行排序
select name from greatestsORDER BY case when name ='B' then 1 when name ='A' then 2 when name ='D' t ...
- 73th LeetCode Weekly Contest Domino and Tromino Tiling
We have two types of tiles: a 2x1 domino shape, and an "L" tromino shape. These shapes may ...
- 【补档】Pycharm的一些配置
新建和创建文件就不必说了吧~ 运行这里原本是灰色的,我们点旁边的三角形 点绿色+号,python Name:随便写 Script:选择一个py文件~,然后OK,就可以运行了
- Win7 桌面图标消失
win7 桌面图标消失或任务栏也消失,可以按Ctrl+Shift+Esc键调出任务管理器,然后点击文件——新建任务,输入explorer.
- gogs迁移
windows->linux 之前gogs放在windows server2016中,需要迁移至linux docker中. 首先拉取gogs镜像 docker pull gogs/gogs 然 ...
- Codeforces Beta Round #79 (Div. 1 Only) B. Buses 树状数组
http://codeforces.com/contest/101/problem/B 给定一个数n,起点是0 终点是n,有m两车,每辆车是从s开去t的,我们只能从[s,s+1,s+2....t-1 ...
- Storm概念学习系列之Blot消息处理者
不多说,直接上干货! Bolt消息处理者 认识了消息源Spout和消息的数据存储元组Tuple,接下来了解消息的处理者Bolt.Bolt是接收Spout发出元组Tuple后处理数据的组件,所有的消息处 ...
- [PHP]php发布和调用Webservice接口的案例
分两步走:1.服务端发布接口;2.客户端调用方法 1.服务端发布接口: 需要nusoap工具,下载地址:http://sourceforge.net/projects/nusoap/ 下载完和要发布接 ...
- [luogu 3369]普通平衡树(fhq_treap)
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1.若有多 ...
- Table中采用JQuery slideToggle效果的问题
需求:用JQuery实现,点击最上边的粗加号时,对所有含有子表的Tr进行展开,点击 + 号时,只对当前Tr的下一个tr内容的动态隐藏和显示: 问题:JQuery的slideToggle() slide ...