准备工作
1.首先在maven 下载Mysql驱动包
在上方搜索框中搜索Mysql
点击第二个Mysql Connector java
找到对应的下载Mysql的系列(我的是5.7, 5开头就行)
在Files 行 点击 (jar(983KB))
2.然后创建项目导入驱动包
先创建Directory lib 用来存放包
包复制到这
编写代码
1.创建数据源(描述数据库服务器所在的位置)
2.建立联系
3.构造sql语句
4.执行sql语句
5.释放资源
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCInsert {
public static void main(String[] args) throws SQLException {
Scanner scanner = new Scanner(System.in);
//1.创建并初始化一个数据源
DataSource dataSource = new MysqlDataSource(); //DataSource 数据源是接口不能new, (向下转型);
//当然也可以直接 MysqlDataSource database = new MysqlDataSource();就不用上下转型,使用习惯
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("数据库密码");//这些方法是子类特有的,把父类引用转回子类引用(向下转型)
//2.和数据库服务器进行连接
Connection connection = dataSource.getConnection();//受查异常 显示处理
//3.从控制台读取用户的输入内容
System.out.println("请输入学生姓名: ");
String name = scanner.nextLine();
System.out.println("请输入学号: ");
int id = scanner.nextInt();
//4.构造sql语句
String sql = "insert into student values(?,?)";//使用占位符
PreparedStatement statement = connection.prepareStatement(sql);//使用PreparedStatement提前预编译sql
statement.setInt(1,id);//第一个出现的占位符和id替换
statement.setString(2,name);//第二个出现的占位符和 name替换
//这个打印加到拼接数据之后
System.out.println(statement);
//5.执行sql语句
int ret = statement.executeUpdate();//返回int 表示影响的行数
System.out.println("ret = "+ ret);
//6.释放资源
statement.close();
connection.close();
}
}
"jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false"
结果显示
实现查询操作
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCInsert {
public static void main(String[] args) throws SQLException {
//1.创建和初始化数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("Yxt324");
//2.与数据库建立连接
Connection connection =dataSource.getConnection();
//3.构造sql语句
String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);
//4.执行sql语句
ResultSet resultSet = statement.executeQuery();
//5.遍历结果集合
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("id = "+ id +",name = "+ name);
}
//6.释放资源
resultSet.close();
statement.close();
connection.close();
}
对于查询结果来说返回的值应该是ResultSet对象而不是简单的 int
while (resultSet.next()) {
int id = resultSet.getInt("id");
//当光标指向某一行可以使用getXX 获取这一行的数据
String name = resultSet.getString("name");
System.out.println("id = "+ id +",name = "+ name);
}