「java连接spl」JAVA连接数据库

博主:adminadmin 2023-03-20 01:03:11 413

本篇文章给大家谈谈java连接spl,以及JAVA连接数据库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么用java连接SQL数据库?

如何用java连接sql的数据库 1、java数据库操作基本流程 : java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接

2、几个常用的重要技巧:可滚动、更新的记录集 、 批量更新 、事务处理1、取得数据库连接1)用DriverManager取数据库连接例子:String className,url,uid,pwd;

className = "oracle.jdbc.driver.OracleDriver";

url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;

uid = "system";

pwd = "manager";

Class.forName(className);

Connection cn = DriverManager.getConnection(url,uid,pwd);2)用jndi(java的命名和目录服务)方式例子String jndi = "jdbc/db";

Context ctx = (Context) new InitialContext().lookup("java:comp/env");

DataSource ds = (DataSource) ctx.lookup(jndi);

Connection cn = ds.getConnection(); //多用于jsp中2、执行sql语句1)用Statement来执行sql语句String sql;

Statement sm = cn.createStatement();

sm.executeQuery(sql); // 执行数据查询语句(select)

sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close();2)用PreparedStatement来执行sql语句String sql;

sql = "insert into user (id,name) values (?,?)";

PreparedStatement ps = cn.prepareStatement(sql);

ps.setInt(1,xxx);

ps.setString(2,xxx);

...

ResultSet rs = ps.executeQuery(); // 查询

int c = ps.executeUpdate(); // 更新3、处理执行结果查询语句,返回记录集ResultSet。更新语句,返回数字,表示该更新影响的记录数。ResultSet的方法:1、next(),将游标往后移动一行,如果成功返回true;否则返回false。2、getInt("id")或getSting("name"),返回当前游标下某个字段的值。3、释放连接。cn.close();一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection可滚动、更新的记录集1、创建可滚动、更新的StatementStatement sm=cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,

ResultSet.CONCUR_READ_ONLY);该Statement取得的ResultSet就是可滚动的2、创建PreparedStatement时指定参数PreparedStatemet ps=cn.prepareStatement(sql,

ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet.absolute(9000);批量更新1、StatementStatement sm = cn.createStatement();

sm.addBatch(sql1);

sm.addBatch(sql2);

...

sm.executeBatch()一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有2、PreparedStatementPreparedStatement ps = cn.preparedStatement(sql);

{

ps.setXXX(1,xxx);

...

ps.addBatch();

}

ps.executeBatch();一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。事务的处理1、关闭Connection的自动提交cn.setAutoCommit(false);2、执行一系列sql语句要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先closeStatement sm ;

sm = cn.createStatement(insert into user...);

sm.executeUpdate();

sm.close();sm = cn.createStatement("insert into corp...);

sm.executeUpdate();

sm.close();3、提交cn.commit();

java怎么连接sql2008

1.首先要去Microsoft官网下载sqljdbc2.0驱动——Microsoft SQL Server JDBC Driver 2.0.exe,很小大概就4M,解压后里面有2个Jar包,sqljdbc4.jar和sqljdbc.jar,这两个都一样,只是针对你的JDK的版本的不同,如果你是JDK6.0直接导入sqljdbc4.jar,以下版本的导入sqljdbc.jar,如果怕麻烦的,两个都导进去也行。

2.包导完了,现在启动SQL配置器,SQL2000的默认端口是1433,所以只要开启端口就能连得上,但08的端口据说是动态的,具体的本人也不清楚,就是因为这个端口我也被整了2天,最后终于连上了

打开配置器:

将IP ALL的TCP动态端口(默认1163)改为1433,不改也行,因为大部分人的习惯是用默认的1433,在IP2已启用选择——是,确定。

同样的方法,开启客户端的TCP/IP,端口也为1443,如图:

然后在DOS命令中输入测试 telnet 127.0.0.1 1433,

如果结果只有一个光标在闪动,那么就说明127.0.0.1 1433端口已经打开。

如果出现连接主机端口1433没打开,久要换端口。

一ODBC建立数据源

1 利用Java应用程序访问SQL Server2000数据库

(1)建立数据库

启动“Microsoft SQL Server2000”,打开“企业管理器”在“数据库”中建立名为“学生管理系统”的数据库,并在其下制作名为“学生信息”的数据表,如图1示。

(2)建立(ODBC)数据源和驱动程序

在控制面板上通过“管理工具”的“数据源(ODBC)”打开“ODBC数据源管理器”对话框,单击“系统DSN”选项卡,然后单击“添加”按钮,得到“创建数据源”对话框,选择“SQL Server”并单击“完成”按钮,在出现的“建立新的数据源到SQL Server”对话框中的“数据源名称”项填写“madata”并选取“服务器名”,然后单击“下一步”按钮,选择“使用网络登录ID的Windows NT验证”项目,单击“下一步”按钮,把默认的数据库改为“mydata”,再单击“下一步”,单击“完成”按钮,然后可以单击“测试数据源”,成功后,单击“确定”按钮,完成了(ODBC)数据源和驱动程序的建立。

(3)编写Java程序

package com.test1;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.sql.*;

public class Test extends JFrame{

JPanel jp1,jp2;

JLabel jl1;

JButton jb1,jb2,jb3,jb4;

JTable jt=null;

JScrollPane jsp=null;

JTextField jtf;

PreparedStatement ps=null;

Connection ct=null;

ResultSet rs=null;

Vector rowData,columName;

public static void main(String args[])

{

Test test=new Test();

}

public Test()

{

jp1=new JPanel();

jl1=new JLabel("请输入名字:");

jtf=new JTextField(10);

jb1=new JButton("查询:");

jp1.add(jl1);

jp1.add(jtf);

jp1.add(jb1);

jp2=new JPanel();

jb2=new JButton("添加:");

jb3=new JButton("修改:");

jb4=new JButton("删除:");

jp2.add(jb2);

jp2.add(jb3);

jp2.add(jb4);

columName = new Vector();

columName.add("学号");

columName.add("姓名");

columName.add("班级");

columName.add("系别");

columName.add("年龄");

columName.add("性别");

columName.add("籍贯");

rowData =new Vector();

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

ct=DriverManager.getConnection("jdbc:odbc:mydata");

ps=ct.prepareStatement("select *from 学生信息");

rs=ps.executeQuery();

while(rs.next())

{

Vector hang=new Vector();

hang.add(rs.getString(1));

hang.add(rs.getString(2));

hang.add(rs.getString(3));

hang.add(rs.getString(4));

hang.add(rs.getInt(5));

hang.add(rs.getString(6));

hang.add(rs.getString(7));

rowData.add(hang);

}

}

catch(Exception e)

{

System.out.println("数据库加载失败!");

}

finally

{

}

System.out.println("数据库加载成功!");

jt=new JTable(rowData,columName);

jsp=new JScrollPane(jt);

this.add(jp1,"North");

this.add(jsp);

this.add(jp2,"South");

this.setSize(400,300);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}

注意其中要引入jar包sqljdbc 2.0

java连接SQL数据库

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连接SQL2005数据库

你需要放一个sql2005的驱动放到项目中的bin文件夹中新建的一个lib文件夹里面,然后那个conn连接的代码可以这样写:conn

=

DriverManager.getConnection("jdbc:odbc:Driver={SQL

SERVER};server=.;database=数据库名;");这样写是通用的写法。

java如何实现sql连接和查询的代码?

import java.sql.Connection。

import java.sql.DriverManager;  

import java.sql.PreparedStatement;  

import java.sql.ResultSet;  

import java.sql.SQLException;

import javax.naming.Context;  

import javax.naming.InitialContext;  

import javax.naming.NamingException;  

import javax.sql.DataSource;

public class DBCon {

//数据库驱动对象

public static final String DRIVER="oracle.jdbc.driver.OracleDriver";

//数据库连接地址(数据库名)

public static final String URL="jdbc:oracle:thin:@localhost:1521:orcl";

//登陆名

public static final String USER="FM";

//登陆密码

public static final String PWD="FM";

//创建数据库连接对象

private Connection con=null;

//创建数据库预编译对象

private PreparedStatement ps=null;

//创建结果集

private ResultSet rs=null;

//创建数据源对象

public static DataSource source=null;

//  //静态代码块  

//  static{  

//  

//      //初始化配置文件context  

//      try {  

//          Context context=new InitialContext();  

//          source=(DataSource)context.lookup("java:comp/env/jdbc/webmessage");  

//      } catch (Exception e) {  

//          // TODO Auto-generated catch block  

//          e.printStackTrace();  

//      }  

//  

//  

//  }

/**

* 获取数据库连接

*/

public Connection getCon(){

try {

Class.forName(DRIVER);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

con=DriverManager.getConnection(URL,USER,PWD);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return con;

}  

//  /**  

//   * 获取数据库连接  

//   */  

//  public Connection getCon(){  

//  

//      try {  

//          con=source.getConnection();  

//      } catch (SQLException e) {  

//          // TODO Auto-generated catch block  

//          e.printStackTrace();  

//      }  

//  

//      return con;  

//  }  

/**

* 关闭所有资源

*/

public void closeAll(){

if(rs!=null)

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if(ps!=null)

try {

ps.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if(con!=null)

try {

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}  

}

/**

* @param sql数据库更新(增、删、改) 语句

* @param pras参数列表(可传,可不传,不传为NULL,以数组形式存在)

* @return 返回受影响都行数

*/

public int update(String sql,String... pras){

int resu=0;

con=getCon();

try {

ps=con.prepareStatement(sql);

for(int i=0;ipras.length;i++){

ps.setString(i+1,pras[i]);

}

resu=ps.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally{

closeAll();

}

return resu;

}

/**

* @param sql数据库查询语句

* @param pras参数列表(可传,可不传,不传为NULL,以数组形式存在)

* @return 返回结果集

*/

public ResultSet query(String sql,String... pras){

con=getCon();

try {

ps=con.prepareStatement(sql);

if(pras!=null)

for(int i=0;ipras.length;i++){

ps.setString(i+1, pras[i]);

}

rs=ps.executeQuery();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return rs;

}  

}

关于java连接spl和JAVA连接数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。