JAVA连接SQL数据库

importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;im... 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分
如果大多都是系统生成的. 那只要指出哪些是自己需要填写的.
比如数据库名字 表什么的.最好详细点.
展开
 我来答
盗人斯
2009-01-03 · TA获得超过673个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:88万
展开全部
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 中。
青鸟中关村专家
2018-08-03 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8440
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部

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


工具/材料

myeclipse 、 SqlServer数据库


方法:

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

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


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

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gdsfggdf
2009-01-03 · TA获得超过840个赞
知道小有建树答主
回答量:219
采纳率:100%
帮助的人:197万
展开全部
//你的大概的都给加了注释

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

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xc_jetguo
2009-01-03 · TA获得超过596个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:284万
展开全部
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());
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kankanwode1
2009-01-03
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
这个是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得内容?
}
顺便问你下你自学还是有老师教,改好好看书了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式