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

  • Post author:
  • Post category: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


1.



import


java.sql.Connection;


2.



import


java.sql.DriverManager;


3.



import


java.sql.PreparedStatement;


4.



import


java.sql.ResultSet;


5.



import


java.sql.SQLException;


6.


7.


/**


8.


* @author Administrator


9.


*


链接数据库,在这个


java


类中使用的是


JDBC


技术链接的数据库,


10.


*


这技术需要一类三接口


11.


*DriverManager


类,


12.


*Connection


接口,


java.sql.Connection


13.


*Statement


接口


,java.sql.Statement;


14.


*ResultSet


接口


,java.sql.ResultSet;


15.


*/


16.



public


class


GetSQLData {


17.



public


static


void


main(String[] args) {


18.


//


创建三个接口的对象


19.

Connection connection =


null


;


20.

PreparedStatement preparedStatement =


null


;


21.

ResultSet resultSet =


null


;


22.


//


获取驱动类


23.



try


{


24.

Class.forName(

“com.mysql.jdbc.Driver”

);

//


要确保已经导入了


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


最后的版本号可以随意)


25.


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


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


Driver


类加载到


26.


//jvm


中,并且该


Driver


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


Driver


类被加载到


jvm


中,则就是该


Driver


完成了在


jvm


中的





注册








;


如果仅仅是


27.


//


语句


com.mysql.jdbc.Driver driver = null;


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


28.

}


catch


(ClassNotFoundException e) {


29.

System.out.println(




获取驱动类失败




);


30.

e.printStackTrace();


31.

}


32.


33.


//


连接数据库:使用


java.sql.DriverManager





getConnection


方法以数据库


url


加上数据库的


username





password


做参数;


34.



try


{


35.

connection = DriverManager.getConnection(

“jdbc:mysql://localhost:3306/news”

,

“root”

,

“yujiawen”

);


36.

}


catch


(SQLException e) {


37.

System.out.println(




连接数据库失败




);


38.

e.printStackTrace();


39.

}


40.


41.

String sql =

“select * from title”

;


42.



try


{


43.

preparedStatement = connection.prepareStatement(sql);


44.

}


catch


(SQLException e) {


45.


// TODO Auto-generated catch block


46.

e.printStackTrace();


47.

}


48.


49.



try


{


50.

resultSet = preparedStatement.executeQuery(sql);


51.

}


catch


(SQLException e) {


52.


// TODO Auto-generated catch block


53.

e.printStackTrace();


54.

}


55.


56.



try


{


57.



while


(resultSet.next())

//ResultSet


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


58.


//


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


next


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


ResultSet


对象没有下一行时返回


false




59.


//


所以可以在


while


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


60.

{


61.



int


id = resultSet.getInt(

“id”

);


62.

String name = resultSet.getString(

“name”

);


63.

String creator = resultSet.getString(

“creator”

);


64.

System.out.println(

“id:”

+id+

” name:”

+name+

” creator:”

+creator);


65.

}


66.

}


catch


(SQLException e) {


67.


// TODO Auto-generated catch block


68.

e.printStackTrace();


69.

}


70.


71.


72.


//


关闭三个接口的对象


73.



if


(resultSet!=


null


)


74.

{


75.



try


{


76.

resultSet.close();


77.

}


catch


(SQLException e) {


78.


// TODO Auto-generated catch block


79.

e.printStackTrace();


80.

}


81.

}


82.



if


(preparedStatement!=


null


)


83.

{


84.



try


{


85.

preparedStatement.close();


86.

}


catch


(SQLException e) {


87.


// TODO Auto-generated catch block


88.

e.printStackTrace();


89.

}


90.

}


91.



if


(connection!=


null


)


92.

{


93.



try


{


94.

connection.close();


95.

}


catch


(SQLException e) {


96.


// TODO Auto-generated catch block


97.

e.printStackTrace();


98.

}


99.

}


100.

}


101.

}

运行结果:

附:数据库中的数据:



版权声明:本文为qq_23591767原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。