欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 访问数据库实例

程序员文章站 2022-04-19 14:03:53
(1) 数据库java类。package com.kettas.servlet;import java.sql.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/*** 数据库连接及操作类** @author LHDSZZDF**/......

(1) 数据库java类。

package com.kettas.servlet;

import java.sql.*;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


/**
 * 数据库连接及操作类
 *
 * @author LHDSZZDF
 *
 */
public class ConnDB {
    public Connection conn = null;// 数据库连接对象
    public Statement stmt = null;// Statement对象,用于执行SQL语句
    public ResultSet rs = null;// 结果集对象
    // 驱动类的类名
    private static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static String dbUrl = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_shop";
    private static String dbUser = "sa";// 登录SQL Server的用户名
    private static String dbPwd = "zzdfwf";// 登录SQL Server的密码

    public static String dataBaseName = "aaaa";
    public static String name = "root";
    
    
    public static String pwd = "passw0rd@123";

    /**
     * 功能:创建与数据库的连接
     *
     * @return
     */
    public static Connection getConnection()
    {
        Connection connDemo = null;// 声明数据库连接对象
        
        try {
            Class.forName("org.gjt.mm.mysql.Driver").newInstance();
            connDemo = DriverManager.getConnection("jdbc:mysql://localhost/"+dataBaseName, name, pwd);
        }
        catch (Exception e)
        {
            System.out.println("connection error" + e.getMessage());
        }
        
        
        return connDemo;// 返回数据库连接对象
    }

    /**
     * 功能:更新数据
     *
     * @param sql
     * @return
     */
    public int executeUpdate(String sql) {
        int result = 0;// 更新数据的记录条数
        try {// 捕捉异常
            conn = getConnection();// 获取数据库连接
            // 创建用于执行SQL语句的Statement对象
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            result = stmt.executeUpdate(sql);// 执行SQL语句
        } catch (SQLException e) {// 处理异常
            result = 0;// 指定更新的记录条数为0,表示没有更新数据
            e.printStackTrace();// 输出异常信息
        }
        try {// 捕捉异常
            stmt.close();// 关闭用于执行SQL语句的Statement对象
        } catch (SQLException e) {// 处理异常
            e.printStackTrace();// 输出异常信息
        }
        return result;// 返回更新数据的记录条数
    }

    /**
     * 功能:根据指定的SQL语句查询数据
     *
     * @param sql
     * @return
     */
    public ResultSet executeQuery(String sql)
    {
        try
        {// 捕捉异常
            conn = getConnection();// 获取数据库连接
            // 创建用于执行SQL语句的Statement对象
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            
            rs = stmt.executeQuery(sql);// 执行SQL语句
        } catch (SQLException e) {// 处理异常
            e.printStackTrace();// 输出异常信息
        }
        return rs;// 返回查询结果
    }

    /**
     * 功能:关闭数据库连接
     */
    public void close() {
        try {// 捕捉异常
            if (rs != null) {
                rs.close();// 关闭结果集对象
            }
            if (stmt != null) {
                stmt.close();// 关闭Statement对象
            }
            if (conn != null) {
                conn.close();// 关闭数据库连接对象
            }
        } catch (Exception e) {
            e.printStackTrace();// 输出异常信息

        }
    }

    /**
     * 功能:测试数据库连接是否成功
     *
     * @param args
     */
    public static void main(String[] args) {
        if (getConnection() != null) {// 如果获取到数据库连接
            System.out.println("数据库连接成功");
        }
    }

    /**
     * 功能:更新数据后获取生成的自动编号
     *
     * @param sql
     * @return
     */
    public int executeUpdate_id(String sql) {
        int result = 0;
        try {// 捕捉异常
            conn = getConnection();// 获取数据库连接
            // 创建用于执行SQL语句的Statement对象
            Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
            result = stmt.executeUpdate(sql);// 执行SQL语句
            String ID = "select @@IDENTITY as id";// 定义用于获取刚刚生成的自动编号的SQL语句
            rs = stmt.executeQuery(ID);// 获取刚刚生成的自动编号
            if (rs.next()) {// 如果存在数据
                int autoID = rs.getInt("id");// 把获取到的自动编号保存到变量autoID中
                result = autoID;
            }
        } catch (SQLException e) {// 处理异常
            result = 0;
        }
        return result;// 返回获取结果
    }

}

(2) 调用实例
      private ConnDB conn = new ConnDB();// 创建数据库连接类的对象
      String sqlString = "";  
      ResultSet rs = null;
      rs = conn.executeQuery(sqlString);// 执行查询操作

本文地址:https://blog.csdn.net/qq_14874791/article/details/106992194