犹记当年为了使用java程序链接mysql数据库花费一天时间,最后发现是没有导入外包,现在看来真的发现本身那时有点二,也怪我使用的教科书上没有说明这点(强行甩锅,哈哈)。今天分享出来,,但愿后者不由于这点小问题而大费周章。java
首先说下数据库,数据库在操做系统看来其实就是一个服务,mysql在windows服务中叫mysql服务,sqlserver叫sqlserver服务(咱们在任务管理器中能够在服务一项中找到咱们装到本身机器上的数据库服务),咱们使用的toad for mysql等叫数据库管理工具,他们的完成的功能其实就是经过咱们的一些点击建立数据库等操做向数据库服务发送sql语句从而完成对数据库的建立库等操做,因此从这个方面看来其实咱们本身也能够写一个简单的数据库管理工具。mysql
不一样的数据库和java程序链接时使用的驱动不同,这儿驱动不是由java所属公司提供,而是有java公司提供链接接口,各个数据库厂商根据本身的数据库特性来写所需的驱动程序(如com.mysql.jdbc.Driver是mysql链接时用的驱动由Oracle公司提供,mysql如今属于oracle了),而java所需完成的操做就是使用链接接口来完成驱动程序的加载以及后期的交互任务。因此要想使用java程序链接数据库第一件事就是去相应数据库公司官网下载相应的jar包(这个很重要,当时我就是由于这个捣鼓了一天)。mysql和sqlserver要用到的jar包我已上传到个人GitHub上了,能够下载(https://github.com/huangxinyuan650/ConnectDatabase/tree/master/extendpackage)git
在有了相应的jar包以后剩下的就是比较有序的操做了,除了加载的驱动不同剩下的都与数据库的种类无关(固然在涉及到读取的细节上会有稍微的区别在后期会讲到),以后的操做就是github
注意在链接前须要把链接数据库的 jar包提早导入到工程下或者直接放到jdk的lib下。sql
1.使用调用Class类加载驱动(Class.forName(驱动类名路径);),数据库
2.经过DriverManager接口获取数据库链接对象(Connection conn=DriverManager.getConnection(链接字符串,用户名,密码);),windows
3.至此已经创建起了与数据库的链接,接下来就是获取对数据库操做须要使用到的对象Statement(Statement state = conn.createStatement();)后端
4.经过statement对象完成对数据库的操做(Query和Update操做,数据库的增删改都是update,查为query),固然在完成查询操做的时候是须要ResultSet对象来接收查询的结果的(ResultSet re=conn.state.executeQuery(cmd);)oracle
完整的链接类咱们能够本身概括出来,方便之后直接调用(链接mysql数据库完整代码)工具
package hxy; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class ConnectMySQL { Connection conn = null; Statement state = null; public ConnectMySQL(){ try{ ///////连接数据库 Class.forName("com.mysql.jdbc.Driver"); //////加载数据库驱动 } catch(ClassNotFoundException e){ System.out.println(e); } try{ conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasedata", "root", "huang650");
//获取数据库链接对象,其中getConnection方法中第一个参数为链接字符串里面包含数据库url和端口号,第二个参数为数据库用户名,第三个参数为数据库密码 System.out.println("You has connected to Mysql!!!"); state=conn.createStatement(); //////////获取对数据库的操做对象Statement } catch(SQLException e){ System.out.print(e); } } void close(){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
在获取到statement对象后就是经过statement对象完成对数据库的操做,固然在使用完后须要关闭与数据库的链接。
在链接sqlserver数据库的时候只须要把驱动的路径改成com.microsoft.sqlserver.jdbc.SQLServerDriver,而后端口号改成1433,链接字符串前面改为jdbc:sqlserver便可。
Oracle数据库的话好像是有两种链接方式,但原理都是差很少的,有需求的能够自行百度解决,至于详细的对数据库的操做能够直接写传参数到数据库操做对象的方法中,在以后的随笔中还会详细介绍。使用的详细代码在个人GitHub中的项目中都有,有兴趣的能够去看看,欢迎批评指正。https://github.com/huangxinyuan650/ConnectDatabase