本系列博客,是作为.NET程序员如何通过类比的方法去学习JAVA的学习历程,如有错误,欢迎指正!
在.NET中,访问数据库,常用的ADO.NET。ADO.NET中五大基本对象,回顾一下,分别为:Connection(用于开启数据库连接)、Command(对数据库发出例如:查询、新增等指令)、DataAdaprer(用于数据源与DataSet之间,执行数据传输工作)、DataSet(数据集,在缓存中)、DataReader(读取数据,只能一行行读)。
那么在JAVA中,访问数据库,首先需要JDBC的jar包,去网上下载sqljdb4.jar,就目前我所学的java水平而言,你可以把jar包当成.NET中的程序集DLL文件,.NET访问数据库,也需要SqlClient命名空间,同样,在JAVA中,也有类似命名空间的包的说法,在.NET中我们引用命名空间:Using System.Data.SqlClient;在Java中,当你把JDBC的jar包引入至项目中后,可直接在最前面写:import java.sql.*;等一些相关的包。
具体代码如下:
package TripleH;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.DriverManager;
public class HelloWorld {
private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=Test";
private static final String USERNAME = "sa";
private static final String PASSWORD = "******";
public static void main(String[] args){
try {
Class.forName(DRIVER);//加载驱动
Connection ct = DriverManager.getConnection(URL, USERNAME, PASSWORD);//类似于Connection
System.out.println("数据库连接成功");
PreparedStatement ps = null;//类似于Command
ResultSet rs = null;//类似于DataReader
ps = ct.prepareStatement("select count(*) as sum from Test20190813001");//SQL语句
rs = ps.executeQuery();//执行并返回结果
System.out.println("HelloWorld");
while (rs.next()) {////类似DataReader的Read()
System.out.println("sum:" + rs.getString("sum"));
}
}
catch (ClassNotFoundException | SQLException e){
e.printStackTrace();
System.out.println("数据库连接异常");
}
}
}
结果如下:
数据库连接成功
HelloWorld
sum:1
Process finished with exit code 0
对比总结如下:
Connection ct = DriverManager.getConnection(URL, USERNAME, PASSWORD);打开连接 类似Connction的Open()
PreparedStatement ps = ct.prepareStatement("select count(*) as sum from Test20190813001");//类似于Command
ResultSet rs = ps.executeQuery();//执行并返回结果 类似于DataReader或DataSet。
特别说明:访问数据库貌似是强制要加Try catch的,而且ClassNotFoundException这个异常类一定要写,详情可看代码。
作为.NET程序员,学习JAVA,应该还是蛮轻松的,我还在摸索中,各位同道中人,可以一起探讨,通过.NET的知识来类比学JAVA的知识。谢谢大家~本人技术交流群(BUG制作者协会):121942786