大学四年感觉都是混过去的,到了毕业做论文的时候才发现什么都不会,好不容易才把东西做出来,虽然不是很好看,不过我已经很满意了。作为纪念,把从头到尾的过程都在这里写下来,也就算是完整了吧。
语言:JAVA
开发工具:MyEclipse 2017 CI5
数据库:MySql 5.6.1
运行环境:Tomcat 8.5
我用的数据库是MySql 5.6,建表的时候用的都是Navicat,具体的工具安装过程就不详述,简单说一下建表和数据库连接的步骤。
在进行开发之前肯定要先把数据库搭建好,这是在设计阶段就要做的事,需要什么表,要存那些信息,什么外键,什么约束都要考虑好,不然以后再改就很麻烦,不过这里就讲最简单的,不要外键和约束,只要简单表。
首先建一个用户表,有ID号,用户名和密码就够了,如果有需要的话可以加上用户级别,便于以后添加管理员功能,不过我没来得及做。
密码的话可以直接存储,也可以先用MD5加密以后再存入数据库,不过这样也有坏处,就是如果你忘了密码的话,是没办法找回的。
建好表以后就打开MyEclipse,新建工程,选择WEB Project,然后要注意的是在选择Java version 和 运行环境的时候要选择你电脑上对应的Java和Tomcat版本,不然运行的时候会报错。选好以后直接点击finish就可以了。
建好项目以后右键src,建一个包来存储代码,package名一般取用"com.公司名.项目名",接着在建好的package里面再建一个package,取名叫Utils,这里面就专门用来存数据库的连接工具和其他的一些工具类。
在Utils里面新建一个类,就叫DBC,勾选上main方法,其他的不勾,点击finish完成。
连接数据库需要有五个东西:连接数据库的jar包,驱动名,数据库链接,用户名和密码
为了方便修改,这些东西一般都不存在数据库连接类里面,而是单独存在文档中。
在src目录下新建一个File,在Other===>General里面可以找到,然后取名叫"DBOptions.properties",注意,前面可以改,拓展名不能改,否则会无法读取。
因为我用的是MySQL,所以用的驱动名是"com.mysql.jdbc.Driver",这个要按使用的数据来定。
我的驱动包叫"mysql-connector-java-5.1.6-bin.jar",网上很多下载,这里就不放链接了。
连接的url就是"mysql://localhost/"+数据库名,比如说你的数据库叫db,连接就是"mysql://localhost/db"。
然后是用户名和密码,这个填自己的数据库用户名和密码。
写完以后,大概就是这样:
DRIVER=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost/db?useUnicode=true&characterEncoding=utf8
USERNAME=root
PASSWORD=12345678
url的后面那些是用于确定连接传输数据的编码格式,我用的是UTF-8,之前显示中文一直有问题,才加了这些,删除也不会有影响。
完成以后点击保存,就可以来写连接类了。
首先,私有化DBC的构造函数。
private DBC(){}
这么做是为了防止DBC被实例化,我们使用这个类的时候并不需要把它实例化,只用调用它的方法就行了,具体的调用方法在下面。而如果不这么做的话,一方面每次调用都需要实例化一次,很麻烦,另一方面也会影响系统效率。
接下来就要定义数据库连接变量:
//设置数据库连接信息
private static String driver=null;
private static String url=null;
private static String username=null;
private static String password=null;`
driver是驱动名称,url是数据库链接,username是用户名,password是密码,当然,变量名也可以修改,但是在调用的时候记得要保持一致。之所以加上static修饰符,是因为在整个程序运行期间,数据库是随时都有可能用到的,所以这些变量的生命周期就是整个程序的生命周期,因此就直接把它们定义成静态变量。
接着要把我们之前存在properties文件中的数据取出来,赋值给这些变量。
因为有可能会出现异常,所以注意要在外面加上try-catch块。
获取资源文件解析对象需要用到一个叫做ResourceBundle的类,因此我们先导入:
import ResourceBundle;
然后再定义一个对象:
ResourceBundle bundle=ResourceBundle.getBundle("DBOptions");
在这其中,DBOptions就是我们之前定义的资源文件的名称。
获取值:
driver=bundle.getString("DRIVER");
url=bundle.getString("URL");
username=bundle.getString("USERNAME");
password=bundle.getString("PASSWORD");
这些都完成以后就可以获取驱动了:
Class.forName(driver);
接着就可以获取数据库连接了,在主函数里面定义:
try
{
Connection conn=DriverManager.getConnection(url,username,password);
System.out.println(conn);
}
catch(Exception e)
{
e.printStackTrace();
}
还有就是别忘了导入驱动jar包,在项目名上右键,选择Build Path===>Configure Bulid Path===>Add External JARs,然后选中你的jar包,确定就可以了。
最后,点击运行,查看一下能否获取到数据库连接,如果在控制台没有显示异常,而是出现如下的字符串,就表示连接成功了:
com.mysql.jdbc.JDBC4Connection@799f7e29
到此,数据库的连接就宣告完成,但是实现的仅仅只是最基础的一部分,还有一些更复杂的东西留到下一篇再继续补充。
最后,附上DBC的代码:
/**************************************************
*Classname:DBC
*Author:爱传奇2
*Description:数据库连接类
*Mail:[email protected]
***************************************************/
package com.iss.WebProject.Utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ResourceBundle;
public class DBC
{
//设置数据库连接信息
private static String driver=null;
private static String url=null;
private static String username=null;
private static String password=null;
private DBC() {}
static
{
try
{//获取资源文件解析器对象
ResourceBundle bundle=ResourceBundle.getBundle("DBOptions");
driver=bundle.getString("DRIVER");
url=bundle.getString("URL");
username=bundle.getString("USERNAME");
password=bundle.getString("PASSWORD");
Class.forName(driver);
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
try
{
Connection conn=DriverManager.getConnection(url,username,password);
System.out.println(conn);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}