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();
            }
        }
    }
}


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

java连接sql server2008的两种方法

时间: 2024-10-03 14:22:29

java连接sql server2008的两种方法的相关文章

C++连接mysql数据库的两种方法

现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法.可以通过2种方法实现. 第一种方法是利用ADO连接, 第二种方法是利用mysql自己的api函数进行连接. 第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的

MySQL命令执行sql文件的两种方法

MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希望能给刚开始学习 MySQL 数据库的朋友们. 学习过 SQLServer 或 Oracle 的朋友会知道,sql 脚本是包含一到多个 sql 命令的 sql 语句集合,我们可以将这些 sql 脚本放在一个文本文件中(我们称之为“sql 脚本文件”),然后通过相关的命令执行这个 sql 脚本文件.基

java 连接sql server2008配置

Java 应用程序连接SQL Server2008 (Eclipse+JDK7.0+jdbc4.0.jar+Sql Server2008) 假设应用端的连接语句为: String url = "jdbc:sqlserver://localhost:2955;DatabaseName=FDBA"; String user="fooxer" String password="xiao25QIU" Connection con=DriverManage

Java连接Sql Server2008

参考:http://weistar.iteye.com/blog/1744871 准备工作: 1.下载JDBC驱动包:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 2.下载 完成后,点击运行,会提示你选择解压目录. 3.解压完成后,进入 <你解压到得目录>\sqljdbc_3.0\chs,有sqljdbc.jar和sqljdbc4.jar,这里使用sqljdbc4.jar 4.配置Sql Server2008端口:

Java中读取Map的两种方法对比

引言: 在Java中Map的使用非常频繁,我们经常会需要对Map进行遍历和读取,下面将展示两种遍历的方法以及简要分析. 1.  遍历Map方法A Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val =

Java中集合排序的两种方法

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * <p> * ClassName CollectionsSort * </p> * <p> * Description 主要介绍两种集合的排序算法<br/> * 第一:java.util.Collections.sort(jav

java自定义容器排序的两种方法

首先说一下排序的返回值的含义.对于参与比较的两个Object,o1和o2,如果函数的返回值为正值,把o1排在o2后面:返回值为负值,把o1排在o2前面.如果返回值是0,按照容器之前的顺序排列.在compareTo中,this相当于o1,传入的Object相当于o2 第一种方法:对于要排序的类实现Comparable接口 package sort; import java.util.ArrayList; import java.util.Collections; import java.util.

Java跳转页面的两种方法以及它们的区别

(1)使用response对象,为Jsp的内置对象 直接使用sendRedirect()重定向, 重定向后在浏览器地址栏上会出现重定向页面的URL.代码: <%   response.sendRedirect("http://www.baidu.com"); return;         %> 说明: sendredirect()中的URL是可以带参数的,例如sendredirect("url?name="+name);我们可以在跳转的时候传入参数.

使用jdbc连接上oracle的两种方法

1. 使用thin连接 优点:thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与平台无关的,无需安装Oracle客户端,只需要下载一个thin驱动的jar包,并且将环境变量中的CLASS_PATH变量中加入thin驱动的路径就可以了. 缺陷:就是thin性能一般,达不到如OCI方式的企业级的要求.另外,如果一个oracle数据库对应一台主机,可以使用thin连接:如果一个oracle数据库对应四五台主机(集群服务器),