MySQL数据库交互基础类

来源:互联网 发布:eclipse 测试java程序 编辑:程序博客网 时间:2024/06/18 13:27
package jdbcc;



import java.sql.CallableStatement;
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 MyJDBC {

static Connection  conn=null; //建立连接返回的对象
static Statement sm=null;//执行静态SQL语句的对象
static PreparedStatement  ps=null;//执行动态SQL语句
static CallableStatement cs=null;//执行数据库存储过程
static{    //静态代码快,加载这个类的时候就将和数据库建立链接
//连接MySql数据库,用户名和密码都是root   
   String url = "jdbc:mysql://localhost:3306/test" ;    
   String username = "root" ;   
   String password = "root" ; 
try {
//加载数据库驱动
Class.forName("org.mysql.jdbc.Driver");
//链接数据库
conn=DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException | SQLException e) {
System.out.println("数据库未连接......");
}
}
//更新数据库(增加、删除、修改)
@SuppressWarnings("finally")
//Object[]中的数据是代替sql语句中的“?”,完成整个数据查询语句(例子:sql="select * form User where id=?;")
public static int update(String sql,Object[] obj){
int flag=-1;
try {
//获得预处理对象并加载预处理语句,可选择三个中的任意一个
//sm=conn.createStatement();
ps=conn.prepareStatement(sql);
//cs=conn.prepareCall(new String("SQL语句"));

//替换其中的“?”
for(int i=0;i<obj.length;i++){
//加载sql语句
ps.setObject(i+1, obj[i]);
}
//执行访问数据库的语句
flag= ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
//关闭资源
conn.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
}

//查询数据库
@SuppressWarnings("finally")
public static List<String> query(String sql,Object [] obj){
List<String>  list=null;
ResultSet rs=null;
try {
//获得预处理对象并加载预处理语句,可选择三个中的任意一个
//sm=conn.createStatement();
ps=conn.prepareStatement(sql);
//cs=conn.prepareCall(new String("SQL语句"));

//替换其中的“?”
for(int i=0;i<obj.length;i++){
//加载sql语句
ps.setObject(i+1, obj[i]);
}
//查询数据,返回一个ResultSet集合(java.sql包下的)
rs= ps.executeQuery();
list=new ArrayList<>();

while(rs.next()){
String mess=rs.getString("name"); //获取该User对象中name的值
list.add(mess);  //将name添加到list中
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
//关闭资源
ps.close();
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
//返回查询结果
return list;
}
}

}
0 0