版权声明:本文为博主原创文章,如需转载请先联系作者后注明出处 https://blog.csdn.net/weixin_42158633/article/details/89436594
步骤1 :创建项目后引入所需的mysql驱动jar包
这里用maven从仓库引入jar包:在pom.xml文件中添加下面内容:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
步骤2 :编写Demo实例
其一:
import java.sql.*;
public class MyJDBC {
private static final String URL="jdbc:mysql://127.0.0.1:3306/stu";
private static final String USER="root";
private static final String PASSWORD="";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//2.获得数据连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
//3.使用数据库的连接创建声明
Statement stmt = conn.createStatement();
//4.使用声明执行SQL语句
ResultSet rs = stmt.executeQuery("select * from user");
//5.读取数据库的信息
/**
*boolean next() 方法 如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
* 将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
*/
while(rs.next()){
String id = rs.getString("id");
String name = rs.getString("username");
String pwd = rs.getString("pwd");
System.out.println(id+" 用户名:"+name+"密码:"+pwd);
}
}
}
控制台输出:
1 用户名:李磊密码:123456
2 用户名:Jack密码:abc
3 用户名:Tom密码:123
其二:接口 ResultSet的指向数据行光标的应用
import com.stu.entity.User;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) throws Exception {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=UTF-8";
String user = "root";
String pwd = "";
//2.获得数据库链接
Connection con = DriverManager.getConnection(url,user,pwd);
//3.使用JDBC接口规范实现CRUD
/**
* 向数据库中添加一行信息
*/
String sql = "insert into user(username,password) values(?,?)";
PreparedStatement ps = con.prepareStatement(sql); //接口 PreparedStatement 表示预编译的 SQL 语句的对象
ps.setString(1,"张三");
ps.setString(2,"1234");
ps.executeUpdate();//方法:在此 PreparedStatement 对象中执行 SQL 语句 成功后返回操作的行数
/**
* 查询表所有数据
*/
String sql2 = "select * from user";
ps = con.prepareStatement(sql2);
//接口 ResultSet 表示数据库结果集的数据表
ResultSet rs = ps.executeQuery(); //在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象
List<User> list = new ArrayList<User>();
while (rs.next()){
int id = rs.getInt(1); //以 int 的形式获取此 ResultSet 对象的当前行中指定列的值。
String username = rs.getString(2);//以String的形式获取此 ResultSet 对象的当前行中指定列的值。
String password = rs.getString(3);
User u = new User(id,username,password);
list.add(u);
}
System.out.println(list);
}
}
数据库操作前:
控制台输出:
[User{id=1, username='李磊', password='123456'}, User{id=2, username='Jack', password='abc'}, User{id=3, username='Tom', password='123'}, User{id=4, username='张三', password='1234'}]
数据库操作后:
使用到的类或接口:
java.sql 接口 PreparedStatement 表示预编译的 SQL 语句的对象。
java.sql 接口 ResultSet 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。(重点:对光标的使用)
java.sql 接口 Connection 与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。