MySQL之引狼入室(JDBC操作数据库)
一、欲速则不达,先踩坑
第一个坑就是什么是JDBC?JDBC如何操作数据库?
JDBC通俗的来讲,就是一个“黄牛”,这个黄牛可以将数据库厂商和我们所写的应用程序连接,并进行沟通。

讯享网
你说这个“黄牛图”啥呢?我也不知道😁。
这是第一个坑,了解了JDBC是干啥的,然后想要操作数据库是吧?
第二个坑,远端服务器的端口记得开放。
我看了许多的文章,讲述JDBC如何连接到MySQL,就是没人告诉我,这个远端服务器的3306的端口一定要记得开放。

第三个坑,MySQL记得授权。

方式一:允许用户root使用做为密码从任何主机连接到mysql服务器 grant all privileges on *.* to 'root'@'%' identify by '' with grant option;
讯享网
讯享网方式二:允许用户root从ip为192.168.12.35的主机连接到mysql服务器,并使用做为密码,%代表任何。 grant all privileges on *.* to root@'192.168.12.35' identify by '' with grant option;
详细
二、JDBC学习
- 先下载JDBC的驱动;

- 写代码
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class MySQL_operation {
public static void main(String[] args) throws Exception {
// 加载驱动 // DriverManager.registerDriver(new com.mysql.jdbc.Driver());是底层,但是Class反射已经是个静态方法,直接用反而方便 Class.forName("com.mysql.jdbc.Driver"); // 获得mysql链接 Connection conn = DriverManager.getConnection("jdbc:mysql://主机地址:3306/test", "root", "密码"); // 得到操作数据库sql语句的对象Statement Statement st = conn.createStatement(); System.out.println("Access successfully!\n=================="); // 执行 ResultSet rs = st.executeQuery("select * from asgin"); // 获得结果 集合 while (rs.next()) {
System.out.println("UserID:" + rs.getObject(1)); System.out.println("UserPassword:" + rs.getObject(2)); System.out.println("=================="); } // 关闭资源 rs.close(); st.close(); conn.close(); } }
三、练手项目之:登录注册系统
实现功能,注册(插入),登录(判别)
讯享网import java.sql.*; import java.util.Scanner; / * author:Lee * the goal od this test:for practice JDBC and mysql *2020年7月3日 */ public class MySQL_operation {
private Connection conn; private Statement st; private ResultSet rs; public class Register{
private Connection connection; private PreparedStatement preparedStatement; private ResultSet resultSet; public Register(int ID, String psw) throws Exception {
String sql = "insert into asgin values (?,?)"; Class.forName("com.mysql.jdbc.Driver"); this.connection= DriverManager.getConnection("jdbc:mysql://主机:3306/test", "root", "密码"); this.preparedStatement = connection.prepareStatement(sql); preparedStatement.setInt(1, ID); preparedStatement.setString(2, psw); preparedStatement.executeUpdate(); preparedStatement.close(); connection.close(); } } public MySQL_operation() throws Exception {
Class.forName("com.mysql.jdbc.Driver"); // 获得mysql链接 this.conn= DriverManager.getConnection("jdbc:mysql://主机:3306/test", "root", "密码"); // 得到操作数据库sql语句的对象Statement this.st = conn.createStatement(); System.out.println("Access successfully!\n========================="); } public void Register_MYSQL() throws Exception {
System.out.print("账号注册ID:"); Scanner scanner1 = new Scanner(System.in); int ID = Integer.parseInt(scanner1.nextLine()); System.out.print("账号注册密码:"); Scanner scanner2 = new Scanner(System.in); String psw = scanner2.nextLine(); Register register = new Register(ID,psw); System.out.println("注册成功!"); } public void access() throws SQLException {
Scanner scanner1 = new Scanner(System.in); Scanner scanner2 = new Scanner(System.in); System.out.print("请输入ID:"); String commandID = scanner1.nextLine(); System.out.print("请输入密码:"); String commandPSW = scanner2.nextLine(); // 执行 this.rs = this.st.executeQuery("select * from asgin"); // 获得结果 集合 while (rs.next()) {
if ((rs.getString(1)).equals(commandID)){
System.out.println("ID正确!"); if ((rs.getString(2)).equals(commandPSW)){
System.out.println("密码正确!\n登陆成功!"); System.out.println("UserID:" + rs.getObject(1) + "\tUserPassword:" + rs.getObject(2)); }else {
System.out.println("密码错误!"); break; } break; } } } public void close() throws SQLException {
this.rs.close(); this.st.close(); this.conn.close(); } }
测试类:
public class text {
public static void main(String args[]) throws Exception{
MySQL_operation mySQL_operation = new MySQL_operation(); //注册 mySQL_operation.Register_MYSQL(); //登录 mySQL_operation.access(); //关闭应用 mySQL_operation.close(); } }
效果:
讯享网Access successfully! ========================= 账号注册ID:1004 账号注册密码:312oo 注册成功! 请输入ID:1004 请输入密码:132xx ID正确! 密码错误!
把注册注释掉实现的登录功能:
Access successfully! ========================= 请输入ID:1000 请输入密码:123hhh ID正确! 密码正确! 登陆成功! UserID:1000 UserPassword:123hhh

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/11589.html