黑马程序员技术交流社区

标题: 怎么配置连接数据库 [打印本页]

作者: 秦驰    时间: 2011-7-14 13:30
标题: 怎么配置连接数据库
以前老师说配置连接数据库,有一套可以说事模板的东西,代码很多。
希望帮我写一下  ,我很喜欢数据库
作者: 匿名    时间: 2011-7-14 16:12
首先,您要知道,连接不同的数据库,使用的代码是不完全一样的。
然后,关于数据库连接技术,其实又称为JDBC技术,我建议您自己去找些视频看看。

    下面我说的,[color=Red]若您没有JDBC的基础,可能会看不懂[/color],但是您就把它当作您以后复习的资料,暂时保存起来吧。事先声明,千万别拍砖,[color=Red]我可是专门为您花费了几十分钟手打的这些字,伤不起啊[/color]。

JDBC的操作步骤:
  |-  第一步: 加载数据库驱动程序。需要将驱动程序配置到classpath变量中去或者将其配置到Eclipse、MyEclipse中。
  |-  第二步: 连接数据库。通过Connection接口和DriverManager类完成。
  |-  第三步: 操作数据库。通过Statement、PreparedStatement、ResultSet三个接口完成。
  |-  第四步: 关闭数据库。(必须必须关闭 十分重要)

加载驱动程序:
|-  其实所谓的驱动程序 就是一个jar压缩文件。
|-  在这个jar文件中保存的都是一个个的.class类文件。
|-  将其所在路径 放到classpath变量中即可。 而classpath变量 就是用来指明类的所在位置的。若您使用开发工具开发程序,那么就可以将驱动程序配置到IDE(集成开发环境,也就是咱常说的开发工具)中即可,不需要再往classpath中配置了。

    我下面以Oracle为例,给您讲讲如何在Application程序中连接数据库,若是您需要了解在Java Web中的配置数据库连接池的方法,可以继续发帖。[code=java]package org.cxy.dbc;

import java.sql.*;
public class DatabaseConnection {
        private String driver = "oracle.jdbc.driver.OracleDriver";
        private String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        private String username = "scott";
        private String password = "cxy";
       
        private Connection conn;        //数据库连接对象。
        public DatabaseConnection()throws Exception{
                Class.forName(driver); // 将驱动程序加载入内存中。
                // 取得数据库连接。
                this.conn = DriverManager.getConnection(url, username, password);
        }
       
        /**
         *   功能:返回数据库连接对象。
         * */
        public Connection getConnection(){
                return this.conn;
        }
       
        /**
         *   功能:关闭数据库连接对象。
         * */
        public void close()throws Exception{
                // 若已经成功建立了一个数据库连接。
                if(this.conn != null){
                        this.conn.close();
                }
        }
}[/code]连接不同的数据库,需要使用不同的驱动程序,mysql、sqlserver、oracle等数据库的驱动程序是互不相同的。刚刚也说了,驱动程序其实就是一些.class文件的集合而已。在连接Oracle的时候,咱们需要一个名为“OracleDriver”的类,它存在于驱动程序中的“oracle.jdbc.driver”包中。
    使用Class.forName()方法将“OracleDriver”类的字节码加载入内存后,就完事了,至于谁去使用它,咱们就甭管了。
    然后使用“java.sql.DriverManager”类的“getConnection”方法来获取数据库连接。需要为其指定三个参数:
    |-  url : 告诉“getConnection”方法,咱们要连接的数据库在什么地方。
         |-  本范例中 url = “jdbc:oracle:thin:@localhost:1521:orcl” ,即“jdbc:oracle:thin:@”是固定的,而后面的“localhost”代表咱们要连接的数据库所在的电脑的IP地址,1521是该电脑上的端口号,orcl是数据库的名称。 总的含义为:我要连接到我自己的计算机(localhost)中,在1521端口上监听的Oracle程序中的orcl数据库中。
    |-  username和password :当今社会,到处都充斥着用户名和密码。数据库也一样,您必须提供一个合法的账户,否则Oracle不会接受您的连接请求的。 本范例中,咱们使用的是scott用户,它的密码是cxy 。

    至此,咱们就得到了一个Connection对象,以后对数据库所有的增、删、改、查操作所需要使用到的PreparedStatement等接口的对象都由Connection对象直接或间接获得。

测试数据库是否连接成功代码:[code=java]package org.cxy.dbc;

public class Demo {

        public static void main(String[] args) throws Exception {
                DatabaseConnection conn = new DatabaseConnection();
                System.out.println(conn.getConnection()); // 取得数据库连接对象。
                conn.close();  // 关闭数据库连接。
        }
}[/code]程序在我的电脑中输出的结果是:
    oracle.jdbc.driver.T4CConnection@ae000d
证明数据库连接成功。 还有操作完毕数据库后,一定要关闭它,不然您就会像很多人那样,“自食恶果”,当然,我也吃过。

    但是若在SQLServer2005中,事情可就并没有那么简单了,虽然Java这头搞定了,但是还需要配置一下SSMS(SQL Server Management Studio)。

使用Java连接SQL Server2005需要知道四个值:
|-  driver :com.microsoft .sqlserver.jdbc.SQLServerDriver
|-  url:jdbc:sqlserver://localhost:1433; databasename=数据库名称
|-  username:sa
|-  password:123456

  •  在SQL Server2005 中sa用户默认是被禁用的。
      |-  可以登录到SSMS界面 选择安全性登录名 -- 右击sa -- 属性 -- 状态 -- 登录(选择启用)。
  •  如果安装Server的时候选择了只使用Windows账户登录 则此时需要设置允许使用SQL Server账户登录到服务器。  以保证可以使用sa用户登录。
      |-  右击服务器 -- 属性 -- 安全性 -- 服务器身份验证(SQL Server和Windows验证)。
      |- 开始 -- 所有程序 -- Microsotf SQL Server2005配置工具 -- SQL Server Configuration ManagerMSSQLSERVER的协议 -- 右击TCP/IP协议(默认是1433端口) -- 启用 。
      |-  然后去 我的电脑 -- 管理 里面重启  SQL Server服务 即可。

那么mysql数据库呢?总不能忘记它吧,它可是免费的哦。
使用Java连接MySQL需要知道四个值:
|-  driver :org .gjt . mm .mysql .Driver
|-  url:jdbc:mysql://localhost:3306/数据库名称
|-  username:root
|-  password:密码

    这些东西,您可能不明白,但是留着当纪念吧,以后复习时用。   
    最后还有一点,连接各个数据库的驱动程序,在网上可以下载,而oracle的驱动程序,在Oracle中安装目录中就可以找到。若您不想去找,那么可以把您的邮箱留下来,我将他们发给您。
                                                                            黑马程序员手打 --- 转载请注明。
作者: 匿名    时间: 2011-7-15 11:11
求sql server2000数据库连接,还有现在我们用哪个数据库比较适合啊?
作者: 匿名    时间: 2011-7-17 14:13
标题: 回复 沙发 的帖子
哇,老师居然给了5分。我晕了,我也贴上一个SQL 的模板,
package com.hometown.dao;
import java.sql.*;
import javax.sql.DataSource;

public class BaseDao {
        private static DataSource source;

        public static final String DRIVER =        "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        public static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=MyHometownDB";
        public static final String UNAME = "sa";
        public static final String UPASSWORD = "123456";
       
       
        //一次性。第一次用到BaseDao这个类时,这个语句块被运行.
        static{
                try {
                        Class.forName(DRIVER);
                } catch (ClassNotFoundException e) {
                        System.out.println("驱动程序加载失败!!!!");
                        e.printStackTrace();
                }

        }
       
       
        public Connection getConn(){
                Connection cn = null;
               
                try {
                        cn = DriverManager.getConnection(URL,UNAME,UPASSWORD);
                } catch (SQLException e) {
                        System.out.println("建立连接失败!!!!");
                        e.printStackTrace();
                }

               
                return cn;
        }

       
        public void closeAll(Connection cn,Statement st,ResultSet rs){
                if (rs != null){
                        try {
                                rs.close();
                        } catch (SQLException e) {
                                e.printStackTrace();
                        }
                }
               
                if (st != null){
                        try {
                                st.close();
                        } catch (SQLException e) {
                                e.printStackTrace();
                        }
                }
               
                if (cn != null){
                        try {
                                cn.close();
                        } catch (SQLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }
               
        }

}
这个是SQLServer数据库的链接,大致和楼上的童鞋一样吧。这个可是我花了一周搞出来参加比赛的。老师也给我点分吧。用的时候调用getConn方法即可,不过要记得该用户名密码,和数据库名
作者: 匿名    时间: 2011-7-17 14:19
标题: 回复 板凳 的帖子
我这里也有

我这个是我做的管理系统的连接数据库代码

    string connstring = "server=localhost;database=xsgl;uid=sa;pwd=sa";
        SqlConnection sqlconn = new SqlConnection(connstring);
        sqlconn.Open();
        Response.Write("open");
        SqlDataAdapter sda = new SqlDataAdapter("select * from Department", sqlconn);
        DataSet ds = new DataSet();

老师给我点分吧~~~用的时候把数据库名字改成你的就行
作者: 徐传任    时间: 2012-9-16 17:23
bucuo........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2