》》常用的接口类
DriverManager-驱动管理获取数据库连接
Connection-数据库连接接口
driver = "com.mysql.jdbc.Driver";
url="jdbc:mysql://localhost:3306/tiffany";//协议:端口/数据库名称
username="root";
password="9622738";
Class.forName(driver);
DriverManager.getConnection(url, username, password);
Statement-语句接口,用来静态操作SQL语句
Statement stmt = con.createStatement();
String sql = "select * from name";//查询表
PreparedStatement-预定义语句,用来动态操作SQL语句
CallableStatement-可以调用存储过程的预定义语句
ResultSet-结果集,用来保存记录
result = stmt.executeQuery(sql);
while (result.next()) {
out.println(result.getString("name"));
}
ResultSetMetaData-结果集元数据
DatabaseMelaData-数据元数据
》》过程
加载数据库驱动(jar文件)
获取数据库连接
创建语句
执行语句
遍历结果集
关闭数据库连接
》》代码
package com.yiki.dbutil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DButil {
private static String driver;
private static String url;
private static String username;
private static String password;
static{
driver = "com.mysql.jdbc.Driver";
url="jdbc:mysql://localhost:3306/tiffany";//协议:端口/数据库名称
username="root";
password="9622738";
}
public static Connection open(){
try {
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection con){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
<%@page import="com.yiki.dbutil.DButil"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" import="java.util.*,java.sql.*"
pageEncoding="utf-8"%>
<html>
<body>
<%
Connection con = DButil.open();
System.out.println("成功加载MySQL驱动程序");
Statement stmt = con.createStatement();
String sql = "select * from name";//查询表
ResultSet result = stmt.executeQuery(sql);
while(result.next()){
out.println(result.getString("name"));
}
con.close();
%>
</body>
</html>
》》可以把数据库数据写进一个配置文件
properties系统找不到指定的路径路径/java.lang.nullpointerexception
这个问题真是折腾得够呛,一开始没有提示是找不到路劲,一个劲提示空指针,搞到后面才知道是路径问题,原来properties文件是写在src下的,但是编译却找不到也是醉了。可能普通java项目和web项目是不同的吧。值得注意的是properties文件读取也是一个需要深究的东西。吐血。
解决的方法就是
String path =Thread.currentThread().getContextClassLoader().getResource ("db.properties").getPath();
reader = new FileReader(path);
》》全部源码
package com.yiki.dbutil;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DButil {
private static String driver;
private static String url;
private static String username;
private static String password;
static {
Properties pro = new Properties();
Reader reader;
try {
String path =Thread.currentThread().getContextClassLoader().getResource ("db.properties").getPath();
reader = new FileReader(path);
//reader = new FileReader("src\\db.properties");//会找不到
pro.load(reader);
} catch (Exception e) {
System.out.println("文件错误");
e.printStackTrace();
}
driver = pro.getProperty("driver");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
System.out.println(driver);
// driver = "com.mysql.jdbc.Driver";
// url = "jdbc:mysql://localhost:3306/tiffany";// 协议:端口/数据库名称
// username = "root";
// password = "9622738";
}
public static Connection open() {
try {
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
System.out.println("连接错误");
}
return null;
}
public static void close(Connection con) {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}