JAVA数据库连接大全
JAVA界面程序设计和数据库连接

JA V A界面程序设计和数据库连接一、原理简介1. JAV A连接数据库的原理:使用JDBC(JA V A数据库连接)组件完成,JDBC在JA V A 程序和数据之间是一个桥梁作用。
JA V A通过JDBC向数据库发送SQL命令,数据库执行SQL命令后将结果通过JDBC返回给JAV A程序。
连接方法:JAV A程序《------》JDBC《------》Oracle Driver《------》Oracle数据库Oracle Driver: Oracle 数据库的驱动程序2.JDBC常用的接口:DriverManager:负责加载不同的驱动程序Statement:用来执行SQLResultSet:表示数据库的查询表(结果)3.连接过程(1)加载JDBC包(2)注册Oracle JDBC驱动程序(3)打开数据库连接(4)创建Statement对象(5)提交SQL语句(6)获得SQL执行的结果(8)关闭对象二、数据库连接案例程序功能介绍:从一个表login中查询表的每一个记录,并显示记录(每个记录的ID 和Password)。
(1)建立project,命名为conn(2)添加一个新的class文件,命名为conn(3)将下面的代码拷贝到程序编辑窗口import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.*;public class conn{public static void main(String[] args) {String sql = "";Connection conn = null;ResultSet rs;try {//注册驱动程序Class.forName("oracle.jdbc.driver.OracleDriver");//连接数据库,这里连接远程的数据库服务器orcl,用户名stu06,密码swufe111conn =DriverManager.getConnection("jdbc:oracle:thin:@192.168.210.229:1521:o rcl","stu01","swufe111");//创建Statement对象Statement stmt= conn.createStatement();sql="select * from login ";//向Oracle数据库端提交SQL,并由Oracle数据库执行SQL,返回结果给rsrs=stmt.executeQuery(sql);//访问查询的数据集while(rs.next()){System.out.println("用户名:"+rs.getString(1)+"密码:"+rs.getString(2));}//关闭数据库的连接,防止连接泄露stmt.close();conn.close();} catch (ClassNotFoundException e) {//捕捉数据库驱动异常错误System.out.println("加载数据库驱动异常,请检查");} catch (SQLException e) {//捕捉sql执行错误System.out.println("执行数据库操作异常,SQL语句为:" + sql);System.out.println("异常错误是:" + e.toString());}}}(4)加载ojdbc14.jar包:->双击scr-default package ->选择build Path->config build path->ilibaries->Add External->Archives->选择ojdbc14.jar包(5)运行程序看看效果案例二:登陆程序(带用户界面的登陆程序import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.Color;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JPasswordField;import java.sql.*;public class FormAdd extends JFrame implements ActionListener {private JLabel label1 = new JLabel("账号");private JLabel label2 = new JLabel("密码");private JLabel label3 = new JLabel("登录状态");private JTextField txtId = new JTextField(25);private JPasswordField txtPass = new JPasswordField(25);private JButton btnOK = new JButton("确定");private JButton btnCancel = new JButton("取消");FormAdd(){this.setSize(500,200);this.setTitle("登录界面");this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setLayout(new FlowLayout(FlowLayout.CENTER,70,20));this.add(label1);this.add(txtId);this.add(label2);this.add(txtPass);this.add(btnOK);this.add(btnCancel);label3.setForeground(Color.RED);this.add(label3);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.setVisible(true);}// @Overridepublic void actionPerformed(ActionEvent event) {if(event.getSource().equals(btnOK)){String sql = "";Connection conn = null;ResultSet rs;try {Class.forName("oracle.jdbc.driver.OracleDriver");conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.210.229:1521:orcl","stu01","sw ufe111");Statement stmt = conn.createStatement();sql="select count(*) from login where id='"+txtId.getText()+"' and password='"+txtPass.getText()+"'";rs=stmt.executeQuery(sql);if(rs.next()){if(rs.getInt(1)!=0){label3.setText("登录成功");}else{label3.setText("登录失败");}}stmt.close();conn.close();} catch (ClassNotFoundException e) {System.out.println("加载数据库驱动异常,请检查");//e.printStackTrace();} catch (SQLException e) {System.out.println("执行数据库操作异常,SQL语句为:" + sql);System.out.println("异常错误是:" + e.toString());//e.printStackTrace();}}else{txtId.setText("");txtPass.setText("");}}public static void main(String[] args) {new FormAdd();}}。
几种常见的数据库连接方法

几种常见的数据库连接方法数据库连接是应用程序与数据库之间进行通信的重要步骤。
下面将介绍几种常见的数据库连接方法。
1.JDBC连接:Java数据库连接(JDBC)是一种用于在Java应用程序和数据库之间建立连接的API。
JDBC提供了一套标准的接口,通过该接口,开发人员可以使用Java编程语言轻松地与数据库进行交互。
JDBC连接需要提供数据库的连接信息,包括数据库的URL、用户名和密码。
通过JDBC,开发人员可以执行SQL语句并获取查询结果。
2.ODBC连接:开放数据库连接(ODBC)是一种通用的数据库连接API。
ODBC提供了一组标准函数,让开发人员可以使用不同的编程语言连接到数据库并执行SQL查询。
ODBC连接需要使用数据库的驱动程序来建立连接,并提供连接字符串、用户名和密码等信息。
ODBC连接可以用于多种数据库,包括MySQL、Oracle、Microsoft SQL Server等。
3.ADO连接:4.OLEDB连接:OLE DB是一种面向对象的数据库连接接口,它可以用于访问多种类型的数据源,包括关系型数据库、文本文件、Excel等。
OLE DB连接提供了一组类似于ADO的对象和方法,开发人员可以使用C++、C#等编程语言连接数据库。
OLE DB连接需要提供数据库的连接字符串、用户名和密码等信息。
5.ORM连接:对象关系映射(ORM)是一种将关系型数据库和面向对象编程语言进行映射的技术。
ORM连接使用ORM框架,如Hibernate、Entity Framework等,将数据库表映射为面向对象的类,开发人员可以使用面向对象的方式来访问数据库。
ORM连接需要提供数据库的连接信息,并使用对应的ORM框架来建立连接。
除了以上几种常见的数据库连接方法,还有一些特定数据库的连接方法,如MongoDB的驱动程序连接、Redis的客户端连接等。
这些连接方法根据数据库的特点和使用场景进行了优化和扩展,可以更好地满足各种需求。
Java连接oracle数据库方法

Java连接oracle数据库一、普通的连接数据库1、注册驱动Class.forName(“oracle.jdbc.driver.OracleDriver”);2、获取连接Connection conn=null;conn= DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:XE”,user,pa ssword);3、建立statementStatement stat=conn.createStatement();4、执行SQL语句stat.execute(“SQL语句”);5、处理结果集ResultSet rs=null;rs=stat.executeQuery(“SQL语句”);While(rs.next()){System.out.println(“id:”+rs.getInt(“id”)+”last_name”+getString(“l ast_name”));}6、关闭连接Rs.close();Stat.close();Conn.close();二、加载properties文件连接数据库并使用PreparedStatement --------------------首先准备xxx.properties文件---------------------user=xxxxxpassword=xxxxxxdriver=oracle.jdbc.driver.DriverOracleurl=jdbc:oracle:thin:@127.0.0.1:1521:XE--------------------------------------------------------------------------------1、创建properties实例对象Properties prop=new Properties();2、加载xxx.properties文件prop.load(new FileInputStream(“xxx.properties文件路径”));3、获取xxx.properties文件中的属性Class.forName(prop.getString(“driver”));conn=DriverManager.getConnetion(prop.getString(“url”,prop));4、创建PreparedStatement实例对象并执行语句String sql=“select*from table_name where id=?And last_name=?”;PreparedStatement ps=conn.preparedStatement(sql);ps.setInt(1,4);ps.setString(2,”nihao”);ps.execute();5、处理结果集ResultSet rs=null;rs=ps.executeQuery(“SQL语句”);While(rs.next()){System.out.println(“id:”+rs.getInt(“id”)+”last_name”+getString(“l ast_name”));}6、关闭连接rs.close();ps.close();Conn.close();三、DOM解析XML文件连接数据库--------------------首先准备xxx.xml文件---------------------<?xml version="1.0"encoding="UTF-8"?><PEOPLE><PERSON><className>oracle.jdbc.driver.OracleDriver</className><url>jdbc:oracle:thin:@127.0.0.1:1521:XE</url><user>user</user><password>xxx</password></PERSON></PEOPLE>-------------------------------------------------------------------------Connection conn=null;try{1、建立解析工厂,获取实例DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();2、创建文件解析器DocumentBuilder builder=factory.newDocumentBuilder();3、加载xml文件Document doc=builder.parse("xxx.xml文件路径");4、获取根节点NodeList nl=doc.getElementsByTagName("PEOPLE");Element node=(Element)nl.item(0);5、获取驱动StringclassName=node.getElementsByTagName("className").item(0).getFirstChild().get NodeValue();6、获取urlStringurl=node.getElementsByTagName("url").item(0).getFirstChild().getNodeValue();7、获取用户名Stringuser=node.getElementsByTagName("user").item(0).getFirstChild().getNodeValue();8、获取用户密码Stringpwd=node.getElementsByTagName("password").item(0).getFirstChild().getNodeValu e();9、注册驱动Class.forName(className);10、连接数据库conn=DriverManager.getConnection(url,user,pwd);}catch(Exception e){e.printStackTrace();}。
JAVA连接ORACLE数据库步骤

JAVA连接ORACLE数据库步骤Java是一种跨平台的编程语言,可以用于连接和操作各种类型的数据库,包括Oracle数据库。
连接Oracle数据库的步骤如下:3. 加载驱动:在Java程序中加载Oracle数据库的驱动程序。
可以使用Class.forName(方法来加载驱动,如下所示:```Class.forName("oracle.jdbc.OracleDriver");```4. 创建连接:使用DriverManager类中的getConnection(方法创建与Oracle数据库的连接。
在连接方法中,需要传递数据库的URL、用户名和密码等参数。
例如:```String username = "your-username";String password = "your-password";Connection conn = DriverManager.getConnection(url, username, password);```5. 执行SQL语句:通过创建的连接对象,可以执行各种SQL语句来对数据库进行操作。
可以使用Statement或PreparedStatement对象来执行SQL语句。
例如,查询所有的表格:```Statement stmt = conn.createStatement(;ResultSet rs = stmt.executeQuery("SELECT * FROM ALL_TABLES");while (rs.next()String tableName = rs.getString("TABLE_NAME");System.out.println(tableName);```6. 关闭连接:在完成对Oracle数据库的操作后,需要关闭连接以释放资源。
可以调用Connection对象的close(方法来关闭连接,如下所示:```conn.close(;```以上是连接Oracle数据库的基本步骤。
编程选择题40道:Java数据库连接:JDBC与数据库交互.Tex

1.在JDBC中,用于连接数据库的接口是什么?o A. PreparedStatemento B. DriverManagero C. ResultSeto D. Connection答案:D解析:在JDBC中,Connection接口用于表示与数据库的连接。
2.下列哪个类用于处理SQL语句的执行结果?o A. Statemento B. ResultSeto C. Connectiono D. Driver答案:B解析:ResultSet类用于处理执行SQL语句的结果集。
3.JDBC中,用于执行SQL语句的类是?o A. Connectiono B. PreparedStatemento C. ResultSeto D. DriverManager答案:B解析:PreparedStatement类用于执行预编译的SQL语句,Statement类则用于执行简单的SQL语句。
4.要使用JDBC连接数据库,哪个方法用于加载JDBC驱动?o A. Connection.getConnection()o B. DriverManager.getDriver()o C. Class.forName()o D. PreparedStatement.prepareStatement()答案:C解析:Class.forName()用于加载JDBC驱动,这是在连接数据库前必须要执行的步骤。
5.下面哪个选项不是PreparedStatement相对于Statement的优点?o A. 预编译SQL语句提高执行效率o B. 处理结果集更灵活o C. 防止SQL注入o D. 设置参数更方便答案:B解析:PreparedStatement在性能、安全性和参数设置上优于Statement,但两者处理结果集的能力基本相同。
6.JDBC中的DriverManager类的哪个方法用于建立数据库连接?o A. getConnection()o B. getDriver()o C. registerDriver()o D. setLoginTimeout()答案:A解析:getConnection()方法用于根据给定的数据库URL、用户名和密码建立数据库连接。
java常用的连接mongodb的方法

java常用的连接mongodb的方法在Java中连接MongoDB有很多方法,下面将介绍一些常用的方法。
1. 使用MongoClient连接MongoDB:MongoClient是MongoDB官方提供的Java连接驱动程序,可以用来连接MongoDB服务器。
以下是连接MongoDB的代码示例:```javapublic class MongoDBConnectionpublic static void main(String[] args)MongoClient mongoClient = new MongoClient(connectionString);MongoDatabase database = mongoClient.getDatabase("mydb");System.out.println("Connected to the database successfully");mongoClient.close(;}```2. 使用MongoClientOptions配置连接MongoDB:MongoClientOptions用于配置MongoClient的一些选项,例如连接池的最大连接数、连接超时时间等。
以下是连接MongoDB的代码示例:```javapublic class MongoDBConnectionpublic static void main(String[] args)MongoClientOptions options = MongoClientOptions.builder.connectionsPerHost(10).connectTimeout(5000).build(;MongoDatabase database = mongoClient.getDatabase("mydb");System.out.println("Connected to the database successfully");mongoClient.close(;}```3. 使用MongoClient连接MongoDB副本集:如果要连接MongoDB的副本集,需要使用MongoClient的另一个构造函数,并传入一个MongoClientURI。
java 数据对接方法
java 数据对接方法Java 数据对接方法1. 数据对接介绍数据对接是指不同系统之间进行数据传输和共享的过程。
在Java 中,我们可以使用多种方法实现数据对接,包括但不限于以下方法:•Java Socket:基于TCP/IP协议的套接字通信方式,可以实现实时数据传输和双向通信。
•Java URL:提供了一种简单的访问网页和资源的方法,可以处理HTTP请求和响应。
•Java HttpURLConnection:是Java中处理HTTP网络请求的基础类,提供了丰富的方法用于发送和接收HTTP请求和响应。
•Java Sockets与Java Server Sockets:分别用于实现客户端和服务器端的套接字通信,在局域网中可用于数据传输和通信。
•Java RMI(Remote Method Invocation):是一种支持在远程服务器上调用方法的Java API,可以实现分布式应用程序之间的数据传输。
•Java JMS(Java Message Service):Java消息服务,是一种用于在分布式系统中发送、接收消息的API,常用于异步通信。
2. Java SocketJava Socket是Java程序进行网络通信的基础类,它提供了一种简单而底层的方式来进行数据对接。
使用Java Socket可以实现客户端和服务器之间的双向通信,具体步骤如下:1.创建一个Socket对象,指定服务器的IP地址和端口号。
2.调用Socket对象的getOutputStream()方法获取输出流,用于向服务器发送数据。
3.调用Socket对象的getInputStream()方法获取输入流,用于从服务器接收数据。
4.使用输入流和输出流进行数据的读写操作。
5.使用完毕后,调用Socket对象的close()方法关闭连接。
3. Java URLJava URL类是Java提供的用于处理URL(Uniform Resource Locator)的类,可以用于访问网页和其他资源。
JAVA连接ACCESS数据库
2、(使用System.Data.OleDb)<1> string str ="Provider=SQLOLEDB;Data Source=(local);Initial Catalog=mytable;uid=sa;pwd=sa";OleDbConnection con = new OleDbConnection(str);try{con.Open(); //尝试打开连接Label1.Text = "连接成功"; //提示连接成功con.Close(); //关闭连接}catch{Label1.Text = "连接失败"; //提示连接失败}<2> OleDbConnection con= new OleDbConnection(); //创建连接对象con.ConnectionString="Provider=SQLOLEDB;DataSource=(local);Initial Catalog=mytable;uid=sa;pwd=sa"; //初始化连接字串try{con.Open(); //尝试打开连接Label1.Text = "连接成功"; //提示连接成功con.Close(); //关闭连接}catch{Label1.Text = "连接失败"; //提示连接失败}注:命名空间必须加上using System.Data.SqlClient或using System.Data.OleDb二、填充Dataset数据集SqlDataAdapter da=new SqlDataAdapter("select * from news",con); //创建适配器DataSet ds = new DataSet(); //创建数据集da.Fill(ds, "tablename"); //Fill方法填充三、显示Datasetds.Tables["tablename"].Rows[0]["title"].ToString(); //获取数据集for (int i = 0; i < ds.Tables["tablename"].Rows.Count; i++) //遍历DataSet数据集{Response.Write(ds.Tables["tablename"].Rows[i]["title"].ToString()+"<br/>");}DataList1.DataSource = ds; //绑定数据集DataList1.DataMember = "tablename";DataList1.DataBind(); //绑定数据插入或删除操作:string str = "server='(local)';database='mytable';uid='sa';pwd='sa'"; //创建数据库连接字串SqlConnection con = new SqlConnection(str);con.Open(); //打开数据库连接SqlCommand cmd = new SqlCommand("insert into news values ('title')",con); //建立Command对象cmd.ExecuteNonQuery(); //执行SQL语句连接ACCESS数据库:(使用System.Data.OleDb)string str = "provider=Microsoft.Jet.OLEDB.4.0 ;Data Source="+ Server.MapPath("access.mdb") + ""; //使用相对路径OleDbConnection con = new OleDbConnection(str); //构造连接对象try{con.Open(); //打开连接Label1.Text = "连接成功"; //提示连接成功con.Close();}catch(Exception ee) //抛出异常{Label1.Text = "连接失败";}。
#JAVA学习:数据库连接
结束
11
/**这是 main 方法. */
JDBC 程序访问数据库的步骤 2-2 public static void main(String [] args) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
它S演ys示tem访.ou问t.pr数intln据(ce库); 的各个步骤
/**}© 2005 Aptech Limited
*在t版ry执权{ 所行有示例 1 中的程序之前,SQL Server 中应该存在一个
im*名/po为SCrttorjinannfgverauci.rtseiloq=nnl."ScdjdoQbsncL=:Eo的Ddxbrci表cve:eptertMsiota"n;n;ager.getConnection(url); iimmppooSRwrrtttheajjisaalteeuvvml(taaSres..列ess.nntqqterll名ss..xDCt==(ro)称ic)svno.{enenrxe.McecrcteauioantetnaeQ;gSuetaer数t;reym("据seenlte类()c;t 型* from friends");
使用 JDBC 编写此查询,则代码为:
String str = "SELECT emp_id, lname, fname FROM colleagues"; Statement stmt = con.createStatement(); ResultSet rset = stmt.executeQuery(str);
java连接数据库语句
java连接数据库语句在Java中,可以使用JDBC(Java Database Connectivity)来连接和操作数据库。
下面是连接数据库的常见语句示例:1. 加载数据库驱动:```javaClass.forName("com.mysql.jdbc.Driver");```2. 建立数据库连接:```javaString url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";Connection connection = DriverManager.getConnection(url, username, password);```其中,url是数据库的地址,username和password是登录数据库的用户名和密码。
3. 执行SQL查询或更新:```javaStatement statement = connection.createStatement();String sql = "SELECT * FROM mytable";ResultSet resultSet = statement.executeQuery(sql);``````javaString sql = "INSERT INTO mytable (column1, column2) VALUES ('value1', 'value2')";int rowsAffected = statement.executeUpdate(sql);```4. 处理结果集:```javawhile (resultSet.next()) {String column1 = resultSet.getString("column1");String column2 = resultSet.getString("column2");// 处理每一行数据}```5. 关闭数据库连接:```javaresultSet.close();statement.close();connection.close();```以上是连接和操作数据库的基本语句示例,具体的语句会根据使用的数据库类型、需要执行的SQL语句和具体业务需求进行调整。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA数据库连接大全{经典}xpjjyPreparedStatement都只对它解析和编译一次。
当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。
这可能会使你认为,使用PreparedStatement对象比使用Statement对象的速度更快。
然而,我进行的测试表明,在客户端软件中,情况并非如此。
因此,在有时间限制的SQL操作中,除非成批地处理SQL命令,我们应当考虑使用Statement对象。
此外,使用Statement对象也使得编写动态SQL命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的SQL命令。
因此,我认为,Statement 对象可以使动态SQL命令的创建和执行变得更加简单。
4、利用helper函数对动态SQL命令进行格式化在创建使用Statement对象执行的动态SQL命令时,我们需要处理一些格式化方面的问题。
例如,如果我们想创建一个将名字O'Reilly插入表中的SQL命令,则必须使用二个相连的“''”号替换O'Reilly中的“'”号。
完成这些工作的最好的方法是创建一个完成替换操作的helper方法,然后在连接字符串心服用公式表达一个SQL命令时,使用创建的helper方法。
与此类似的是,我们可以让helper方法接受一个Date型的值,然后让它输出基于Oracle的to_date()函数的字符串表达式。
5、利用PreparedStatement对象提高数据库的总体效率在使用PreparedStatement对象执行SQL命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。
然后,每当执行同一个PreparedStatement对象时,它就会被再解析一次,但不会被再次编译。
在缓冲区中可以发现预编译的命令,并且可以重新使用。
在有大量用户的企业级应用软件中,经常会重复执行相同的SQL命令,使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。
如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务,我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。
6、在成批处理重复的插入或更新操作中使用PreparedStatement对象如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。
Oracle提供的Statement和 CallableStatement并不真正地支持批处理,只有PreparedStatement对象才真正地支持批处理。
我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement 对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。
要使用Oracle专有的批处理机制,可以以如下所示的方式调用setExecuteBatch():PreparedStatement pstmt3D null;try {((OraclePreparedStatement)pstmt).setExecuteBatch(30);...pstmt.executeUpdate();}调用setExecuteBatch()时指定的值是一个上限,当达到该值时,就会自动地引发SQL命令执行,标准的executeUpdate()方法就会被作为批处理送到数据库中。
我们可以通过调用PreparedStatement类的sendBatch()方法随时传输批处理任务。
7、使用Oracle locator方法插入、更新大对象(LOB)Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理,尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值,也不支持利用setCharacterStream()方法设置CLOB的值。
只有locator本身中的方法才能够从数据库中获取LOB类型的值。
可以使用PreparedStatement对象插入或更新LOB,但需要使用locator 才能获取LOB的值。
由于存在这二个问题,因此,我建议使用locator的方法来插入、更新或获取LOB的值。
8、使用SQL92语法调用存储过程在调用存储过程时,我们可以使用SQL92或Oracle PL/SQL,由于使用Oracle PL/SQL并没有什么实际的好处,而且会给以后维护你的应用程序的开发人员带来麻烦,因此,我建议在调用存储过程时使用SQL92。
9、使用Object SQL将对象模式转移到数据库中既然可以将Oracle的数据库作为一种面向对象的数据库来使用,就可以考虑将应用程序中的面向对象模式转到数据库中。
目前的方法是创建Java bean作为伪装的数据库对象,将它们的属性映射到关系表中,然后在这些bean中添加方法。
尽管这样作在Java中没有什么问题,但由于操作都是在数据库之外进行的,因此其他访问数据库的应用软件无法利用对象模式。
如果利用Oracle的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使用JPublisher等工具生成自己的Java bean类。
如果使用这种方式,不但Java应用程序可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以使用应用软件中的对象模式。
10、利用SQL完成数据库内的操作我要向大家介绍的最重要的经验是充分利用SQL的面向集合的方法来解决数据库处理需求,而不是使用Java等过程化的编程语言。
如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数据。
与此类似的任务可以通过在set子句中使用多列子查询而在一个UPDATE 命令中完成。
当能够在单一的SQL命令中完成任务,何必要让数据在网上流来流去的?我建议用户认真学习如何最大限度地发挥SQL的功能。
JDBC基础教程之驱动设置1、概述DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。
它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。
另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。
对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法是DriverManager.getConnection。
正如名称所示,该方法将建立与数据库的连接。
JDBC 允许用户调用 DriverManager 的方法 getDriver、getDrivers 和registerDriver 及 Driver 的方法 connect。
但多数情况下,让 DriverManager类管理建立连接的细节为上策。
1、跟踪可用驱动程序DriverManager 类包含一列 Driver 类,它们已通过调用方法DriverManager.registerDriver 对自己进行了注册。
所有 Driver 类都必须包含有一个静态部分。
它创建该类的实例,然后在加载该实例时 DriverManager 类进行注册。
这样,用户正常情况下将不会直接调用DriverManager.registerDriver;而是在加载驱动程序时由驱动程序自动调用。
加载 Driver 类,然后自动在 DriverManager 中注册的方式有两种:通过调用方法 Class.forName。
这将显式地加载驱动程序类。
由于这与外部设置无关,因此推荐使用这种加载驱动程序的方法。
以下代码加载类acme.db.Driver:class.forname("acme.db.driver");如果将 acme.db.Driver 编写为加载时创建实例,并调用以该实例为参数的DriverManager.registerDriver(本该如此),则它在 DriverManager 的驱动程序列表中,并可用于创建连接。
通过将驱动程序添加到 ng.System 的属性 jdbc.drivers 中。
这是一个由 DriverManager 类加载的驱动程序类名的列表,由冒号分隔:初始化DriverManager 类时,它搜索系统属性 jdbc.drivers,如果用户已输入了一个或多个驱动程序,则 DriverManager 类将试图加载它们。
以下代码说明程序员如何在 ~/.hotjava/properties 中输入三个驱动程序类(启动时,HotJava 将把它加载到系统属性列表中):jdbc.drivers=foo.bah.driver:wombat.sql.driver:bad.test.ourdriver;对 DriverManager 方法的第一次调用将自动加载这些驱动程序类。
注意:加载驱动程序的第二种方法需要持久的预设环境。
如果对这一点不能保证,则调用方法 Class.forName 显式地加载每个驱动程序就显得更为安全。
这也是引入特定驱动程序的方法,因为一旦 DriverManager 类被初始化,它将不再检查 jdbc.drivers 属性列表。
在以上两种情况中,新加载的 Driver 类都要通过调用DriverManager.registerDriver 类进行自我注册。
如上所述,加载类时将自动执行这一过程。
由于安全方面的原因,JDBC 管理层将跟踪哪个类加载器提供哪个驱动程序。
这样,当 DriverManager 类打开连接时,它仅使用本地文件系统或与发出连接请求的代码相同的类加载器提供的驱动程序。
2、建立连接加载 Driver 类并在 DriverManager 类中注册后,它们即可用来与数据库建立连接。
当调用 DriverManager.getConnection 方法发出连接请求时,DriverManager 将检查每个驱动程序,查看它是否可以建立连接。
有时可能有多个 JDBC 驱动程序可以与给定的 URL 连接。
例如,与给定远程数据库连接时,可以使用 JDBC-ODBC 桥驱动程序、JDBC 到通用网络协议驱动程序或数据库厂商提供的驱动程序。
在这种情况下,测试驱动程序的顺序至关重要,因为 DriverManager 将使用它所找到的第一个可以成功连接到给定 URL 的驱动程序。
首先 DriverManager 试图按注册的顺序使用每个驱动程序(jdbc.drivers 中列出的驱动程序总是先注册)。