**
JDBC封装为工具类
导入mysql的连接jar包,然后进行数据库的连接,主要分为六步:
1.加载驱动 Class.forName(“com.mysql.jdbc.Driver”);
2.创建连接对象 Connection con = DriverManage(“jdbc:mysql://ip地址:端口号/数据库名”);(本机地址用localhost或127.0.0.1,mysql默认端口为3306)
3.创建Statement语句 Statement stm = con.createStatement();
4.创建SQL语句
5.返回结果集
6.释放资源
**
1,2和6会大量使用且重复,可以封装到一个工具类中,减少代码冗余,使用的时候直接调用
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//静态变量 因为URL不长变化直接在这赋值
private static String url = "jdbc:mysql://localhost:3306/stc?useSSL = true";
//mysql用户名
private static String user = "root";
//密码
private static String password = "0000";
//定义一个静态Connection类型的变量
private static Connection con;
//定义一个无参构造方法
public JDBCUtil() {
super();
}
//静态代码块,随着类的加载而加载,创建连接
static {
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接对象
public static Connection getConnection() {
//创建连接
try{
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//查询时释放资源
public static void close(Connection con,Statement stm,ResultSet rs) {
try {
if(rs!=null) {
rs.close();
}
if(stm!=null) {
stm.close();
}
if(con!=null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
//增删改释放资源
public static void close2(Connection con,Statement stm) {
try {
if(stm!=null) {
stm.close();
}
if(con!=null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
接口调用工具类
//获取连接对象
Connection con = JDBCUtil.getConnection();
Statement stm = null;
//定义一个结果集接收对象
ResultSet rs = null;
List<Student> list = new ArrayList<>();
//查询Student 数据库中的所有数据
public List<Student> findAll() {
try {
//3.
stm = con.createStatement();
//4.
String sql = "select * from Student";
//5.
rs = stm.executeQuery(sql);
//多行数据
while(rs.next()) {
int id = rs.getInt("id");
String sname = rs.getString("name");
String sage = rs.getString("age");
String ssex = rs.getString("sex");
Student s = new Student(id,sname,sage,ssex);
list.add(s);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
//6.释放资源
JDBCUtil.close(con,stm,rs);
}
return list;
}