新建java工程
在java代码中输入如下代码
import java.sql.*public class DB2conn{
/**设置参数**/
private static Connection conn = null
private static Statement stmt = null
private static ResultSet rs = null
public DB2conn() {
try{
System.out.println("正在连接数据库..........")
Class.forName("com.ibm.db2.jcc.DB2Driver")//加载mysql驱动程序类
String url = "jdbc:db2://localhost:50000/toolsdb"//url为连接字符串
String user = "db2admin"//数据库用户名
String pwd = "1234"//数据库密码
conn=(Connection)DriverManager.getConnection(url,user,pwd)
System.out.println("数据库连接成功!!!")
}catch(Exception e){
System.out.println(e.getMessage())
//e.printStackTrace()
}
}
public static void main(String[] args) throws SQLException {
DB2conn a = new DB2conn()//实例化对象,作用是调用构造方法
a.getClass()//无意义
/**查询语句**/
String sql="select * from person"
stmt = (Statement) conn.createStatement()
stmt.execute(sql)//执行select语句用executeQuery()方法,执行insert、update、delete语句用executeUpdate()方法。
rs=(ResultSet) stmt.getResultSet()
while(rs.next()){ //当前记录指针移动到下一条记录上
int i = rs.getInt(1)//得到当前记录的第一个字段(id)的值
String name =rs.getString(2)//得到第二个字段(name)的值
String psw = rs.getString("ppassword")//得到(password)的值
System.out.println(Integer.toString(i)+" "+name+" "+psw)
}
rs.close()//后定义,先关闭
stmt.close()
conn.close()//先定义,后关闭
}
}
DB2有两个驱动方式, 一个是纯Java的JDBC一个是调用DB2命令行的JDBC驱动.db2java.zip中的COM.ibm.db2.jdbc.app.DB2Driver是后种. 你在命令行下能够运行是因为环境变量(db2profile)已经设置好了.Eclipse带起来的Java程序没有这些环境变量. COM.ibm.db2.jdbc.app.DB2Driver仅仅是DB2命令的一层封装,没有环境变量,自然找不到命令,自然连接不成功.
换成type4的JDBC driver,或者在eclipse里面设置好db2profile就可以了.
你加两句打印看看.//这里加入一行
System.out.println("con:"+this.con)
pstmt=this.con.prepareStatement(sql)
//这里加一行
System.out.println("pstmt:"+pstmt)
rs=pstmt.executeQuery()
//这里加一行
System.out.println("rs:"+rs)
看哪个是null
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)