JDBC学习笔记(获取数据库链接的俩种方式)

发出疑问:JDBC是什么?java

 

JDBC是java操纵数据库的一种方法的总称。mysql

 

在介绍俩种链接数据库方式以前,还有一项必须进行的操做,即加入mysql驱动sql

 * 加入mysql驱动方法:
 * 一、解压mysql-connector-java-5.1.7.zip
 * 二、在当前项目下新建lib文件(目录)
 * 三、把mysql-connector-java-5.1.7-bin.jar复制到lib目录下
数据库

 * 四、右键mysql-connector-java-5.1.7-bin.jar点击build-path,add to BuildPath加入到类路径下.sui

 

获取链接的俩种方法:

    要知道咱们操纵数据库,必须获取到数据库的许可,即设置用户,密码,url等信息。因此咱们首先必需要作的就是获取数据库的链接。url

 

得到数据库链接的类:Connection(也就是咱们接下来操纵数据库的基础)spa

有俩个方法:code

                   createStatement() : 获取Statement对象对象

                   prepareStatement(SQL) : 获取PreparedStatement对象接口

                   close() : 关闭数据库链接,在获取数据库链接后必需要关闭。

 

第一种方式:直接设置数据库的链接信息(不推荐这种方法)

Driver:是一个接口,有数据厂商实现,能从其中获取数据库链接

                //一、 建立一个Driver实现类对象
Driver driver=new com.mysql.jdbc.Driver();


//二、准备链接数据库的基本信息:
//url(String类型,肯定链接的IP端口号和数据库),
//info(Properties类型,设置user,password)。
String url="jdbc:mysql://localhost:3306/test";
Properties info=new Properties();
info.put("user","root"); //设置数据库使用者
info.put("password","123456"); //设置数据库密码

//三、调用Driver 接口的connect(url,info)获取数据库链接
Connection connection=driver.connect(url,info);

System.out.println(connection);

第二种方式:在配置文件里设置好链接数据库的基本信息,经过读取配置文件得到链接。(此方法较为通用)

如何编写一个通用的获取数据库链接方法?

在类同目录下添加一个配置文件,将url,user,password放入一个配置文件,经过修改配置文件达到不一样数据库的链接实现

首先在scr目录下(注意:必定要是src目录下)建立一个配置文件(配置文件以.properties结尾)

在配置文件下设置如下信息:

driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/test
user=root

password=123456

回到获取链接方法: 

      String drivername=null;
String url=null;
String user=null;
String password=null;

//一、读取配置文件
InputStream in=get_Connection.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties=new Properties(); //建立读取配置文件对象(properties)
properties.load(in); //逐行读取配置文件
drivername=properties.getProperty("driver");
url=properties.getProperty("jdbcUrl");
user=properties.getProperty("user");
password=properties.getProperty("password");

//二、注册驱动(用DriverManager,由于DriverManager已经内置静态代码块,因此只需一句话)
Class.forName(drivername);

//三、经过DriverManager.getConnection(url,user,password)链接数据库

Connection connection=DriverManager.getConnection(url,user,password);

 

补充知识:

/* 1.与普通程序不一样的是,Java程序(class文件)并非本地的可执行程序。当运行Java程序时,首先运行JVM(Java虚拟机), 而后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫作Class Loader。中文叫作类加载器。 Java虚拟机中能够安装多个类加载器,系统默认三个主要类加载器,每一个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader 类加载器也是Java类,由于其余是java类的类加载器自己也要被类加载器加载,显然必须有第一个类加载器不是否是java类,这正是BootStrap。 Java虚拟机中的全部类装载器采用具备父子关系的树形结构进行组织,在实例化每一个类装载器对象时,须要为其指定一个父级类装载器对象或者默认采用系统类装载器为其父级类加载。   2.类加载指的是将类的class文件读入内存,并为之建立一个java.lang.Class对象,而系统中全部的类,它们实际上也是对象,称为类对象,     它们都是java.lang.Class的实例,虚拟机为每种类型管理一个独一无二的Class对象,也就是说,每一个类(型)都有一个Class对象.   3. java中class.forName和classLoader均可用来对类进行加载。properties通常放配置信息的,存放的是键值对格式.如userName=root 这样便于管理! jdbcUtil.class 获得的是class JdbcUtil ,class对象是java.lang.Class<T>这个类生成的对象,每一个类都有一个class对象 getResourceAsStream(),返回的是InputStream 对象, Properties类是用来操做properties文件的 props.load(in) ,加载进来,进行一行一行的读取 类加载器属于动态的载入,能够提升读写效率. 还能够用java.util.ResourceBundle的类来读取properties文件.ResourceBundle.getBundle("文件名").getString("键");*/

相关文章
相关标签/搜索