JAVA连接SQL数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA连接SQL数据库相关的知识,希望对你有一定的参考价值。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

/**
* @author Administrator
*
*/
public class sqlServer
String DBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";

ResultSet rs=null;

private Connection conn;
///////////////////////////////////建立连接//////////////////////////////////////////////////////////////////
public sqlServer()
try
Class.forName(DBDriver).newInstance();
conn=DriverManager.getConnection(ConnStr,"sa","sa");

catch(SQLException e)
System.out.println(e.getMessage());

catch(Exception e)
System.out.println(e.getMessage());



public Connection getConn() //获取连接方法
return conn;


public void insert(String sql) //增删改
try
Statement stm=conn.createStatement();
stm.executeUpdate(sql);
System.out.println("操作成功");

catch(Exception e)
System.out.println(e.getMessage());



public ResultSet query(String sql) //查询
try
Statement stm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stm.executeQuery(sql);

catch(Exception e)
System.out.println(e.getMessage());

return rs;


public static void main(String args[])

sqlServer conn=new sqlServer();
ResultSet rs=conn.query("select * from Orders");
//conn.insert("delete from BookInfo where BookName =" +"\'悟空传\'");
//conn.insert("insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')");

try

while(rs.next())
System.out.print(rs.getString("OrderID"));
//System.out.print(rs.getString("U_age"));

rs.close() ;

catch (Exception e)
System.out.println(e.getMessage());






请解释每句的含义 越详细越好
各位帮忙啊 好的会再追50分
如果大多都是系统生成的. 那只要指出哪些是自己需要填写的.
比如数据库名字 表什么的.最好详细点.

import java.sql.ResultSet; //都是导入一些下面需要用到的类
String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";//jdbc连接数据库url

public sqlServer()
try
Class.forName(DBDriver).newInstance(); //加载SQLServer驱动程序,DBDriver是你上面的代码;
conn=DriverManager.getConnection(ConnStr,"sa","sa"); //和数据库建立连接,ConnStr里面的://WINJUE:1433;DatabaseName=library 分别是主机地址:端口号;你自己建的数据库(database)

catch(SQLException e) //捕获SQL异常
System.out.println(e.getMessage()); //要是出现异常,捕获到后,这句代码会把异常的信息(出错的原因之类的)打印出来。

catch(Exception e) //捕获异常,这个是总的,所以不能和上面的顺序颠倒,先小到大,我连ORACLE和mysql,这个我通常不要,只须捕获SQL异常就OL
System.out.println(e.getMessage());



public Connection getConn() //获取连接方法
return conn;


public void insert(String sql) //增删改
try
Statement stm=conn.createStatement(); 调用conn下的方法,创建Statement对象
stm.executeUpdate(sql);//调用Statement下的方法执行SQL语句
System.out.println("操作成功");

catch(Exception e)
System.out.println(e.getMessage()); //如上



public ResultSet query(String sql) //查询
try
Statement stm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stm.executeQuery(sql); //如上

catch(Exception e)
System.out.println(e.getMessage());

return rs;


public static void main(String args[])

sqlServer conn=new sqlServer(); //创建sqlServer,就是你上面的类,以便调用里面的方法
ResultSet rs=conn.query("select * from Orders"); //调用query方法,执行SQL语句后,把结果保存到结果集里
//conn.insert("delete from BookInfo where BookName =" +"\'悟空传\'");
//conn.insert("insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')");

try

while(rs.next()) //循环,判断结果集里的记录,一条条往下走,是否还有下一条记录,若是返回真,继续走
System.out.print(rs.getString("OrderID"));
//System.out.print(rs.getString("U_age"));

rs.close() ; //关闭结果集

catch (Exception e)
System.out.println(e.getMessage());






注:
TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。
TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至能进行特定定位,例如移至列表中的第四个记录或从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。
TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 相同,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。
参考技术A

本文将介绍使用java连接sqlserver数据库


工具/材料

myeclipse 、 SqlServer数据库


方法:

1、要向连接数据库,首先应该保证数据库服务打开

2、数据库服务打开之后就可以在环境中编写连接代码了。如图:


连接数据库就是这两个步骤:1)加载驱动、2)创建连接。

注意在导包是导入的java.sql下的。

接下来直接运行一下就可以测试是否连接成功了

参考技术B //你的大概的都给加了注释

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

/**
* @author Administrator
*
*/
public class sqlServer
//驱动 不需要改
String DBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
//连接路径 library 数据库名字 你的就改成自己的
String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";

ResultSet rs=null;

private Connection conn;
///////////////////////////////////建立连接//////////////////////////////////////////////////////////////////
public sqlServer()
try
Class.forName(DBDriver).newInstance();
// sa sa SQL SERVER用户名 密码
conn=DriverManager.getConnection(ConnStr,"sa","sa");

catch(SQLException e)
System.out.println(e.getMessage());

catch(Exception e)
System.out.println(e.getMessage());



public Connection getConn() //获取连接方法
return conn;


//输入 sql 语句
public void insert(String sql) //增删改
try
Statement stm=conn.createStatement();
stm.executeUpdate(sql);
System.out.println("操作成功");

catch(Exception e)
System.out.println(e.getMessage());



public ResultSet query(String sql) //查询
try
Statement stm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stm.executeQuery(sql);

catch(Exception e)
System.out.println(e.getMessage());

return rs;


public static void main(String args[])

sqlServer conn=new sqlServer();
ResultSet rs=conn.query("select * from Orders"); //查询 Orders 表
//conn.insert("delete from BookInfo where BookName =" +"\'悟空传\'");
//conn.insert("insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')");

try

while(rs.next())
System.out.print(rs.getString("OrderID"));
//System.out.print(rs.getString("U_age"));

rs.close() ;

catch (Exception e)
System.out.println(e.getMessage());






//下面的是我给你写个。比你用的清楚点。

package sql;

import java.sql.Connection;
import java.sql.DriverManager;

/**
* @author muren
* 获取SQL SERVER 连接的帮助类
*/
public class DBClass
//连接
private Connection conn=null;
//驱动
private String drive="com.microsoft.jdbc.sqlserver.SQLServerDriver";
//连接路径
private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=muren";
//SQL SERVER用户名
private String sqlUser="sa";
//密码
private String sqlPwd="";

public DBClass()



/** 获取SQL SERVER 连接
* @return 连接
*/
public Connection getConn()
try
//加载SQL SERVER驱动
Class.forName(drive);
//获取连接
conn=DriverManager.getConnection(url,sqlUser,sqlPwd);
catch (Exception e)
e.printStackTrace();

return conn;


/**
* 关闭连接
*/
public void Close()
if(this.conn != null)
try
this.conn.close();
catch (Exception e)
e.printStackTrace();





//-----------------------------------------
//package sql;

import java.sql.*;
import java.util.Hashtable;
import java.util.Vector;

/**
* @author muren
* SQL SERVER 操作类
*/
public class DBContr
private Statement st=null;
private ResultSet rs=null;
DBClass db=null;

public DBContr()


/** 执行SQL语句 (增加,修改,删除)
* @param sql sql语句
* @return 影响行数 修改是否成功 大于0就成功
*/
public int insert(String sql)
db=new DBClass();
int result=0;
try
st=db.getConn().createStatement();
result=st.executeUpdate(sql);
catch (Exception e)
e.printStackTrace();
finally
db.Close();

return result;


/**根据传递的userinfo SQL 语句执行
* @param sql SQL 语句 //select * from userInfo where id =1
* @return
*/
public Vector ExecQutry(String sql)
db=new DBClass();
Vector vt=new Vector();
try
st=db.getConn().createStatement();
rs=st.executeQuery(sql);
while(rs.next())
UserInfoBean ub=new UserInfoBean();
ub.setId(rs.getInt("id"));
ub.setName(rs.getString("name"));
ub.setPwd(rs.getString("pwd"));
vt.add(ub);

catch (Exception e)
e.printStackTrace();
finally
db.Close();

return vt;




//----------------------------------------
//package sql;

/**用户信息
* @author muren
*
*/
public class UserInfoBean
private int id=0;
private String name="";
private String pwd="";

public int getId()
return id;


public void setId(int id)
this.id = id;


public String getName()
return name;


public void setName(String name)
this.name = name;

public String getPwd()
return pwd;


public void setPwd(String pwd)
this.pwd = pwd;


参考技术C package com.jpioneer.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

/**
* @author Administrator
*
*/
public class SQLServer
//sqlserver的驱动程序,由3个包组成,要是没有的话到网上下一个。
String DBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
//连接的url,jdbc:microsoft:sqlserver://---前面的是连接协议,子协议,WINJUE---计算机名称、或者是IP,DatabaseName=library---数据库名称
String ConnStr = "jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";

ResultSet rs = null;

private Connection conn;

///////////////////////////////////建立连接/////////////////////////////////////
// /////////////////////////////
public SQLServer()
try
//加载驱动程序
Class.forName(DBDriver).newInstance();
//利用驱动管理程序得到数据库的连接
conn = DriverManager.getConnection(ConnStr, "sa", "sa");
catch (SQLException e)
System.out.println(e.getMessage());
catch (Exception e)
System.out.println(e.getMessage());



public Connection getConn() // 获取连接方法
return conn;


/**
* @param sql 要执行的添加sql语句如:insert into users(userName,password) values('userName1','123')
*/
public void insert(String sql) // 增删改

try
Statement stm = conn.createStatement();
stm.executeUpdate(sql);
System.out.println("操作成功");
catch (Exception e)
System.out.println(e.getMessage());



/**
* @param sql 要查询的sql语句
* @return 返回查询的结果集
*/
public ResultSet query(String sql) // 查询

try
//ResultSet.TYPE_SCROLL_SENSITIVE-------允许对得到的结果集进行指针的跳跃
//ResultSet.CONCUR_UPDATABLE-----运行行更新
Statement stm = conn
.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stm.executeQuery(sql);
catch (Exception e)
System.out.println(e.getMessage());

return rs;


public static void main(String args[])

SQLServer conn = new SQLServer();
//得到Orders表中的所有结果
ResultSet rs = conn.query("select * from Orders");
// conn.insert("delete from BookInfo where BookName =" +"\'悟空传\'"); // 删除书名为悟空传的所有的书
// conn.insert(
// "insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')"
// );//添加图书信息其中包括BookID,BookName,Author,KeyWord这么几列的值

try

while (rs.next())
//打印出orders表中的所有的订单ID
System.out.print(rs.getString("OrderID"));
// System.out.print(rs.getString("U_age"));

rs.close();
catch (Exception e)
System.out.println(e.getMessage());




参考技术D 这个是JAVA直连得驱动呀
你去买本书看看不知道你代码拿来来得!!
public static void main(String args[])
这个里面sqlServer conn=new sqlServer(); //获得数据库连接
ResultSet rs=conn.query("select * from Orders"); 这个用一个结果集查询Orders里面得所有
while(rs.next())
System.out.print(rs.getString("OrderID")); //打印出这个OrderID得内容?

顺便问你下你自学还是有老师教,改好好看书了

java 连接oracle数据库

package shujuku;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class basedao {

    Connection conn=null;
    PreparedStatement ps;
    ResultSet rs=null;
    int rs1;
    
    public void getConnection()
      {
        try{
            //class.name 加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //获取数据库链接
            conn=DriverManager.getConnection("jdbc:oracle:thin:@20.12.2.50:1521:ora11g","lzt02","1");
            
            
        }catch(ClassNotFoundException e){e.printStackTrace();}
        catch(Exception e){e.printStackTrace();
        }
        //if(conn!=null){System.out.println("数据库链接成功");}
      }
    //关闭链接
    public void closeall()
     {
        try{
            
            if(rs!=null)
               {
                rs.close();
                
               }
            if(ps!=null)
               {
                ps.close();
                
               }
            
            if(conn!=null)
                 {
                conn.close();
                 }
        }catch(Exception e ){}
        
     }
    
    
    //执行操作
    public ResultSet execute(String sql,Object[] params,int flag)
       {
        getConnection();
        try{
            ps=conn.prepareStatement(sql);
            if(params !=null)
              {
                for(int i=0;i<params.length;i++)
                  {
                    
                    ps.setObject(i+1, params[i]);
                    
                  }
                
                
              }
            
            if(flag==0){
                rs=ps.executeQuery();
            return rs;}
            else if(flag==1){
                rs1=ps.executeUpdate(sql);
                if(rs1==1){System.out.println("插入成功");}
            }
            
        }catch(SQLException e){e.printStackTrace();}
        
        return null;
       }
    
    
//    public static void main(String[] args) {
//        // TODO Auto-generated method stub
//        basedao bd=new basedao();
//        bd.getConnection();
//    }

}

 

以上是关于JAVA连接SQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

java sql数据库查询语句怎么写

java sql数据连接池的问题?

Java sql server数据库连接成功

JDBC之java数据库的连接与简单的sql语句执行

java可以到出sql文件的数据数据库是oracle

java连接SQL Server数据库