JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理相关的知识,希望对你有一定的参考价值。
先写一个工具类,有实现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; } }
工具类的使用可以提高代码的复用性,提高代码阅读性便于修改。
以上是关于JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理的主要内容,如果未能解决你的问题,请参考以下文章
JDBC编程Java 连接 MySQL 基本过程以及封装数据库工具类