JAVA连接SQL数据库

作者&投稿:井砖 (若有异议请与网页底部的电邮联系)
java中怎么连接sql数据库~

java中使用jdbc连接sql server数据库步骤:
1.JDBC连接SQL Server的驱动安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)
将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量
在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar
设置SQLEXPRESS服务器:
a.打开SQL Server Configuration Manager -> SQLEXPRESS的协议 -> TCP/IP
b.右键单击启动TCP/IP
c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433
d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器
e.关闭SQL Server Configuration Manager
打开 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample
打开Eclipse
a.新建工程-> Java -> Java project,起名为Test
b.选择eclipse->窗口->首选项->Java->installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar
c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中
编写Java代码来测试JDBC连接SQL Server数据库

是这样子拼接的么:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con=DriverManager.getConnection("jdbc:sqlserver://localhost;database=Students","sa","sa");

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 中。

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


工具/材料

myeclipse 、 SqlServer数据库


方法:

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

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


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

注意在导包是导入的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";
//连接路径 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;
}

}

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

}

}

这个是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连接SQL server 2000 详细步骤
在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。 一、jsp连接Oracle8\/8i\/9i数据库(...

ava.sql.SQLException: You have an error in your SQL syntax
如果是数字的,试试把单引号去掉:String sql = "select * from tblFile where fileID=" + fileID;

无法识别字符串类型ava.sql.SQLDataException求大神看看这是期末作业秋...
你看下你前台传过来的值,哪个是gasfg,然后找到这个属性。你表中的这个字段对应的是double,你直接给个不是数值的字符串,肯定是错的。要传递一个数值

ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop...
是Java 不是ava。线程的实现方法就是两种了,一种是继承Thread类一种是实现Runnable接口同步方法当然是用同步Synchronized修饰了stop和suspend太粗暴了,不问青红皂白就把线程干掉了,很不讲理很不安全的,当然不推荐使用 本回答被网友采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 ...

sql怎么查询带有2个以上单词的内容?
用like可以做到。假设你的表名是T1,歌手名字的列名是sname 可以这样查:select sname from T1 where sname like '% % %' order by sname

java 初级、中级、高级工程师有什么区别?
所以为了更好的为国家做贡献,建议您还是多了解一些主流数据库,比如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出身,您还需要补充一些数据库原理方面的知识。 6、精通一种或两种WEBServer。我还是要强调您要精通一种或两种。因为作为JAVA工程师,特别时想成为高级JAVA工程师的您,您不可避免地...

ava.sql.SQLException: OAUTH 编集失败
我的问题是因为使用Oracle数据库却没有先建立用户,直接使用了system登录,应该先创建用户,再分配表空间,然后使用新用户账号密码连接数据库

简单的jsp连接oracle数据库问题!但是连不通,我是新手请大家帮忙!!_百度...
ava.sql.SQLException: Io 异常: The Network Adapter could not establish the connection 异常:网络适配器无法建立连接。oracle建立连接有2中模式 thin 和 oci 你写的String url="jdbc:oracle:oci8:@localhost:1521:oracle";oci8???--- 两种模式从使用上来说,oci必须在客户机上安装oracle客户端...

java.util.Date和java.sql.Date相互转换问题
java.sql.Date没有直接显示hh:mm:ss的方法(除过时方法);有一种比较麻烦的方法可以实现你的要求。java.sql.Date b = new java.sql.Date(new java.util.Date().getTime());java.util.Date c = new java.util.Date(b.getTime());System.out.println(b+" "+c.toString().split(" ")[...

如何用javascript操作access数据库
var sqlUpdCnt = "UPDATE [COUNT] SET [COUNT] = '";\/\/建立连接,并生成相关字符串 www.knowsky.com。var con = new ActiveXObject("ADODB.Connection");con.Provider = "Microsoft.Jet.OLEDB.4.0";con.ConnectionString = "Data Source=" + path;con.open;var rs = new ActiveXObject("...

桃城区14768468802: 如何建立Java程序与SQL数据库的连接? -
褚寇尼尔: 两种方式: 1、jdbc-odbc连接,也叫桥连接. 驱动字符串:sun.jdbc.odbc.jdbcodbcdriver 连接字符串:jdbc:odbc:数据源名称 2、jdbc,也叫直连接 需要驱动包,并且要将驱动包复制到:jdk安装路径\jre\lib\ext\下,或通过ide将驱动包加载到程...

桃城区14768468802: 怎么实现JAVA与SQL连接 -
褚寇尼尔: 有两种链接方式,一种是JDBC链接ODBC再连接数据库(使用的是SQLServer)一种是SQLServer提供的1433端口,直接通过JDBC链接1433端口连接数据库~ 第一,要加载驱动,方法是:Class.forName("sun.jdbc.JdbcodbcDriver"); 第二...

桃城区14768468802: java怎么连接sql server 2005 -
褚寇尼尔: 一、JAVA连接SQL的语句 JAVA连接SQL2000语句为: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); DriverManager.getConnection("jdbc:odbc:数据库名","数据库登录名","登录密码"); 但连接SQL2005,已经改为: Class...

桃城区14768468802: java怎么和sql server数据库连接 我想要具体步骤 -
褚寇尼尔: String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=test"; //连接服务器和数据库testString userName = "sa"; //默认用户名String ...

桃城区14768468802: java连接SQL数据库
褚寇尼尔: 方法一:(需导入连接数据库的包) private static Connection conn=null; // private String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; private String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=s2_sql";//这里的s...

桃城区14768468802: java连sql数据库怎么怎么连? -
褚寇尼尔: 首先看你连什么数据库,其次看看你有没有使用框架、例如hibernate、mybatis 如果没有使用框架,就用最基础的jdbc连接,就是楼上“孤独飞雪飘”所说的,记得添加和数据库相应的jar包

桃城区14768468802: 如何建立Java程序与SQL数据库的连接?
褚寇尼尔: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class BaseDao { //连接 private Connection conn = null; //静态块 static { //实例化驱动类 try { Class.forName("com.microsoft.sqlserver.jdbc....

桃城区14768468802: 如何用JAVA与SQL数据库连接
褚寇尼尔: SQL Server的连接代码如下: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";//mydb为数据库 String user="sa"; String password...

桃城区14768468802: java 怎么连接sql数据库 帮忙步骤讲解以及代码参考 -
褚寇尼尔: 首先,使用JDBC技术获取数据库连接: public static Connection getConnection(){try{Class.forName("oracle.jdbc.driver.OracleDriver");Connection con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "root", "...

桃城区14768468802: JAVA如何连接数据库SQL
褚寇尼尔: import java.sql.ResultSet; //都是导入一些下面需要用到的类 String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library";//jdbc连接数据库url public sqlServer() { try { Class.forName(DBDriver).newInstance(); //加载...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网