当前位置:文档之家› jdbc

jdbc

jdbc
jdbc

JDBC

什么是JDBC?

Java语言访问数据库的一种规范,是一套API

JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。

JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaEE。这些接口的实现类叫做数据库驱动程序,由数据库的厂商或其它的厂商或个人提供。

为了使客户端程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使应用仅依赖java.sql及javax.sql中的接口和类。

JDBC驱动程序:

什么是JDBC驱动程序?

这些是各个数据库厂家根据JDBC的规范制作的JDBC实现类

JDBC驱动程序的四种类型:

1.第一种类型的驱动程序的实现是通过将JDBC的调用全部委托给其它编程接口来实现的,

比如ODBC。这种类型的驱动程序需要安装本地代码库,即依赖于本地的程序,所以便携性较差。比如JDBC-ODBC桥驱动程序

2.第二种类型的驱动程序的实现是部分基于Java语言的。即该驱动程序一部分是用Java

语言编写,其它部分委托本地的数据库的客户端代码来实现。同类型1的驱动一样,该类型的驱动程序也依赖本地的程序,所以便携性较差

3.第三种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序通常由某个中

间件服务器提供,这样客户端程序可以使用数据库无关的协议和中间件服务器进行通信,中间件服务器再将客户端的JDBC调用转发给数据库进行处理

4.第四种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序中包含了特定

数据库的访问协议,使得客户端可以直接和数据库进行通信

JDBC类结构:

DriverManager:这个是一个实现类,它是一个工厂类,用来生产Driver对象的

这个类的结构设计模式为工厂方法

Driver:这是驱动程序对象的接口,它指向一个实实在在的数据库驱动程序对象,那么这个数据库驱动程序对象是从哪里来的呢?

DriverManager工厂中有个方法:getDriver(String URL),通过这个方法可以得到驱动程序对象,这个方法是在各个数据库厂商按JDBC规范设计的数据库驱动程序包里的类中静态实现的,也就是在静态块中

Connection:这个接口可以制向一个数据库连接对象,那么如何得到这个连接对象呢?

是通过DriverManager工厂中的getConnection(String URL)方法得到的Statement:用于执行静态的SQL语句的接口,通过Connection中的createStatement 方法得到的

Resultset:用于指向结果集对象的接口,结果集对象是通过Statement中的execute等方法得到的

JAVA使用JDBC访问数据库的步骤:

1.得到数据库驱动程序

2.创建数据库连接

3.执行SQL语句

4.得到结果集

5.对结果集做相应的处理(增,删,改,查)

6.关闭资源:这里释放的是DB中的资源

设置classpath:

1.在java文件中起的包名一定要是工程基目录下的子目录,classpath:基目录

2..jar包,需要将这个.jar包的路径包括这个文件的全名添加到classpath中来

Oracle连接字符串的书写格式:

“oracle:jdbc:thin:@ip:1521: 数据库名”,”数据库用户名”,”数据库密码”

简单的例子:

package moudule1.first;

import java.sql.*;

public class FirstJdbc

{

public static void main(String[] args)

{

String sql="select * from yuchen_user";

Connection con=null;

Statement st=null;

ResultSet rs=null;

try

{

Class.forName("oracle.jdbc.driver.OracleDriver");

con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:name", "scott","tiger");

st=con.createStatement();

rs=st.executeQuery(sql);

while(rs.next())

{

System.out.println(rs.getInt("id"));

System.out.println(rs.getString("name"));

}

}catch(Exception e)

{

e.printStackTrace();

}finally

{

try

{

con.close();

}catch(Exception e)

{}

try

{

st.close();

}catch(Exception e)

{

}

try

{

rs.close();

}catch(Exception e)

{

}

}

}

}

常用数据库的驱动程序及JDBC URL:

Oracle数据库:

驱动程序包名:ojdbc14.jar

驱动类的名字:oracle.jdbc.driver.OracleDriver

JDBC URL:jdbc:oracle:thin:@dbip:port:databasename

说明:驱动程序包名有可能会变

JDBC URL中黑色字体部分必须原封不动的保留,为该驱动识别的URL格式。红色字体部分需要根据数据库的安装情况填写。其中各个部分含义如下:

dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。

port –为数据库的监听端口,需要看安装时的配置,缺省为1521。

databasename –为数据库的SID,通常为全局数据库的名字。

举例如果要访问本地的数据库allandb,端口1521,那么URL写法如下:

jdbc:oracle:thin:@localhost:1521:allandb 下载地址如下:

https://www.doczj.com/doc/4a13298716.html,/technology/software/tech/java/sqlj_jdbc/index.html

SQL Server数据库

驱动程序包名:msbase.jar mssqlserver.jar msutil.jar

驱动类的名字:com.microsoft.jdbc.sqlserver.SQLServerDriver

JDBC URL:jdbc:microsoft:sqlserver://dbip:port;DatabaseName=databasename

说明:驱动程序包名有可能会变

JDBC URL中黑色字体部分必须原封不动的保留,为该驱动识别的URL格式。红色字体部需要根据数据库的安装情况填写。其中各个部分含义如下:

dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。

port –为数据库的监听端口,需要看安装时的配置,缺省为1433。

databasename –数据库的名字。

举例如果要访问本地的数据库allandb,端口1433,那么URL写法如下:

jdbc: microsoft: sqlserver:@localhost:1433; DatabaseName =allandb

下载地址:https://www.doczj.com/doc/4a13298716.html,/downloads/details.aspx

MySQL数据库

驱动程序包名:mysql-connector-java-3.1.11-bin.jar

驱动类的名字:com.mysql.jdbc.Driver

JDBC URL:jdbc:mysql://dbip:port/databasename

说明:驱动程序包名有可能会变

JDBC URL中黑色字体部分必须原封不动的保留,为该驱动识别的URL格式。红色字体部需要根据数据库的安装情况填写。其中各个部分含义如下:

dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。

port –为数据库的监听端口,需要看安装时的配置,缺省为3306。

databasename –数据库的名字。

举例如果要访问本地的数据库allandb,端口1433,那么URL写法如下:

jdbc:mysql://localhost:3306/allandb

下载地址:https://www.doczj.com/doc/4a13298716.html,/downloads/connector/j/

Access数据库

驱动程序包名:该驱动程序包含在JavaSE中,不需要额外安装。

驱动类的名字:sun.jdbc.odbc.JdbcOdbcDriver

JDBC URL:jdbc:odbc:datasourcename

说明:该驱动只能工作在Windows系统中,首先需要在操作系统中建立一个可以访问Access数据库的本地数据源(ODBC),如果名字为allandb,那么URL写法如下:jdbc:odbc:allandb

PreparedStatement接口:

预编译的sql语句对象

作用: 解决了书写sql语句时一些特殊的字符与sql保留字符冲突的问题,非常方便

/**

*知识点:

*PreparedStatement接口及方法的使用

*程序目标:

*java文件:

*PreparedInsert.java:连接数据库,插入一条数据

*JdbcUtil.java:实现一个工具类,功能:1.连接数据库2.关闭资源

*/

package moudule1.preparedstatement;

import java.sql.*;

import https://www.doczj.com/doc/4a13298716.html,.*;

public class PreparedInsert

{

public static void main(String[] args)

{

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

System.out.println(sql);

Connection con=null;

PreparedStatement ps=null;

try{

con=JdbcUtil.getConnection();

ps=con.prepareStatement(sql);

ps.setInt(1,2);

ps.setString(2,"zhangsan");

ps.executeUpdate();

ps.setInt(1,3);

ps.setString(2,"lisi");

ps.executeUpdate();

}catch(Exception e){

e.printStackTrace();

}finally{

JdbcUtil.close(con,ps);

}

}

}

package https://www.doczj.com/doc/4a13298716.html,;

import java.sql.*;

public class JdbcUtil{

public static Connection getConnection() throws Exception{

Class.forName("oracle.jdbc.driver.OracleDriver");

return DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:name", "scott","tiger");

}

public static void close(Connection con,Statement st){

close(con);

close(st);

}

public static void close(Connection con,Statement st,ResultSet rs){

close(con,st);

close(rs);

}

public static void close(Connection con){ try{

con.close();

}catch(Exception e){

}

}

public static void close(Statement st){

try{

st.close();

}catch(Exception e){

}

}

public static void close(ResultSet rs){

try{

rs.close();

}catch(Exception e){

}

}

}

数据库的增删改查的例子:

/**

*知识点:

*JDBC+SQL+ORACLE

*程序目标:

*UserDao.java:实现了数据库的增删改查

*JdbcUtil.java:工具类,有连库和关闭资源的方法*/

package moudule1.idus;

import java.sql.*;

import https://www.doczj.com/doc/4a13298716.html,.*;

public class UserDao{

private String sql;

private Connection con;

private Statement st;

private ResultSet rs;

public UserDao(){

sql=null;

con=null;

st=null;

rs=null;

}

public void insert(){

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

sql+="4,'zhouwu')";

System.out.println(sql);

try{

con=JdbcUtil.getConnection();

st=con.createStatement();

st.executeUpdate(sql);

}catch(Exception e){

e.printStackTrace();

}finally{

JdbcUtil.close(con,st);

}

}

public void delete(){

sql="delete from yuchen_user where id=2";

System.out.println(sql);

try{

con=JdbcUtil.getConnection();

st=con.createStatement();

st.executeUpdate(sql);

}catch(Exception e){

e.printStackTrace();

}finally{

JdbcUtil.close(con,st);

}

}

public void update(){

sql="update yuchen_user set name='liumang' where id=1";

System.out.println(sql);

try{

con=JdbcUtil.getConnection();

st=con.createStatement();

st.executeUpdate(sql);

}catch(Exception e){

e.printStackTrace();

}finally{

JdbcUtil.close(con,st);

}

}

public void select(){

sql="select * from yuchen_user";

System.out.println(sql);

try{

con=JdbcUtil.getConnection();

st=con.createStatement();

rs=st.executeQuery(sql);

while(rs.next()){

System.out.println(rs.getInt(1));

System.out.println(rs.getString(2));

}

}catch(Exception e){

e.printStackTrace();

}finally{

JdbcUtil.close(con,st,rs);

}

}

public static void main(String[] args){

UserDao ud=new UserDao();

ud.select();

ud.insert();

ud.select();

ud.update();

ud.select();

ud.delete();

ud.select();

}

}

一些常用的方法:

/**

*知识点:

*execute方法,getResultSet(),getUpdateCount()

*程序目标:

*JdbcUtil.java:工具类,连接数据库,关闭资源

*sqlExecutor.java:命令行参数输入sql语句,并执行该语句

*/

package moudule1.fangfa;

import java.sql.*;

import https://www.doczj.com/doc/4a13298716.html,.*;

public class sqlExecutor{

public static void main(String[] args){

Connection con=null;

Statement st=null;

try{

con=JdbcUtil.getConnection();

st=con.createStatement();

boolean str=st.execute(args[0]);

if(str){

ResultSet rs=st.getResultSet();

while(rs.next()){

System.out.println(rs.getInt("id")+":"+rs.getString("name"));

}

rs.close();

}else{

int row=st.getUpdateCount();

System.out.println(row);

}

}catch(Exception e){

e.printStackTrace();

}finally{

JdbcUtil.close(con,st);

}

}

}

2. 补充

JDBC连接MySQL

加载及注册JDBC驱动程序

Class.forName("com.mysql.jdbc.Driver");

Class.forName("com.mysql.jdbc.Driver").newInstance();

JDBC URL 定义驱动程序与数据源之间的连接

标准语法:

::

source identifier(数据源)>

MySQL的JDBC URL格式:

jdbc:m ysql//[hostnam e][:port]/[dbname][?param1=value1][¶m2=value

2]….

示例:

jdbc:m ysql://localhost:3306/sample_db?user=root&password=your_passwor

d

常见参数:

user用户名

password密码

autoReconnect 联机失败,是否重新联机(true/false)

maxReconnect尝试重新联机次数

initialTimeout尝试重新联机间隔

maxRows传回最大行数

useUnicode是否使用Unicode字体编码(true/false)

characterEncoding何种编码(GB2312/UTF-8/…)

relaxAutocommit是否自动提交(true/false)

capitalizeTypeNames数据定义的名称以大写表示

建立连接对象

String

url="jdbc:m ysql://localhost:3306/sample_db?user=root&password=your_password"

;

Connection con = DriverManager.getConnection(url);

建立SQL陈述式对象(Statem ent Object)

Statem ent stmt = con.createStatement();

执行SQL语句

executeQuery()

String query = "select * from test";

ResultSet rs=stmt.executeQuery(query);

结果集ResultSet

while(rs.next())

{rs.getString(1);rs.getInt(2);}

executeUpdate()

String upd="insert into test (id,nam e) values(1001,xuzhaori)";

int con=st m t.executeUpdate(upd);

execute()

示例:

try{

}

catch(SQLException sqle)

{

}

finally

{

}

Java类型和SQL类型技术手册P421

PreparedStatem ent(预编语句)

PreparedStatem ent stmt = conn.prepareStatement("insert into

test(id,name)values(?,?)");

stmt.setInt(1,id);

stmt.setString(2,name);

注:一旦设定语句的参数值后,就可以多次执行改语句,直到调用clearParam eters()方法将他

清除为止

CallableStatem ent(预储程序)技术手册P430

JDBC2.0使用

ResultSet对象中的光标上下自由移动

Statem ent stm t = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

ResultSet rs=stmt.executeQuery("select * from test");

public Statem ent createStatem ent(int resultSetType,int resultSetConcuttency) throws

SQLException

resultSetType

TYPE_FORWARD_ONLY 只能使用next()方法。

TYPE_SCROLL_SENSITIVE 可以上下移动,可以取得改变后的值。

TYPE_SCROLL_INSENSITIVE 可以上下移动。

resultSetConcuttency

CONCUR_READ_ONLY 只读

CONCUR_UPDATABLE ResultSet对象可以执行数据库的新增、修改、和移除

直接使用ResultSet对象执行更新数据

新增数据

Statem ent stmt=con.createStatement

(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

Result Set uprs=stmt.executeQuery("select * from test");

uprs.moveToInsertRow();

uprs.updateInt(1,1001);

uprs.updateString(2,"许召日");

uprs.insertRow;

更新数据

Statem ent stmt=con.createStatement

(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

Result Set uprs=stmt.executeQuery("select * from test");

https://www.doczj.com/doc/4a13298716.html,st();

uprs.updateString("name","xuzhaori");

uprs.updateRow;

删除数据

Statem ent stmt=con.createStatement

(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

Result Set uprs=stmt.executeQuery("select * from test");

uprs.absolute(4);

uprs.deleteRow();

批处理

Java使用JDBC连接MYSQL数据库增删改查示例

Java使用JDBC连接MYSQL数据库增删改查示例JDBC连接MYSQL数据库: import java.sql.Connection; import java.sql.DriverManager; public class Mysql { public static void main(String arg[]) { try { Connection con = null; //定义一个MYSQL链接对象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL 驱动 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL System.out.print("yes"); } catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage()); } }

} Class.forName("com.mysql.jdbc.Driver").newInstance(); 我们链接的是MYSQL 数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装,可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37\jre\lib\ext 重启eclispe 就可以在JRE系统库中看到。 con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); 是链接数据库的语句,返回Connection con;对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码) 写入一条数据 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Mysql { /**

加载jdbc数据库驱动三种常见方法

第一种Driver import java.sql.*; import java.util.Properties; public class GG { public static void main(String[] args) { try { Driver driver = new com.mysql.jdbc.Driver(); String url = "jdbc:mysql://localhost:3309/hh"; Properties info = new Properties(); info.setProperty("user", "root"); info.setProperty("password", "root"); Connection conn = driver.connect(url, info); System.out.println("conn" + conn); } catch (SQLException e) { e.printStackTrace(); } } } 第二种:DriverManage import java.sql.*; import java.util.Properties; public class HH { public static void main(String[] args) { try { Driver driver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); String url = "jdbc:mysql://localhost:3309/hh"; Properties info = new Properties(); info.setProperty("user", "root"); info.setProperty("password", "root"); Connection conn = DriverManager.getConnection(url, info); System.out.println("conn" + conn); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

Java连接各种数据库写法

随笔- 6 文章- 0 评论- 1 Java连接各种数据库写法 # 示例配置参考,涵盖几乎所有的主流数据库 ############# Oracle数据库######################## # 数据库驱动名 driver=oracle.jdbc.driver.OracleDriver # 数据库URL(包括端口) dburl=jdbc:oracle:thin:@127.0.0.1:1521:zvfdb # 数据库用户名 user=root # 用户密码

password=zvfims ############# DB2数据库######################## # 数据库驱动名 driver=com.ibm.db2.jcc.DB2Driver # 数据库URL(包括端口) dburl=jdbc:db2://127.0.0.1:50000/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# MySQL数据库######################## # 数据库驱动名

driver=com.mysql.jdbc.Driver # 数据库URL(包括端口) dburl=jdbc:mysql://127.0.0.1:3306/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# PostgreSQL数据库数据库######################## # 数据库驱动名 driver=org.postgresql.Driver # 数据库URL(包括端口) dburl=jdbcostgresql://127.0.0.1/zvfdb

JDBC连接sql server数据库的详细步骤和代码

JDBC连接sql server数据库的详细步骤和代码JDBC连接sql server数据库的步骤如下: [java] view plaincopy 1.1、加载JDBC驱动程序: 2.在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 3.这通过https://www.doczj.com/doc/4a13298716.html,ng.Class类的静态方法forName(String className)实现。 4.成功加载后,会将Driver类的实例注册到DriverManager类中。 5.2、提供JDBC连接的URL 6.?连接URL定义了连接数据库时的协议、子协议、数据源标识。 7.?书写形式:协议:子协议:数据源标识 8.协议:在JDBC中总是以jdbc开始 9.子协议:是桥连接的驱动程序或是数据库管理系统名称。 10.数据源标识:标记找到数据库来源的地址与连接端口。 11.3、创建数据库的连接 12.?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 13.该对象就代表一个数据库的连接。 14.?使用DriverManager的getConnectin(String url , String username , 15. String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 16.密码来获得。 17.4、创建一个Statement 18.?要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 19.种类型: 20.1、执行静态SQL语句。通常通过Statement实例实现。 21.2、执行动态SQL语句。通常通过PreparedStatement实例实现。 22.3、执行数据库存储过程。通常通过CallableStatement实例实现。 23.具体的实现方式: 24. Statement stmt = con.createStatement() ; 25. PreparedStatement pstmt = con.prepareStatement(sql) ; 26. CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ; 27.5、执行SQL语句 28. Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 29.和execute 30.1、ResultSet executeQuery():执行查询数据库的SQL语句 31.,返回一个结果集(ResultSet)对象。 32.2、int executeUpdate():用于执行INSERT、UPDATE或 33. DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 34.3、execute():用于执行返回多个结果集、多个更新计数或二者组合的 35.语句。 36.具体实现的代码: 37. ResultSet rs = pstmt.executeQuery() ;

JDBC简答题C

1.什么是JDBC? 答:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,同时,JDBC也是个商标名。 2.JDBC发展的四个阶段有哪些? 答: 1)JDBC-ODBC桥 2)本地API 3)JDBC网络纯JA V A驱动程序 4)纯JA V A写的本地通信协议 3.JDBC编程的步骤分为哪几步? 答: 1)注册Driver:告诉JVM使用哪个driver具体实现类 2)获取连接:获取数据库连接 3)创建Statement:用来表示和执行SQL语句命令 4)执行SQL语句 5)处理ResultSet:结果集 6)释放资源:关闭顺序:ResultSet --> Statement --> Connection 4.Class.forName的作用是什么? 答:加载类,并返回一个“参数名”类型的类实例。 5.注册Driver的三种方式有哪些? 答:注册Driver的三种方式: 1)注册Driver第一种方式 try { Class.forName("oracle.jdbc.driver.OracleDriver"); // 如果需要多个Driver类 // class.forName("driver2"); // class.forName("driver3"); // class.forName("driver4"); } catch (ClassNotFoundException e) { e.printStackTrace(); } 2)注册Driver第二种方式 Driver d1=new oracle.jdbc.driver.OracleDriver(); try { DriverManager.registerDriver(d1); } catch (SQLException e1) { e1.printStackTrace(); }

JDBC实验二 使用JDBC实现数据库连接

广州中医药大学信息技术学院 实验报告 课程名称:网络数据库编程 专业班级:计算机科学与技术(08)级 学生学号:2008081013 学生姓名:张健华 实验名称:使用JDBC实现数据 库连接 实验成绩: 课程类别:必修□限选 公选□其它□

实验二使用JDBC实现数据库连接 实验类型:应用性实验实验日期: 3-23 [实验目的要求] 通过教学,使学生掌握使用JDBC连接到数据库的方法(如通过JDBC-ODBC 桥或Pure Java Driver),能使用网页表单实现网页与数据库的交互。 [实验内容及步骤] 1、在数据库SQL SERVER中创建一个数据库JDBCTEST,并创建表 student_info,并设定字段,输入内容。 2、使用JDBC-ODBC实现数据库连接 a)打开“控制面板”的“管理工具”的“数据源(ODBC)” b)建立数据源 c)选“系统数据源”,连接SQL SERVER数据库 d)测试是否连接成功 e)通过以下类Class、DriverManager、Connection(连接数据库用到的类), 及Statement、ResultSet(访问数据库用到的类)编写代码实现表 student_info数据的查询。 f)查询结果在页面中显示。 3、使用Pure Java Driver实现数据库连接 a)安装sql-jdbc,如装在D盘 b)设置环境变量classpath,添加D:\sqljdbc\msbase.jar; D:\sqljdbc\msutil.jar; D:\sqljdbc\mssqlserver.jar; c)设SQL SERVER数据库用Windows和数据库混合身分验证的方式。 d)通过以下类Class、DriverManager、Connection(连接数据库用到的类), 及Statement、ResultSet(访问数据库用到的类)编写代码实现表 student_info数据的查询。 e)查询结果在页面中显示。 4、通过表单传递数据,实现数据库的插入、删除与更新操作,并显示插入结果。 5、熟悉JSP中各种常用的内建对象如request对象、session对象、application对 象的使用。 6、熟悉各种表单的处理的方法:如选择按钮的使用、多选方块的使用、群组检 查的使用、隐藏栏位的使用、在客户端进行数据检查 7、试利用上述知识实现一个留言板系统。 以下需要同学们贴上第7题经调试好代码: 数据库对应的表1 数据库对应的表2 .。。。 代码1文件(***.HTM)内容: <%@ page contentType="text/html;charset=GB2312"%>

java平时最常用的7种数据库连接方式

今天总结了java平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动

JDBC连接MySQL

JDBC连接MySQL经典方案 最近在学习数据库开发的一些实例,这里浅谈一下用JDBC连接数据库MySQL(当然也可以连接SQL Sever或Oracle了,只是我更喜欢开源软件,同时也更简单)。 首先正确安装好MySQL,建立好数据库studentinfo mysql>create database studentinfo; 然后编写java代码,ConnectToMySQL.java import java.sql.*; public class ConnectToMySQL { public static Connection getConnection() throws SQLException , https://www.doczj.com/doc/4a13298716.html,ng.ClassNotFoundException{ String url = "jdbc:mysql://localhost:3306/studentinfo"; Class.forName("com.mysql.jdbc.Driver"); String userName = "root"; String password = ""; Connection con = DriverManager.getConnection(url,userName,password); return con; } public static void main(String[] args) { try{ Connection con = getConnection(); Statement sql = con.createStatement(); sql.execute("drop table if exists student"); sql.execute("create table student(id int not null auto_increment,name varchar(20) not null default 'name',math int not null default 60,primary key(id));"); sql.execute("insert student values(1,'AAA','99')"); sql.execute("insert student values(2,'BBB','77')"); sql.execute("insert student values(3,'CCC','65')"); String query = "select * from student"; ResultSet result = sql.executeQuery(query); System.out.println("Student表数据如下:"); System.out.println("---------------------------------"); System.out.println("学号"+" "+"姓名"+" "+"数学成绩");

实验8-jdbc数据库访问(优.选)

实验8 JDBC访问数据库 一、实验目的 1. 掌握使用传统的方法访问数据库; 2. 掌握使用数据源的方法访问数据库。 二、实验原理 数据库应用是Web应用开发的一个重要应用。Web应用程序访问数据库有两种方法:传统的方法和使用JNDI数据源的方法。 传统方法访问数据库的步骤是:①加载数据库驱动程序;②建立连接对象;③创建语句对象;④获得结果集;⑤关闭有关连接对象。 使用数据源访问数据库的步骤是:①配置数据源(局部数据源或全局数据源);②通过JNDI机制查找命名数据源;③通过数据源对象创建连接对象;④其他与传统方法一致。 三、实验内容与步骤 (一)使用传统方法通过JSP页面访问数据库 【步骤1】创建数据库。假设在PostgreSQL建立了一个名为bookstore的数据库,在其中建立books表,代码如下: CREATE TABLE books ( bookid character(5) PRIMARY KEY, --书号 title varchar2(80), --书名 author character varying(20), --作者 publisher character varying (40), --出版社 price real --价格 ); 向books表中插入几条记录,代码如下: INSERT INTO books V ALUES ('204','Head First Servlets & JSP', 'Bryan Basham', '中国电力出版社',98.00); INSERT INTO books V ALUES ('201', 'Servlets 与JSP 核心教程', 'Hall Marty','清华大学出版社',45); INSERT INTO books V ALUES ('202', 'Tomcat与Java Web 开发技术祥解', '孙卫琴', '机械工业出版社',45); INSERT INTO books V ALUES ('203', 'JSP 应用开发技术', '柳永坡','人民邮电出版社',52); INSERT INTO books V ALUES ('205', 'J2EE 1.4 编程指南', 'Spielman Sue','电子工业出版社',68); 注意:需要将数据库的JDBC驱动程序安装到应用程序的WEB-INF\lib目录中。 【步骤2】使用下面JSP页面displayBooks.jsp访问books表中的数据。 <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.sql.*"%> Database Access Test

《Java 2实用教程(第5版)》

《Java程序设计》课程教学大纲 Java Programming 一、课程的性质和教学目的 课程性质:Java不依赖平台的特点使得它受到广泛的关注,已成为网络时代最重要的编程语言之一。目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件开发人员应当掌握的一门基础语言,因为很多新的技术领域都涉及到了Java。国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。《Java程序设计》是软件工程专业、计算机科学与技术等相关专业的一门重要的程序设计语言类的必修课程。 教学目的:通过本课程的学习,要求学生达到下列目标。 1. 理解面向对象程序设计的思想,掌握面向对象的3个特性:封装性、继承性和多态性。 2. 理解Java的平台无关性,掌握用Java语言进行面向对象程序设计的方法。 3. 掌握Java中常用工具类的使用,及用Java设计图形用户界面程序的方法和技巧。 4. 培养学生应用Java解决和处理实际问题的思维方法与基本能力。 二、课程教学内容 1. Java语言基础知识 Java程序的开发环境;Java程序的基本结构;Java语言的基本数据类型、表达式、语句、数组。Java 编程规范。 2. 类与对象 类的定义,对象的创建和使用,对象的访问权限。对象的封装性。 3. 继承、多态与接口 子类的定义,继承的含义,方法的重写和接口及接口回调。理解继承性、与多态性。 4. 字符串与常用类 字符串,正则表达式,Data类,Math类和Calendar类。 5. GUI编程 Java事件处理模型,常用组件的使用。 6. 输入、输出流 Java 输入/出流类;文件和文件的读写。掌握流的套接。 7. JDBC Derby数据库的实用,使用JDBC连接数据库的过程,进行查询、更新、插入数据的方法。 8.网络编程 URL类 ,InetAdress类,套接字,UDP数据报 9.集合框架 三、课程教学的基本要求 1.基本知识 了解Java的特点,理解Java的平台无关性,掌握Java语言的语法知识和常用工具类的使用,掌握Java事件的处理模型及GUI编程。掌握JDBC的使用。 2.基本理论和方法 理解面向对象的思想,掌握面向对象程序设计的方法。

JDBC连接SQLServer数据库

JDBC连接SQLServer数据库 JDBC API 介绍: JDBC API主要做三件事:与数据库建立连接,发送SQL语句,处理结果 一、DriverManager类:依据数据库的不同,管理相应的JDBC驱动 二、Connection接口:复制负责连接数据库并承担传送数据的任务 三、Statement接口:由Connection产生,负责执行SQL语句 四、ResultSet接口:负责处理Statement执行后所产生的查询结果 五、PreparedStatement接口:Statement子接口,也由Connection产生,通用负责执行SQL语句,与Statement接口相比,具有高安全性,高性能,高可读性和高可维护性的优点。 JDBC工作过程及JDBC API: JDBC访问数据库步骤: 1、加载驱动(Class.forName("JDBC驱动类名称")); 2、与数据库建立连接Connection conn=DriverManager.getConnection(数据库连接字符串,数据库用户名,密码); 3、发送SQL语句,并得到返回结果

Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from master"); 4、处理返回结果 While(rs.next()){ int id=rs.getInt("id"); } JDBC连接SQLServer数据库有两种方式: 两种常用的驱动方式: 第一种:使用JDBC-ODBC桥方式连接

具体步骤:控制面板→管理工具→数据源(ODBC)→用户DNS→添加→找到SQL server(单击完成)→输入数据源(自定义)和连接服务器名称→下一步→点击单选按钮(使用用户ID和密码SQL server)输入数据库登录用户名和密码→下一步→下一步→完成 图解:

JDBC选择题

1.典型的JDBC程序按 DBECFA 顺序编写 A. 释放资源 B. 获得与数据库的物理连接 C. 执行SQL命令 D. 注册JDBC Driver E. 创建不同类型的Statement F. 如果有结果集, 处理结果集 2.JDBC驱动程序的种类有 C 。 A. 两种 B. 三种 C. 四种 D. 五种 3.执行同构的SQL,用 C ;执行异构的SQL用 B ;调用存储进程或函数用 A。 A. CallableStatement B. Statement C. PreparedStatement 4.接口Statement中定义的execute方法的返回类型是 C ,代表的含义是 E ;executeQuery方法返回的类型是 A ;executeUpdate返回的类型是 B ,代表的含义是 D 。 A. ResultSet B. int C. boolean D. 受影响的记录数量 E. 有无ResultSet返回 5.JDBC编程的异常类型分为 AC 。 A. SQLException B. SQLError C. SQLWarning D. SQLFatal E. SQLTruncation 6.在接口Connection中定义了方法setTransactionIsolation,它使用一些常量作为参数 指定控制数据库并发操作的隔离级别,设置隔离层次 E 只解决了dirty reads; 设置隔离层次 D 只可以做到repeatable reads;设置隔离层次 C 可以解决phantom reads。 A. TRANSACTION_NONE B. TRANSACTION_READ_UNCOMMITED C. TRANSACTION_SERIALIZABLE D. TRANSACTION_REPEATABLE_READ E. TRANSACTION_READ_COMMITED 7.如果要限制某个查询语句返回的最多的记录数,可以通过调用Statement的方法 C 来实现。 A. setFetchSize

Java连接MySQL 数据库

Java连接MySQL 数据库的正确操作流程 时间:2010-05-25 15:41 来源:博客园字体:[大中小] 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述。 当然,首先要安装有JDK(一般是JDK1.5.X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动MySQL-connector-java-5.0.5.zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的 MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\MySQL-connector-java-5.0.5\MySQL-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。 环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。 我是用SQLyog的前端软件来创建Database的。 先创接MySQL 数据库: 1.CREATE DATABASE SCUTCS; 接着,创建表: 1.CREATE TABLE STUDENT 2.( 3.SNO CHAR(7) NOT NULL, 4.SNAME VARCHAR(8) NOT NULL, 5.SEX CHAR(2) NOT NULL, 6.BDATE DATE NOT NULL, 7.HEIGHT DEC(5,2) DEFAULT 000.00, 8.PRIMARY KEY(SNO) 9.); 然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作

java通过jdbc连接oracle数据库

一:java 使用jdbc连接oracle。 步骤 1)下载oracle数据库驱动: 2)新建一个工程(使用eclipse or myeclipse) 3)将1)中的驱动放到2)中项目的lib文件夹下。 4)在src包下的com.util文件夹下面新建一个类 代码如下: package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBHelp { private static String URL= "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; private static String USERNAME = "scott"; private static String PASSWORD = "tiger"; public static Connection getCon(){ Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection(URL,USERNAME,PASSWORD); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * @param args */ public static void main(String[] args) { System.out.println(new DBHelp().getCon()); } public static void close(Connection con,Statement sm,ResultSet rs){

JDBC结果集处理教程

一.查询 ResultSet对象是由统一形式的列组织的数据行组成。ResultSet对象一次只能看到一个数据行,使用next()方法走到下一个数据行 获得一行数据后,ResultSet对象可以使用getXXX方法获得字段值,将位置索引(第一列为1)或字段名传递给getXXX方法的参数 例如: ResultSet rs=sql.executeQuery("select * from 成绩表); String str=""; while(rs.next()) { str=rs.getString("姓名"); System.out.println(str); } 1.顺序查询 使用结果集合Result的next()方法,可以顺序的查询。next()方法返回一个boolean型数据。当游标移动到最后一行之后返回false 2.游动查询 ###当需要在结果集中前后移动或显示结果集指定的一条记录的时候,要用到游动查询 @必须使用下述方法先获得一个Statement对象 Statement stmt=con.createStatement(int type,int concurrency); @根据参数type,concurrency的取值情况,stmt返回响应类型的结果集 @ResultSet re=stmt.executeQuery(Sql语句) ###type的取值决定滚动的方式 static int TYPE_FORWARD_ONLY 该常量指示指针只能向前移动的 ResultSet 对象的类型。 static int TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。 static int TYPE_SCROLL_SENSITIVE 该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。

JDBC工作原理

JDBC连接MySQL数据库及示例 JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。 一、JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。 1、跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点; 2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。应用程序只需要编写一次,便可以移到各种驱动程序上运行。Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。所以JDBC不受数据库供应商的限制。 JDBC API可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。优点如下: ?操作便捷:JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数; ?可移植性强:JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可; ?通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC; ?面向对象:可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。 缺点如下: ?访问数据记录的速度受到一定程度的影响; ?更改数据源困难:JDBC可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦 二、JDBC连接数据库的流程及其原理 1、在开发环境中加载指定数据库的驱动程序。例如,接下来的实验中,使用的数据库是MySQL,所以需要去下载MySQL支持JDBC的驱动程序(最新的是:

jdbc驱动下载及连接方式

各种数据库驱动 数据库名称下载地址说明 Mysql https://www.doczj.com/doc/4a13298716.html,/prod ucts/connector/j/ Shipped. But need to download the latest for MySQL 4.1 or higher. Oracle https://www.doczj.com/doc/4a13298716.html,/projec t/showfiles.php?group_id=33 291 software/tech/java/sqlj_jdbc/ index.html Included. SQL Server by jTDS https://www.doczj.com/doc/4a13298716.html,/pro ject/showfiles.php?group_i d=33291 Included. Support Microsoft SQL Server (6.5, 7, 2000 and 2005) Postgres https://www.doczj.com/doc/4a13298716.html,/ download.html Included 7.3 JDBC 3 SAP DB https://www.doczj.com/doc/4a13298716.html,/sap _db_jdbc.htm Included. SyBase by jTDS http://jtds.sourceforge.ne t/ Included. Support Sybase (10, 11, 12) 各种驱动的连接方法 1.MySQL(https://www.doczj.com/doc/4a13298716.html,) mysql-connector-java- 2.0.14-bin.jar ; Class.forName( "org.gjt.mm.mysql.Driver" ); cn=DriverManager.getConnection( "jdbc:mysql: //MyDbComputerNameOr IP:3306/myDatabaseName", sUsr, sPwd ); 2. PostgreSQL(https://www.doczj.com/doc/4a13298716.html,) pgjdbc2.jar ; Class.forName( "org.postgresql.Driver" ); cn=DriverManager.getConnection( "jdbc:postgresql: //MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd ); 3.Oracle(https://www.doczj.com/doc/4a13298716.html,/ip/deploy/database/oracle9i/) classes12.zip ; Class.forName("oracle.jdbc.driver.OracleDriver"); cn=DriverManager.getConnection("jdbc:oracle: thin:MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd ); 4. Sybase(https://www.doczj.com/doc/4a13298716.html,) jconn2.jar ; Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" ); cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP :2638", sUsr, sPwd ); //(Default-Username/Password: "dba"/"sql") 5. Microsoft SQLServer(https://www.doczj.com/doc/4a13298716.html,) ;

相关主题
文本预览
相关文档 最新文档