数据库是按照数据库按照数据结构来组织、存储和管理数据的仓库,如今,数据库的功能不仅局限于存储和管理数据,更变成了用户所需要的各种数据管理的方式。
JDBC则是一种用于执行SQL语句的JAVA API,为多种关系数据库提供统一访问,并提供了高性能的实现接口。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190626224948647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Jhb3RlYWNoZXI=,size_16,color_FFFFFF,t_70)
使用JDBC连接数据库的步骤大体分为以下几步:
1.将驱动包导入工程中;
2.加载驱动;
3.建立连接;
4.执行想要的SQL语句
5.获得结果集
6.关闭连接
导入驱动
1.打开你的idea工程,点击File
2.找到Project Structure并点击
3.找到Modules并点击
4.找到Dependencies并点击
5.找到Project Structure点击
6.找到Scope右边的+号并点击,选第一个JARs or directories,找到文件mysql- connector-java-版本号-bin.jar,然后点击OK,成功!
加载驱动及获取连接
rivate static Connection conn = null;
private static String driver = "com.mysql.cj.jdbc.Driver"; // 驱动程序名
private static String url = "jdbc:mysql://localhost:3306/fruitshop?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8"; //指向所要访问的数据库名
private static String user = "001"; //登陆用户名
private static String password = "000"; //登陆密码
public static Connection getConn() {
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
System.out.println("未找到指定类!");
e.printStackTrace();
} catch (java.sql.SQLException e) {
System.out.println("驱动加载失败!");
e.printStackTrace();
}
return conn;
}
执行语句并获得结果集
按照数据库中SQL语句的知识,基本不变。由Connection对象获取一个Statment对象,使用该对象执行SQL语句,如果SQL语句有返回结果,可以使用Resultset接收,使用next()方法按顺序读取结果集中的内容。
Statement st;
ResultSet rs;
conn = getConn();
if(conn != null) {
try{
st = conn.createStatement();
rs = st.executeQuery("SELECT * FROM fruitinfo");
while (rs.next()){
System.out.println(rs.getString(1) + " " + rs.getInt(2));
}
CloseConn(conn, st, rs);
} catch(SQLException e) {
e.printStackTrace();
System.out.println("数据库出错!");
}
}else {
System.out.println("数据库连接失败!");
}
关闭连接
数据库的连接池可以提供给外界的连接是一定的,因此,对于长时间不使用的数据库连接,一定要及时释放资源。
JDBC的关闭连接一定要按照固定的顺序,从结果集Resultset开始,随后是Statement,最后为Connection。
public static void CloseConn(Connection conn, Statement st, ResultSet rs) {
try{
if(rs != null) {
rs.close();
}
if(st != null) {
st.close();
}
if(conn != null) {
conn.close();
}
} catch (SQLException e) {}
}