使用工具:
- myeclipse 2016
- sql server2008
准备工作:
使用sql server 2008建立如下表格:
(根据网上教程/书本教程)
具体代码:
package lt_jdbc3;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class jdbc3test
{
public static void main(String args[])
{
// 声明JDBC objects.
Connection con = null;
ResultSet rs = null;
Statement sql;
try
{
System.out.println("准备连接!!!");
//1、加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!");
// 2、建立数据库连接 //getConnection()方法内部参数可以用变量传入
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ","sa","12345");
System.out.println("连接数据库成功!!!");
// 4、执行SQL语句,须获得java.sql.Statement实例,Statement实例分为以下3种类型:
// * 执行静态SQL语句。通常通过Statement实例实现。
// * 执行动态SQL语句。通常通过PreparedStatement实例实现。
// * 执行数据库存储过程。通常通过CallableStatement实例实现。
// 具体的实现方式:
sql = con.createStatement();
System.out.println("获得java.sql.Statement实例成功!");
// 5、Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
// * ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
// ,返回一个结果集(ResultSet)对象。
// * int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
// DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
// * execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
rs = sql.executeQuery("SELECT * FROM student");
System.out.println("sql查询语句执行成功!");
// 6、处理结果
// 两种情况:
// 1、执行更新返回的是本次操作影响到的记录数。
// 2、执行查询返回的结果是一个ResultSet对象。
// **ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
// 行中数据的访问。
// **使用结果集(ResultSet)对象的访问方法获取数据:
ResultSetMetaData m = null;// 获取 列信息
m = rs.getMetaData(); //得到一个DatabaseMetaData对象
int columns = m.getColumnCount(); //该对象可以获得columns的数值
// 显示列,表格的表头
for (int i = 1; i <= columns; i++) {
System.out.print(m.getColumnName(i)); //getColumnName()获得每个列的Name
System.out.print(" ");
}
System.out.println();
String a = null;
while (rs.next()) {
//注意,循环columns是从1开始 ,,停止条件容易出错!
for (int i = 1; i <=columns; i++) {
//判断数据是否是String类型
if (rs.getString(i) instanceof String){
a=(rs.getString(i)).trim(); //把前后空格去掉
System.out.print(a);
}else{
System.out.print(rs.getString(i));
}
System.out.print(" ");
}
System.out.println();
}
}
catch (Exception e)
{
System.out.println("连接错误:"+e);
}
}
}
易错点:
- url:”jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ”
- SQL语句:”SELECT * FROM student”