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 基本过程以及封装数据库工具类

一个JDBC封装工具类

Java 中封装JDBC连接到JDBCUtils工具类的详解

获取数据库连接对象的工具类

JDBC入门之一--连接Mysql实验

JDBC-自定义数据库工具类(DBService)