diea jdbc 连接
https://search.maven.org/search?q=mysql-connector
https://mvnrepository.com/artifact/mysql/mysql-connector-java
连接数据库查询
步骤
- 加载驱动
- 填写登录信息登录
- 连接数据库DriverManager
- 获取执行sql的对象 statment(statment对象是不安全的)
- 获取结果集
- 释放连接
package JDBCmysql;
import java.sql.*;
/**连接数据库查询
* @author liu
*/
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1。加载驱动 固定写法,加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2。用户信息和url
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=ture&characterEncoding=utf8&useSSL=true";
String userName = "root";
String password = "123456";
//3。连接成功,数据库对象 connection 代表数据库
Connection connection = DriverManager.getConnection(url, userName, password);
//4。执行sql的对象 statement 执行sql的对象
Statement statement = connection.createStatement();
//5。执行sql的对象去执行sql,可能存在结果,查看返回结果
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql);//返回的结果集,里面封装了我们全部的查询结果
while(resultSet.next()) {
System.out.println("id=" + resultSet.getObject("id"));
System.out.println("name=" + resultSet.getObject("name"));
System.out.println("psw=" + resultSet.getObject("psw"));
System.out.println("email=" + resultSet.getObject("email"));
System.out.println("bir=" + resultSet.getObject("birthday"));
System.out.println("--------------------------------------");
}
//6。关闭资源,释放连接
resultSet.close();
statement.close();
connection.close();
}
}
DriverManager
// DriverManager.registerDriver(new com.mysq1.jdbc.DriverO);
class.forName("com.mysql.cj.jdbc.Driver");//固定写法,加载驱动
connection connection = Driverwanager.getconnection(ur1,username,password);
// connection代表数据库
//数据库设置自动提交
//事务提交
//事务滚回
connection.rol1back();
connection.commit();
connection.setAutocommit();
URL
string ur1 = "jdbc :mysql: // loca7host: 3306 /jdbcstudy?useunicode=true&characterEncoding=utf8&usessL=true";
// mysql -- 3306
//协议∶//主机地址:端口号/数据库名?参数1&参数2&参数3
// oralce -- 1521
//jdbc:oracle:thin:@localhost:1521:sid
statment对象执行sql
string sq1 = "sELECT * FROM users";//编写sQL
statement.executeQuery();//查询操作返回 Resu1tset
statement.execute();//执行任何sQL
statement.executeupdate();//更新、插入、删除。都是用这个,返回一个受影响的行数
获得指定的数据类型(数据库的列类型)
resultset.getobject();//在不知道列类型的情况下使用
//如果知道列的类型就使用指定的类型
resultset. getstring();
resu7tset.getInt();
resultset.getF1oat();
resultset.getDate();
resultset.getobject();
遍历
resultset.beforeFirst(); //移动到最前面
resultset.afterLast(); //移动到最后面
resultset.next(); //移动到下一个数据
resultset.previous(); //移动到前一行
resultset.absolute(row); //移动到指定行
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决