使用JDBC方式连接数据库
前期准备
使用工具 :IDEA mysql
所需的jar包:mysql-connecter
步骤
1.加载mysql驱动
2.使用驱动管理器获取Connection连接
3.使用连接创建sql语句管理器PreparedStatement
4.执行相关语句
如果是查询语句,返回一个结果集
如果是增删改语句,会返回改变的行数
5.释放相关资源
相关代码如下
package _0602.dao;
import java.sql.*;
/**
* @author sunyong
* @date 2020/06/02
* @description
*该类本质是大家的公用dao,相当于一个基类,其他具体的dao类可继承该类
*/
public class BaseDao {
public static Connection conn;//定义连接
private static PreparedStatement pstm;//定义语句管理器
public static ResultSet rs;//定义结果集
//获取连接
public static void getConnection(String driver,String url,String usr,String pwd) throws Exception{
//1)加载驱动
Class.forName(driver);
//2)使用驱动管理器生成连接
conn= DriverManager.getConnection(url,usr,pwd);
}
//查询
public static ResultSet query(String sql,Object...params) throws SQLException {
//3)获取语句管理器
pstm=conn.prepareStatement(sql);
//设置语句中的相关参数
for (int i = 0; i < params.length; i++) {
pstm.setObject(i+1,params[i]);
}
//4.1)执行查询语句,返回结果集
rs=pstm.executeQuery();
return rs;
}
//增删改语句
public static int update(String sql,Object...params) throws SQLException {
//3)获取语句管理器
pstm=conn.prepareStatement(sql);
//设置语句中的相关参数
for (int i = 0; i < params.length; i++) {
pstm.setObject(i+1,params[i]);
}
//4.2)执行增删改句,返回改变的行数
return pstm.executeUpdate();
}
//5)释放相关资源
public static void close() throws SQLException {
//注意:后开的先关
if(rs!=null){
rs.close();
}
if (pstm!=null){
pstm.close();
}
if(conn!=null){
conn.close();
}
}
//为方便就在本类中测试
public static void main(String[] args) {
try {
//获取连接
getConnection("com.mysql.jdbc.Driver","jdbc:mysql://192.168.56.101:3306/kgcnews","kb07","ok");
//执行的sql查询语句
String sql1 ="select * from news_user";
//执行的sql删除语句
String sql2="delete from news_user where id=9";
//获取查询的结果集
rs =query(sql1);
//遍历结果集
while(rs.next()){
int id=rs.getInt("id");
String userName=rs.getString("userName");
//打印id和名字
System.out.println(id+"\t"+userName);
}
//获取删除改变的行数
int delRow = update(sql2);
//打印是否删除
System.out.println(delRow>0?"删除成功":"删除失败");
//关闭资源
close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
未执行语句前的mysql数据库中的表:
执行语句后控制台:
执行语句后mysql数据库中的表: