1.idea+MySQL主要有以下七步:
加载驱动、创建连接、写sql、得到statement对象、执行sql、处理结果集、关闭资源。
2.以上操作的简单测试源码如下(当然要先在MySQL建表,然后连接数据库):
package com.zhongruan;
import java.sql.*;
public class Test {
public static void main(String[] args) {
ResultSet resultSet=null;
PreparedStatement statement=null;
Connection connection=null;
try {
//1加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2创建连接
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/idea?useSSL=true&characterEncoding=utf-8&user=root&password=root");
//3.写sql
String sql="select * from userinfo";
//4.得到statement对象
statement = connection.prepareStatement(sql);
//5.执行sql
resultSet = statement.executeQuery();
//6处理结果集
while (resultSet.next()){
System.out.print(" id: "+resultSet.getInt(1));
System.out.print(" username: "+resultSet.getString(2));
System.out.print(" password: "+resultSet.getString(3));
System.out.println("-----------");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//7关闭资源
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
3.要实现增删改查功能,则要修改一下这些代码,我创建的类和包就是下面这样:*
**
4.代码如下(虽然有错误,不过后面会改的,而且增删改查那部分可以参考一下):
(1) test类里面的代码:
package com.zhongruan;
import com.zhongruan.DBUtil.DBUtil;
import com.zhongruan.bean.student;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class test {
public List<student> findAll () {
List<student> list = new ArrayList<>();
ResultSet resultSet = null;
PreparedStatement statement = null;
Connection connection = null;
try {
connection = DBUtil.connenction();
//3.写sql
String sql = "select * from db_ai";
//4.得到statement对象
statement = connection.prepareStatement(sql);
//5.执行sql
resultSet = statement.executeQuery();
//6处理结果集
while (resultSet.next()) {
String name = resultSet.getString(1);
String age = resultSet.getString(2);
String sex = resultSet.getString(3);
student info = new student(name, age,sex);
list.add(info);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//7关闭资源
DBUtil.close(connection, statement, resultSet);
}
return list;
}
public static void main(String[] args) {
test t=new test();
List<student> list = new ArrayList<>();
list =t.findAll();
System.out.println(list.toString());
}
}
**(2)DBUtil类的代码:**
package com.zhongruan.DBUtil;
import java.sql.*;
public class DBUtil {
ResultSet resultSet = null;
public static Connection getConnenction(){
Connection connection =null;
//1加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
//2创建连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql?useSSL=true&characterEncoding=utf-8&user=root&password=123456");
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
//查
public void queryData() {
try {
String sql = "select * from db_ai";
statement = connection().prepareStatement(sql);
resultSet = statement.executeQuery();
while (resultSet.next()) {//如果当前语句不是最后一条,则进入循环
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String age = resultSet.getString("age");
String sex = resultSet.getString("sex");
System.out.println("name:" + name+ " " + "age:" + age + " " + "sex:" + sex);
}
} catch (Exception e) {
e.printStackTrace();
}
}
//增
public void addData() {
try {
statement = connenction().prepareStatement("insert into db_ai(name,age,sex) values(?,?,?)");
statement.setString(1, "李四");
statement.setString(2, "15");
statement.setString(3, "男");
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
//改
public void updateData() {
try {
statement = connenction().prepareStatement("update db_ai set name = ? where sex = 女");
statement.setString(1, "阿囡");
statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
//删
public void deleteData() {
try {
Connection connection=null;
Statement stmt = connection.createStatement();//创建Statement对象
stmt.executeUpdate("delete from db_ai where sex=男");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void close(Connection connection, PreparedStatement statement, ResultSet resultSet) {
//7关闭资源
if (resultSet != null) {
try{
resultSet.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
**(3)student类的代码:**
package com.zhongruan.bean;
public class student {
public student(String name, String age, String sex ) {
this.name=name;
this.age=age;
this.sex=sex;
}
private String name;
private String age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "student{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
- student类的代码可以自动生成,只需要自己添加那几个private变量,然后自己百度,不方便透露。