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类的对象中的内容是数据库中“查询到”的内容;(除了查询方法之外,也可以有增删改查)
获取数据库中的数据并任意操作:
通过ResultSet的next()方法,逐行读取数据库中的信息;可以将读取到的信息赋值给其他变量等供它用;
步骤图示:
代码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();
}
}
}
}
运行结果: