package skydevkit; 
import java.sql.*; 
public class JdbcOdbc_test { 
ResultSet results; 
ResultSetMetaData rsmd; 
DatabaseMetaData dma; 
Connection con; 
public JdbcOdbc_test() throws SQLException { 
String url = "jdbc:odbc:Northwind"; 
try { 
//加载 JDBC-ODBC 桥驱动程序 
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
con = DriverManager.getConnection(url);//连接数据库 
dma = con.getMetaData();//获取数据库的元数据 
System.out.println("Connected to:" + dma.getURL()); 
System.out.println("Driver " + dma.getDriverName()); 
} catch (Exception e) { 
System.out.println(e); 
} 
try { 
Statement stmt = con.createStatement(); 
results = stmt.executeQuery("select * from 客户;"); 
ResultSetMetaData resultMetaData = https://minzuwang.com/read/results.getMetaData(); 
int cols = resultMetaData.getColumnCount(); 
String resultRow = ""; 
for (int i = 1; i < cols; i++) { 
resultRow += resultMetaData.getColumnName(i) + ";"; 
} 
System.out.println(resultRow); 
while (results.next()) { 
resultRow = ""; 
for (int i = 1; i < cols; i++) { 
try { 
resultRow += results.getString(i) + ";"; 
} catch (NullPointerException e) { 
System.out.println(e.getMessage()); 
} 
} 
System.out.println(resultRow); 
} 
} catch (Exception e) { 
System.out.println("query exception"); 
} finally { 
results.close(); 
} 
} 
} 
补充高级内容 
关于调用SQLServer存储过程的例子: 
CREATE PROCEDURE [dbo].[sp_getStudentByName](@name char(10)) 
AS 
Select * from Students where [Name]=@name 
GO 
DbObject DbO = new DbObject(new SqlServerConnectionFactory("localhost", 
1433, "demo", "sa", "")); 
Connection con = DbO.getConnection(); 
CallableStatement pstmt = null; 
System.out.println("TestDB1()............"); 
/* try { 
pstmt = con.prepareCall("{call sp_getStudentById(?)}"); 
pstmt.setInt(1, 1); 
}*/ 
try { 
pstmt = con.prepareCall("{call sp_getStudentByName(?)}"); //注意参数如何传递 
pstmt.setString(1, "Tom"); 
} 
…… 
使用输出参数: 
CREATE PROCEDURE [dbo].[sp_insertStudent](@name char(10),@age int,@id int OUTPUT) AS 
insert into Students([Name],[Age]) values (@name,@age) 
select @id=@@IDENTITY 
GO 
try { 
pstmt = con.prepareCall("{call sp_insertStudent(?,?,?)}"); 
pstmt.setString(1, "zengqingsong"); 
pstmt.setInt(2, 22); 
pstmt.registerOutParameter(3, Types.INTEGER); 
pstmt.executeUpdate(); 
int id = pstmt.getInt(3); 
System.out.println(id); 
} 
使用返回参数的例子: 
CREATE PROCEDURE [dbo].[sp_insertStudent](@name char(10),@age int,@id int OUTPUT) AS 
insert into Students([Name],[Age]) values (@name,@age) 
select @id=@@IDENTITY –测试输出参数 
return 30 –测试返回30 
GO 
try { 
pstmt = con.prepareCall("{?=call sp_insertStudent(?,?,?)}"); 
pstmt.setString(2, "zengqingsong"); 
pstmt.setInt(3, 22); 
pstmt.registerOutParameter(4, Types.INTEGER); 
pstmt.registerOutParameter(1, Types.INTEGER); 
int ret = pstmt.executeUpdate(); //执行影响的行数 
int ret2 = pstmt.getInt(1); //返回参数 
int id = pstmt.getInt(4); //输出参数 
System.out.println(ret); 
System.out.println(ret2); 
System.out.println(id);
我想知道什么是数据库?:

文章插图
【什么是数据库】数据库本身就好比一个“大池”,你把它装满水,他就是“水池”,装满油就是“油池”,装满沙子就是“沙池” 。它就是个容器,数据的容器,至于往里面装什么数据,怎么装,那就要看设计“某方面功能的数据库”的人怎么设计了 。
底层的数据库也就是“池子”是一样的,但是怎么把数据放进去,那就是要看怎么设计了 。
比如,为了增加可玩性,我可以吧水都装在气球中然后再把气球放进池子类似这种,再比如我不直接放水,而是放冰,还可以是只放某一种类型的冰,比如正方形的冰等等 。
也就是说在底层数据库的基础上,怎么放置数据这也是很多人说的数据库的设计 。
推荐阅读
- 男人颈部痣相图解大全 男人脖子长痣说明什么
 - 临床医学应届毕业生求职简历 2021应届毕业生个人求职简历
 - 柴达木盆地位于我国的什么高原 柴达木盆地位于哪个高原我们学过的
 - 5类人不宜喝玉米汁,打玉米汁是放大米还是小米
 - 农历正月是几月份,农历正月是什么星座
 - QQ语音时,总是听到自己的回声和对方电脑里的声音的解决办法 正在qq语音别人打会知道吗?
 - 五行对应表
 - 2021年江苏人均养老金替代率是多少呢
 - 如何通过投资赚钱? 什么项目投资小赚钱快?
 - 山根高的面相好不好 山根高说明了什么
 
