java连接不上mysql2008_java连接sql server2008的两种方法

最近学到java连接数据库(sql server),发现常用的我们有两种方法,那么这里我总结一下这两种方法怎么使用,还有它们的区别,还有我们一般要使用哪一种方法。

方法一:使用jdbc-odbc桥连接sql server,作为中间媒介连接数据库;

注意我们每次在连接数据库前都必须要引入sql包:import java.sql.*;接下来的步骤都是习惯性步骤,我这里就按照每一步的使用进行列举:

1.配置数据源:打开控制面版->管理工具->数据源(ODBC)->(一般而言我们使用用户DSN)按下添加按钮->sql server->写下数据源的名字(自己进行命名,假设是test,为下面的例子做铺垫),再写下连接的服务器名(一般默认为local)->更改默认的数据库为(勾选你想要连接的数据库)->接下来一直确定就完成了数据源的配置.

2.加载驱动:Class.forNmae("sun.jdbc.odbc.JdbcOdbcDriver");

3.得到连接:Connection ct=DriverManager.getConnection("jdbc:odbc:test");test是配置数据源的时候的数据源名字

4.创建preparedStateMent(这里不用Statement,相比preparedStateMent,它有很多缺点),这个语句主要是用于发送sql语句到数据库.

5.最后关闭所有操作就行了,

import java.sql.*;

public class preparedStatement {

public static void main(String[] args) {

Connection ct = null;

PreparedStatement ps = null;

ResultSet rs=null;

try {

//加载驱动

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//得到连接

ct=DriverManager.getConnection("jdbc:odbc:test");

//创建一个PreparedStatement,用于向数据库放松sql语句

ps=ct.prepareStatement("select * from 产品名称表");

//得到结果

rs=ps.executeQuery();//这个方法适用于从表中查找数据

//如果要向表中插入,删除,更新数据需要使用方法executeUpdate();

while(rs.next()){//这里rs.next()一定要使用next()方法,否则有空指针错误

String number=rs.getString(1);

String string=rs.getString(2);

System.out.println(number+" "+string);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

// 关闭资源,记住关闭资源的顺序,根据得到赋值的反顺序进行关闭资源

try {

if(rs!=null){

rs.close();

}

if (ps != null)

ps.close();

if (ct != null)

ct.close();

}

catch(Exception e){

e.printStackTrace();

}

}

}

}

这个代码是经过测试过的,这里我就不进行截图了。

注意:我们还可以使用?赋值的方法,这个方法对我们而言更加有利

ps=ct.prepareStatement("select * from 产品名称表 whrer 产品名称=?");

ps.setString(1,"手机");//表示在第一个问号上添加“手机”的字符串.如果是整数用setInt()方法;

方法二:使用驱动程序直接操作数据库

这里吐槽下,这个方法比上面的方法好,更加使用,但是前期所做的工作更多,为了实现这一步的操作,我不知道流了多少泪,这里我把自己遇到的困难和问题一一列举解决。

1.这里需要引入jar包,这里sql server2008,只要引入sqljdbc4.jar包就行了。这个包百度上有下载。这里我主要提供怎么引入这个包。

方法:工具栏project选项->properties->java Build path中选择libraries->点击add Externar jars按钮->然后在你电脑中选中sqljdbc4.jar导入进去

2.这一步需要用到你的sql server知识,因为我们连接数据库一般是使用sql验证,所以需要你自己建立帐号密码,这里我仅仅示范一下使用数据库中原本存在的用户名sa,用这个例子说明:

方法:先用windows验证进入数据库,然后在安全性中的登录名中选中系统给出的用户名sa,单机右键

->选中属性的按键->修改这里给的密码,修改成你自己需要的密码->点击确定就好。然后断开连接,重新以现在的用户名和密码连接。然后在这个用户名中新建数据库就好。

3.然后进行代码演示:

import java.sql.*;

public class jdbc1 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Connection ct = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

//第一步,加载驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//得到连接

ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=liuyan","sa","3209554");

//创建PreparedStatement

ps=ct.prepareStatement("select * from userinformation where name='张三丰'");

rs=ps.executeQuery();

//这个方法适用于从表中查找数据

//如果要向表中插入,删除,更新数据需要使用方法executeUpdate();

while(rs.next()){//这里rs.next()一定要使用next()方法,否则有空指针错误

String number=rs.getString(1);

String string=rs.getString(2);

String string2=rs.getString(3);

System.out.println(number+" "+string+" "+string2);

}

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

if(rs!=null){

rs.close();

}

if (ps != null)

ps.close();

if (ct != null)

ct.close();

}

catch(Exception e){

e.printStackTrace();

}

}

}

}

这是经过测试,结果绝对没有问题。很开心解决了这样一个难题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值