一、’首先安装mysql数据库
1、安装之前先要删除以前安装过的数据库
停止服务,删除mysql安装目录(默认program file里)的mysql文件夹,删除programdate(隐藏)文件夹中mysql目录。
2、安装mysql,不建议安装到c盘中以防止还原系统时被清空。安装完成后配置mysql。
其中选择服务器类型: “Developer Machine(开发测试类,mysql占用很少资源)”、
“Server Machine(服务器类型,mysql占用较多资源)”、
“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)” 。
数据库用途: “Multifunctional Database(通用多功能型,好)”、
“Transactional Database Only(服务器类型,专注于事务处理,一般)”、
“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional)
特别注意,需要对mysql默认数据库语言编码进行设置,一般选UTF-8.
设置完毕,按“Finish”后有一个比较常见的错误,就是不能“Startservice”,一般出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。
二、java使用JDBC链接mysql
1、下载Connector(mysql官方提供的连接方式,在官网下载),并导入解压后的jar包(注:导jar包方法:把jar包复制到工程目录下lib文件夹中,右键工程名选择Build Path>configure Build Path,选择Libraries点击AddJARs选择刚才复制的jar包路径finish后Apply导包成功后在Libraries中会显示已导入的jar包)。
2、加载JDBC驱动程序
Class.forName(String className);//加载mysql的驱动类
驱动名className可以在工程里Referenced Libraries中导的Connector的jar包目录下jdbc包下Driver.class中复制或查看
3、提供JDBC链接url
书写形式:协议:子协议:数据源标识。例如jdbc:mysql://localhost:3306/table
4、获取数据库链接
使用DriverManager的getConnection(String url,String username,String password)方法获得一个连接对象其中username,password为数据库连接账号与密码。连接完毕后必须关闭连接。考虑到代码重用性,可以写一个连接工具类来提供连接和关闭方法。代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcUtil {
private static String url="jdbc:mysql://localhost:3306/bookstore";
private static String user="root";
private static String password="root";
public static Connection getConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
public static void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs){
try {
if(conn!=null){
conn.close();
conn=null;
}
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
if(rs!=null){
rs.close();
rs=null;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}