目录

Java如何获取数据库中的数据案例

Java如何获取数据库中的数据·案例

Java如何获取数据库中的数据·案例

步骤简介:

加载驱动:

加载jdbc的驱动类Class.forName(“com.mysql.jdbc.Driver”)到jvm中。

建立连接:

使用DriverManager.getConnection(sql_url,username,pwd)方法返回一个Connection对象。

预编译sql语句:

通过Connection.prepareStatement(sql)方法,将sql语句进行预编译,返回一个PrepareStatement对象,该PrepareStatement对象能将参数化的 SQL 语句发送到数据库。

执行sql语句:

执行preparedStatement.executeQuery(sql);方法返回一个ResultSet类的对象,ResultSet类的对象中的内容是数据库中“查询到”的内容;(除了查询方法之外,也可以有增删改查)

https://img-blog.csdn.net/20170924231044480?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjM1OTE3Njc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

获取数据库中的数据并任意操作:

通过ResultSet的next()方法,逐行读取数据库中的信息;可以将读取到的信息赋值给其他变量等供它用;

步骤图示:

https://img-blog.csdn.net/20170924231141750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjM1OTE3Njc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

代码show

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

/**

* @author Administrator

链接数据库,在这个

java

类中使用的是

JDBC

技术链接的数据库,

这技术需要一类三接口

*DriverManager

类,

*Connection

接口,

java.sql.Connection

*Statement

接口

,java.sql.Statement;

*ResultSet

接口

,java.sql.ResultSet;

*/

**public

class** GetSQLData {

**public

static

void** main(String[] args) {

//

创建三个接口的对象

Connection connection = null ;

PreparedStatement preparedStatement = null ;

ResultSet resultSet = null ;

//

获取驱动类

try {

Class.forName( “com.mysql.jdbc.Driver” ); //

要确保已经导入了

‘mysql-connector-java-5.1.29.jar’(

最后的版本号可以随意)

//com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();

番外小知识:该句与上一句的功能是一样,都是将

Driver

类加载到

//jvm

中,并且该

Driver

类是经过初始化了的;(一个初始化了的

Driver

类被加载到

jvm

中,则就是该

Driver

完成了在

jvm

中的

注册

;

如果仅仅是

//

语句

com.mysql.jdbc.Driver driver = null;

就不行,因为虽然加载了,但是没有初始化;

} catch (ClassNotFoundException e) {

System.out.println( "

获取驱动类失败

" );

e.printStackTrace();

}

//

连接数据库:使用

java.sql.DriverManager

getConnection

方法以数据库

url

加上数据库的

username

password

做参数;

try {

connection = DriverManager.getConnection( “jdbc:mysql://localhost:3306/news” , “root” , “yujiawen” );

} catch (SQLException e) {

System.out.println( "

连接数据库失败

" );

e.printStackTrace();

}

String sql = “select * from title” ;

try {

preparedStatement = connection.prepareStatement(sql);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

resultSet = preparedStatement.executeQuery(sql);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

while (resultSet.next()) //ResultSet

对象具有指向其当前数据行的光标。

//

最初,光标被置于第一行之前。

next

方法将光标移动到下一行;因为该方法在

ResultSet

对象没有下一行时返回

false

//

所以可以在

while

循环中使用它来迭代结果集。

{

int id = resultSet.getInt( “id” );

String name = resultSet.getString( “name” );

String creator = resultSet.getString( “creator” );

System.out.println( “id:” +id+ " name:" +name+ " creator:" +creator);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//

关闭三个接口的对象

if (resultSet!= null )

{

try {

resultSet.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (preparedStatement!= null )

{

try {

preparedStatement.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (connection!= null )

{

try {

connection.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

运行结果:

https://img-blog.csdn.net/20170924231304216?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjM1OTE3Njc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

附:数据库中的数据:

https://img-blog.csdn.net/20170924231326872?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjM1OTE3Njc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center