‘壹’ JDBC可以动态的获取数据库里的所有的表吗
可以,不过这不是jdbc实现的,而是各个数据库产品实现的。
每个数据库产品中,都有一个系统表,专门存放,数据库中所有表的信息。
不同的数据库系统表,也不一样。
‘贰’ 通过JDBC访问数据库
首先需要导入相应数据库的驱动文件,然后要注册驱动,Class.forname(driverName),获取Connection对象Connection conn=DriverManager.getConnection(URL);然后获取PreparedStatement对象PreparedStatement pst=conn.getPreparedState(sql,username,password)其中的username和password是你访问数据库的名称和密码;如果要使用到返回集合则可以用ResultSet对象接收,ResultSet rs=pst.executeQuery();不要使用到返回集合的话就直接pst.executeQuery();
以上的可以查jdk
1.mysql:driverName的值为:com.mysql.jdbc.Driver;url的值为:jdbc:mysql://localhost:3306/hibernate其中hibernate是你的数据库名称
2.sqlserver:driverName的值为:com.microsoft.sqlserver.jdbc.SQLServerDriver;url的值为
jdbc:sqlserver://localhost:1433;DatabaseName=" + database,其中database是你数据库名称
3.oracle:driverName的值为:oracle.jdbc.driver.OracleDriver;url的值:jdbc:oracle:thin:@127.0.0.1:1521:ora92,其中ora92是你数据库名称
‘叁’ 使用jdbc怎么获取数据库连接
package club.di6.util;
import java.sql.DriverManager;
import java.sql.Connection;
public class DatabaseUtil {
public static Connection getConnection(){
Connection conn = null;
String serviceAddress = "//localhost:3306";//数据库地址
String username = "root";//数据库用户
String password = "rr123456";//密码
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql:"+serviceAddress+"/briup?user="+username+"&password="+password;
conn = DriverManager.getConnection(url);
System.out.println("数据库连接成功");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
使用的时候直接Connection conn = DatabasesUtil.getConnection();就可以了
记得把里面的数据库地址和用户名密码改成自己的。
‘肆’ 怎样利用JDBC获得连接,查询数据,获取查询的数据
去网上找个mysql驱动jar包,不同的数据库只需要改加载驱动和得到连接的参数就可以了,具体参数去网上搜下,额对,还需要找对应的jar包
import java.sql.*;
public class Test1{
public static void main(String args[])throws Exception{
//测试mysql数据库
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.得到一个连接
Connection con=DriverManager.getConnection("jdbc:mysql://192.168.1.24:3306/etoak","root","root");
//jdbc:mysql mysql数据库协议
//localhost:连接的主机名称,3306 mysql数据库端口号
//etoak 数据库名称
//3.封装sql语句
String insert="insert into student value(6,'ek','ek')";
//4.得到一个执行sql语句的对象
Statement sta=con.createStatement();
//5执行sql语句
sta.execute(insert);
//6.关闭流
sta.close();
con.close();
}
}
‘伍’ jsp页面前台用jdbc如何获取sql数据库里的数据。
1、在后台写一个JDBC方法,从数据库中查询出数据来,封装到一个集合中,比如List或Map,然后放到request中,在前台直接从request获取即可。
2、直接在前台写一个JDBC操作的脚本方法,从数据库中查询出数据,封装到集合中,然后根据需要迭代显示。
‘陆’ jdbc连接数据库的几个步骤
创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
‘柒’ 使用Java JDBC,如何获取我SQL服务器上所有的数据库列表呢
可以使用show database命令查看所有数据库,但是使用jdbc链接数据库,好像是执行不了命令,只能执行sql语句,没有具体环境。没办法测试,一样能帮到你。
‘捌’ JDBC连接数据库的步骤都有哪些
1、首先我们通过数据库可视化工具navicate for mysql,新建一个数据库,名字叫test新建一张表。
‘玖’ 如何通过JDBC取得数据库表结构信息
JDBC中有个ResultSetMetaData类就是用来获取数据表结构信息的。
...
ResultSet rs = ....
ResultSetMetaData rsmd = rs.getMetaData();
//ResultSetMetaData中有如下方法:
getColumnCount(); 返回 ResultSet 中的列数。
getColumnName(int); 返回列序号为 int 的列名。
getColumnLabel(int); 返回此列暗含的标签。
isCurrency(int); 如果此列包含带有货币单位的一个数字,则返回 true。
isReadOnly(int); 如果此列为只读,则返回 true。
isAutoIncrement(int); 如果此列自动递增,则返回 true。这类列通常为键,而且始终是只读的。
getColumnType(int); 返回此列的 SQL 数据类型。这些数据类型包括
‘拾’ JDBC访问数据库的步骤
加载(注册)数据库驱动(到JVM)。建立(获取)数据库连接。创建(获取)数据库操作对象。定义操作的SQL语句。执行数据库操作。获取并操作结果集。
在数据库的发展历史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展,数据库技术在各个方面的快速的发展。特别是关系型数据库已经成为目前数据库产品中最重要的一员。
80年代以来, 几乎所有的数据库厂商新出的数据库产品都支持关系型数据库,即使一些非关系数据库产品也几乎都有支持关系数据库的接口。这主要是传统的关系型数据库可以比较好的解决管理和存储关系型数据的问题。
数据库管理系统是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话。
或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。