java,jdbc操作数据库

要通过java操作数据库,需要安装相关依赖的包,我这里操作的是mysql数据库,用到的包是:mysql-connector-java   版本是:5.1.38

首先需要环境搭建去,maven仓库找到相应的包和版本:

地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java

操作步骤:

环境搭建好了,接下来是通过代码操作数据库。

步骤如下:

第3步是为了添加占位符,防止sql注入,可以略过。

我这里封装了一个通用的数据库查询的方法,可以直接拿去改下数据库的配置信息,直接调用。

代码如下:

package com.mg.java.maven.day03;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

/**
 * JDBC操作数据库
 * 
 * @author admin
 *
 */
public class JDBCDemo {
    public static void main(String[] args) throws SQLException {
        JDBCDemo jdbcDemo = new JDBCDemo();
        String url = "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8&useSSL=false";
        String user = "root";
        String password = "root";
        String sql = "SELECT sname FROM student WHERE age = 23;";
        jdbcDemo.query(url, user, password, sql);
    }

    /**
     * 查询方法
     * 
     * @param url      数据库的配置信息
     * @param user     数据库用户名
     * @param password 数据库密码
     * @param sql      查询的sql语句
     * @throws SQLException
     */
    public void query(String url, String user, String password, String sql) throws SQLException {

        // 1连接数据库
        Connection connection = DriverManager.getConnection(url, user, password);

        // 2获取PreparedStatement连接对象
        PreparedStatement preparedStatement = connection.prepareStatement(sql);

        // 3调用查询方法,执行查询,返回ResultSet结果集
        ResultSet resultSet = preparedStatement.executeQuery();
        // 获取查询相关信息
        ResultSetMetaData metaData = resultSet.getMetaData();
        // 得到查询字段的数目
        int columnCount = metaData.getColumnCount();

        // 4从结果集中取出查询数据
        while (resultSet.next()) {
            // 循环取出每个查询字段的数据
            for (int i = 1; i <= columnCount; i++) {
                String columnLable = metaData.getColumnLabel(i);
                String columnValue = resultSet.getObject(columnLable).toString();
                System.out.println(columnValue);
            }

        }

    }
}

猜你喜欢

转载自www.cnblogs.com/xiamaojjie/p/12216033.html