1.下载依赖包
在eclipse中使用Java连接数据库需要使用jdbc(java database connectivity),jdbc是一个接口,由相应的数据库实现。在Mysql官网下载地址可以下载Cnnector/J,Connector/J是MySQL数据库的jdbc实现,该jdbc专门用来连接MySQL数据库。
2.将jdbc的jar包导入eclipse项目
在项目的WebContent/WEB-INF下的新建lib文件夹(有则直接使用),将下载好的Connector/J解压,进入解压后的文件夹,找到与src同级的jar包复制到lib文件夹下,如图,不同版本的connector中jar包可能有差异,只要把jar包全部导入就行。
此时再右键lib文件夹,选择Build Path→Config Build Path...
在弹出的界面中点击Libraries,选择Add JARs...,添加lib下的jar包到构建路径下。画横线的jar包是我已经导入的connector
导入完毕后在Referenced Libraries下找到刚刚导入的jar包,说明导入成功
3.创建连接数据库的Dao类
package testClass;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class ListAllDao {
public List<String> getAll() {
String driver = "com.mysql.jdbc.Driver";//驱动器
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false";//连接路径:协议+子协议+数据源
String userName = "";//你自己数据库的用户名
String passwd = "";//你自己数据库的密码
Connection connection = null;//连接
PreparedStatement preparedStatement = null;//预编译语句
Statement statement;
ResultSet resultSet = null;//结果集
List<String> list = new ArrayList<String>();//用来接受查询到的数据并返回
try {//执行sql语句
Class.forName(driver);//创建驱动类对象,该对象会注册到DriverManager类中
connection = DriverManager.getConnection(url, userName, passwd);//建立和数据库的连接
statement = connection.createStatement();
String queryAll = "";
connection.prepareStatement(queryAll);//执行预编译语句
resultSet = statement.executeQuery("select * from student");//执行查询
while(resultSet.next()){
String pass = resultSet.getString(1);//每一行代表数据表中的一列,从1开始编号
String pass2 = resultSet.getString(2);
list.add(pass);
list.add(pass2);
}
}catch(Exception e){
throw new RuntimeException(e);
}finally {
try {
//每次关闭需要先判断待关闭对象是否为null,没有创建成功的对象不能调用对象方法
if(resultSet!=null) {
resultSet.close();//先关闭结果集
}
if(preparedStatement!=null) {
preparedStatement.close();//再关闭预编译语句
}
if(connection!=null) {
connection.close();//最后关闭连接
}
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
}
代码说明:
- driver这个引用指向对象存储的是Driver这个类的全路径。
- url的格式为:协议:主机地址:端口/数据库名称[?参数1 & 参数2 ……],代码中的其他信息包含字符编码集和停用ssl
- Statement类中的executeQuery方法执行查询
- ResultSet类中的getString(int columnIndex)方法将查询结果按列返回为字符串,columnIndex从1开始编号
注意
该类没有main()方法,必须新建一个包含main()方法的类,在mai中n()方法创建ListAllDao 类的对象,再调用getAll方法。