Java连接MySQL数据库及简单的增删查操作 增删查各一个类
首先需要在project文件中添加jar包。用来连接MySQL数据库和eclipse。
jar包下载网址:https://dev.mysql.com/downloads/connector/j/
选择操作系统:平台无关。
然后选择第二个zip压缩包下载。解压获得jar包。
右击project项目–> Build Path --> Configure Build Path -->Library -->Add external jars -->选择下好的jar包。
建立连接类 Conn.java
这是一个较完整的连接类。
package test3;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Conn {
private static final String DRIVER= "com.mysql.cj.jdbc.Driver"; //驱动程序名
private static final String URL = "jdbc:mysql://localhost:3308/test3?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false"; //URL指向要访问的数据库名
//我的数据库名是test3
private static final String USER = "root"; //MySQL配置时的用户名
private static final String PASSWORD = null; //MySQL配置时的密码
public static Connection getConnection(){
Connection conn = null; //声明一个连接对象
try {
Class.forName(DRIVER); //注册驱动
conn = DriverManager.getConnection(URL,USER,PASSWORD); //获得连接对象
} catch (ClassNotFoundException e) { //捕获驱动类无法找到异常
e.printStackTrace();
} catch (SQLException e) { //捕获SQL异常
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {//关闭连接对象
if(conn != null) { //如果conn连接对象不为空
try {
conn.close(); //关闭conn连接对象对象
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(PreparedStatement pstmt) {//关闭预处理对象
if(pstmt != null) { //如果pstmt预处理对象不为空
try {
pstmt.close(); //关闭pstmt预处理对象
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Statement stmt) {//关闭预处理对象
if(stmt != null) { //如果pstmt预处理对象不为空
try {
stmt.close(); //关闭pstmt预处理对象
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(ResultSet rs) {//关闭结果集对象
if(rs != null) { //如果rs结果集对象不为null
try {
rs.close(); //关闭rs结果集对象
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
在一开始建立连接的时候发生了一些错误
是因为我的URL只写了
"jdbc:mysql://localhost:3308/test3"
后来询问了朋友发现需要在后面加上一段
?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
加上以后就能成功连接了。
然后是增加商品的类ProAdd.java
package test3;
import java.sql.Connection;
import java.sql.Statement;
public class ProAdd {
public void Add(String[] product) {
Connection con;//声明一个连接对象
//遍历查询结果集
try {
con = Conn.getConnection();//1.调用方法返回连接
if(!con.isClosed())
System.out.println("成功与数据库建立连接!");
Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!
String sql = "INSERT INTO product(Pname,Price) values('%s','%s')";//要执行的SQL语句
if(statement.executeUpdate(String.format(sql,product[0],product[1]))!=0)
System.out.println("插入成功");
else
System.out.println("插入失败");
Conn.close(statement);
Conn.close(con);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
删除商品的类 ProDelete.java
package test3;
import java.sql.Connection;
import java.sql.Statement;
public class ProDelete {
public void Delete(String Pname) {
Connection con;//声明一个连接对象
//遍历查询结果集
try {
con = Conn.getConnection();//1.调用方法返回连接
if(!con.isClosed())
System.out.println("成功与数据库建立连接!");
Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!
String sql = "DELETE FROM product WHERE Pname='%s'";//要执行的SQL语句
if(statement.executeUpdate(String.format(sql,Pname))!=0)
System.out.println("删除成功");
else
System.out.println("删除失败");
Conn.close(statement);
Conn.close(con);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
显示商品的类 ProDisplay.java
package test3;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
public class ProDisplay {
public ArrayList<String> Display() {
Connection con;//声明一个连接对象
ArrayList<String> pro = new ArrayList<>();
//遍历查询结果集
try {
con = Conn.getConnection();//1.调用方法返回连接
if(!con.isClosed())
System.out.println("成功与数据库建立连接!");
Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!
String sql = "SELECT * FROM product ";//要执行的SQL语句
ResultSet rs = statement.executeQuery(sql);
while(rs.next()){
pro.add(rs.getString("Pname").trim());
pro.add(rs.getString("Price").trim());
}
Conn.close(rs);
Conn.close(statement);
Conn.close(con);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return pro;
}
}
最后是主类 Main.java
package test3;
import java.sql.Connection;
import java.sql.Statement;
import java.util.ArrayList;
import test3.Conn;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
ProAdd ADD=new ProAdd();
String[] Proinfo = {"flag","12"};
ADD.Add(Proinfo);
ProDelete DEL=new ProDelete();
DEL.Delete("flag");
ProDisplay DIS=new ProDisplay();
System.out.println(DIS.Display());
}
}
添加了一个flag商品,然后又删掉,最后展示所有商品。
粗浅之作,敬请谅解。