写了一个JDBC连接数据库的代码特别高兴的来和大家分享一下
Java是通过JDBC连接Mysql数据库的。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
第一步
大家一定要记住导入连接mysql的驱动jar文件,下图
第二步
我直接给大家上我的代码了哈,给大家看看。笔记都写在代码的注释里面了,大家可以看得懂得!
public class JDBCUtils {
/*
* 实现jdbc的工具类 定义方法,直接返回数据库的连接对象
*/
private JDBCUtils() {
}
private static Connection con;
static {
// 1,注册驱动
// 使用java.sql.DriverManger类静态方法registerDriver(Driver driver)
// Diver 是一个接口,传递参数,将mysql驱动程序的实现类
// 把一个类加载进内存
try {
Class.forName("com.mysql.jdbc.Driver");
// 让Driver被类加载
// 2,获取数据库的连接
/*
* static Connection getConnection(String url,String user,String
* password), 返回值的Connection接口的实现类,在mysql驱动中 url: 数据库连接地址
* jdbc:mysql://localhost:3306//数据库名 username:用户名 password:密码
*
*/
String url = "jdbc:mysql://localhost:3306/test01";
String username = "root";
String password = "root";
// DriverManager.getConnection(url, username, password);来实现字符串的连接
// 面向接口编程 ,左边的对象是接口
con = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e + "数据库连接失败");
}
}
// 对外提供连接数据库的方法
public static Connection getConnection() {
return con;
}
}
第三部
直接调用这一封装好的方法就可以连接到数据库了。
public class QueryRunnerDemo01 {
//直接调用JDBCUtils对象中写好的getConnection()方法
private static Connection con=JDBCUtils.getConnection();
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
//ArrayHandlermethod_01();
//ArrayListHandlermethod_02();
//BeanHandlermethod_03();
//BeanListHandlermethod_04();
//ColumnListHandlermethod_05();
//ScalarHandlermethod_06();
//mapHandlermethod_07() ;
mapListHandlermentod_08();
}
最后和大家谈一谈可能出现的一些异常
Note:如果你没有添加jar程序驱动包的话编译的时候发现以下问题:
Sorry,can`t find the Driver!
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
atjava.NET.URLClassLoader$1.run(Unknown Source)
atjava.Net.URLClassLoader$1.run(Unknown Source)
atjava.security.AccessController.doPrivileged(Native Method)
atjava.net.URLClassLoader.findClass(Unknown Source)
atjava.lang.ClassLoader.loadClass(Unknown Source)
atsun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
atjava.lang.ClassLoader.loadClass(Unknown Source)
atjava.lang.Class.forName0(Native Method)
atjava.lang.Class.forName(Unknown Source)
这时,你只需要按照http://blog.csdn.net/huluedeai/article/details/50414400里的方法就可以解决。
但是编译运行虽然成功,但是有以下的warning信息:
Thu Dec 24 00:08:37 CST 2015WARN: Establishing SSL connection without server's identity verification is notrecommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSLconnection must be established by default if explicit option isn't set. Forcompliance with existing applications not using SSL the verifyServerCertificateproperty is set to 'false'. You need either to explicitly disable SSL bysetting useSSL=false, or set useSSL=true and provide truststore for servercertificate verification.
Succeeded connecting to theDatabase!
AFG Kabul
AFG Qandahar
AFG Herat
AFG Mazar-e-Sharif
NLD Amsterdam
NLD Rotterdam
NLD Haag
这时只需要把url字符串改为以下:改之前:String url ="jdbc:mysql://127.0.0.1:3306/world";
改之后:String url = "jdbc:mysql://127.0.0.1:3306/world?useUnicode=true&characterEncoding=utf-8&useSSL=false";
就发现warning没了,程序运行成功。
Succeeded connecting to theDatabase!
AFG Kabul
AFG Qandahar
AFG Herat
AFG Mazar-e-Sharif
NLD Amsterdam
NLD Rotterdam
NLD Haag
NLD Utrecht