m0_59855477 2021-07-01 10:26 采纳率: 50%
浏览 29
已采纳

java和数据库连接问题

使用图形界面工具实现如图界面,并使用数据库连接技术连接mysql数据库,输入12位账号和小于8位密码后,点击注册按钮添加数据道数据库,点击取消按钮清空输入道数据

img

  • 写回答

3条回答 默认 最新

  • 404警告 2021-07-01 10:33
    关注

    需要驱动私我发给你 连接数据库代码如下 已封装可直接调用:

    package com.cor.util;
    
    import com.sun.rowset.CachedRowSetImpl;
    
    import javax.sql.rowset.CachedRowSet;
    import java.sql.*;
    
    /**
     * @author DBUtil连接数据库
     */
    public class DBUTil {
    
        /**
         * @author DBUtil连接数据库 全局使用常量driver,driverManager
         */
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        private static final String URL = "jdbc:mysql://localhost:3306/campus_online_reservation??useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&useAffectedRows=true&serverTimezone=GMT";
        private static final String USRE = "root";
        private static final String PASSWORD = "root";
    
        /**
         * @return connection获取连接数据库对象
         * @author DBUtil连接数据库
         */
        public static Connection connection() {
            Connection conn = null;
            try {
                Class.forName(DRIVER);
                conn = DriverManager.getConnection(URL, USRE, PASSWORD);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
    
        /**
         * @return ResultSet返回结果集
         * @author 查询数据库操作
         */
        public static ResultSet doQuery(String sql, Object... objects) {
            Connection conn = connection();
            PreparedStatement pr = null;
            ResultSet rs = null;
            CachedRowSet cach = null; // 构建缓存结果集
            try {
    
                pr = conn.prepareStatement(sql); // 预编译方法输入SQL文
                for (int i = 0; i < objects.length; i++) {
                    pr.setObject(i + 1, objects[i]); // 为占位符赋值
                }
                rs = pr.executeQuery(); // 运行SQL文
                cach = new CachedRowSetImpl(); // 缓存结果集接口指向实现类
                cach.populate(rs); // 添加结果集
    
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭资源回收
                finaly(rs, pr, conn);
            }
    
            return cach; // 返回缓存结果集
        }
    
        /**
         * @return ResultSet返回int类型匹配行数
         * @author 增删改数据库操作
         */
        public static int doUpdate(String sql, Object... objects) {
            Connection conn = connection();
            PreparedStatement pr = null;
            int rs = 0;
            try {
                pr = conn.prepareStatement(sql); // 预编译SQl文
                for (int i = 0; i < objects.length; i++) {
                    pr.setObject(i + 1, objects[i]); // 占位符赋值
                }
                rs = pr.executeUpdate(); // 运行增删改方法
            } catch (SQLException e) {
                e.printStackTrace();
            } finally { // 关闭资源先开后关
                finaly(null, pr, conn);
            }
            return rs; // 返回匹配行数
    
        }
    
        /**
         * @author 关闭资源
         */
        public static void finaly(ResultSet rs, PreparedStatement pr, Connection conn) {
            try {
                // 判断是否为空,不为空关闭资源
                if (rs != null) {
                    rs.close();
                }
                if (pr != null) {
                    pr.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }
    
    

    把数据库名账号密码改了就好了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题