Java JDBC连接MySQL数据库,基础语法及自定义JDBC的MySQL工具类
Posted liangzai2048
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java JDBC连接MySQL数据库,基础语法及自定义JDBC的MySQL工具类相关的知识,希望对你有一定的参考价值。
文章目录
JAVA JDBC连接mysql数据库
JDBC使用
1、通过反射加载驱动
Class.forName("com.mysql.jdbc.Driver");
2.建立连接
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia?useUnicode=true&characterEncoding=utf8",
"root",
"123456"
);
3.创建执行器 用了执行sql语句
createStatement()
prepareStatement()
Statement statement = connection.createStatement();
String sql = "select * from student";
4.执行sql语句
ResultSet rs = statement.executeQuery(sql);
5.获取结果
while (rs.next())
System.out.print(rs.getInt("id") + "\\t");
System.out.print(rs.getString("name") + "\\t");
System.out.print(rs.getInt("age") + "\\t");
System.out.print(rs.getString("sex") + "\\t");
System.out.print(rs.getString("clazz") + "\\t");
System.out.print(rs.getString("job") + "\\t");
System.out.print(rs.getString("gongzi") + "\\t\\n");
6.关闭
rs.close();
statement.close();
connection.close();
JDBC查询全体学生信息
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class mysqlSelectDemo02
public static void main(String[] args) throws Exception
//jdbc使用
//1.通过反射加载 加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.建立连接
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia?useUnicode=true&characterEncoding=utf8",
"root",
"123456"
);
//3.创建执行器 用来执行SQL语句
//3.1 createStatement()
//3.2 prepareStatement()
Statement statement = connection.createStatement();
String sql = "select * from student";
//4.执行sql语句
ResultSet rs = statement.executeQuery(sql);
//5.获取结果
while (rs.next())
System.out.print(rs.getInt("id") + "\\t");
System.out.print(rs.getString("name") + "\\t");
System.out.print(rs.getInt("age") + "\\t");
System.out.print(rs.getString("sex") + "\\t");
System.out.print(rs.getString("clazz") + "\\t");
System.out.print(rs.getString("job") + "\\t");
System.out.print(rs.getString("gongzi") + "\\t\\n");
//6.关闭
rs.close();
statement.close();
connection.close();
运行结果:
20221401 刘生发 25 男 14 没有工作 17k
20221402 胡杰靓 24 男 14 大数据工程师 18k
20221403 朱佳乐 23 男 14 没有工作 17k
20221404 张咪 23 女 14 没有工作 17k
20221405 杨旭 22 男 14 码农 15k
20221406 陶华根 22 男 14 码农 15k
20221407 潘磊 22 男 14 码农 14k
20221408 王友虎 24 男 14 大数据高级开发工程师 20k
20221409 覃笑 26 男 14 大数据架构师 50k
20221410 潘磊 22 男 14 码农 14k
20221411 王友虎 24 男 14 大数据高级开发工程师 20k
20221412 覃笑 26 男 14 大数据架构师 50k
20221413 潘磊 22 男 14 码农 14k
20221414 王友虎 24 男 14 大数据高级开发工程师 20k
20221415 覃笑 26 男 14 大数据架构师 50k
20221416 潘磊 22 男 14 码农 14k
20221417 王友虎 24 男 14 大数据高级开发工程师 20k
20221418 覃笑 26 男 14 大数据架构师 50k
20221419 王友虎 24 男 14 大数据高级开发工程师 20k
20221420 覃笑 26 男 14 大数据架构师 50k
20221421 覃笑 26 男 14 大数据高级开发工程师 20k
20221422 王友虎 24 男 14 大数据高级开发工程师 20k
20221423 覃笑 26 男 14 大数据架构师 50k
20221424 覃笑 26 男 14 大数据高级开发工程师 20k
20221425 王友虎 24 男 14 大数据高级开发工程师 20k
20221426 覃笑 26 男 14 大数据架构师 50k
20221427 覃笑 26 男 14 大数据高级开发工程师 20k
20221428 王友虎 24 男 14 大数据高级开发工程师 20k
20221429 覃笑 26 男 14 大数据架构师 50k
20221430 覃笑 26 男 14 大数据高级开发工程师 20k
20221431 李静 25 女 14 没有工作 17k
20221432 奥特曼 25 男 14 打怪兽 15k
20221433 杨金杨 25 男 14 码农 15k
20221434 杨金杨 25 男 14 打怪兽 15k
20221435 杨金杨 25 男 14 打豆豆 15k
20221436 杨金杨 25 男 14 打怪兽 15k
20221437 李静 25 女 14 打豆豆 20k
20221438 覃笑 26 男 14 招生 25k
20221439 李静 27 男 14 搞钱 28k
20221440 张志凯 26 男 14 铠甲勇士 10k
20221441 靓仔 24 男 14 大数据高级开发工程师 20k
JDBC 添加学生信息
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;
public class mysqlInsert
public static void main(String[] args) throws Exception
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的id:");
int id = scanner.nextInt();
System.out.println("请输入您的姓名:");
String name = scanner.next();
System.out.println("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("请输入您的性别:");
String sex = scanner.next();
System.out.println("请输入您的班级:");
String clazz = scanner.next();
System.out.println("请输入您想要的工作:");
String job = scanner.next();
System.out.println("请输入您想要的薪资:");
String gongzi = scanner.next();
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia?useUnicode=true&characterEncoding=utf8",
"root",
"123456"
);
Statement statement = connection.createStatement();
String sql = "insert into student(id,name,age,sex,clazz,job,gongzi) values("+id+",'"+name+"',"+age+",'"+sex+"','"+clazz+"','"+job+"','"+gongzi+"')";
int i = statement.executeUpdate(sql);
if (i==i)
System.out.println("注册成功,影响行数:" + i);
else
System.out.println("注册失败");
statement.close();
connection.close();
运行结果:
请输入您的id:
20221443
请输入您的姓名:
test
请输入您的年龄:
23
请输入您的性别:
女
请输入您的班级:
14
请输入您想要的工作:
划水
请输入您想要的薪资:
50k
注册成功,影响行数:1
JDBC 删除学生信息
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class mysqlDelete
public static void main(String[] args) throws Exception
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia?useUnicode=true&characterEncoding=utf8",
"root",
"123456"
);
Statement statement = connection.createStatement();
String sql = "delete from student where name = 'test'";
int i = statement.executeUpdate(sql);
if (i>0)
System.out.println("执行成功,影响行数:" + i);
else
System.out.println("执行失败,影响行数:" + i);
statement.close();
connection.close();
运行结果:
执行成功,影响行数:1
JDBC 修改学生信息
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class mysqlUpdate
public static void main(String[] args) throws Exception
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia?useUnicode=true&characterEncoding=utf8",
"root",
"123456"
);
Statement statement = connection.createStatement();
String sql = "update student set age = 80 where name = 'test'";
int i = statement.executeUpdate(sql);
if (i>0)
System.out.println("执行成功,影响行数:" + i);
else
System.out.println("执行失败,影响行数:" + i);
statement.close();
connection.close();
运行结果:
执行成功,影响行数:1
JDBC 用户登录
JDBC用户登录1
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
public class login01
public static void main(String[] args) throws Exception
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia",
"root",
"123456");
Statement statement = connection.createStatement();
//1.通过username去mysql中查找有没有这一条记录(存在:输入密码,不存在:就报错了)
//2.存在之后 用查到的密码匹配输入的密码
String sql = "select * from user where username='"+username+"'";
ResultSet rs = statement.executeQuery(sql);
if (!rs.next())
System.out.println("用户输入错误");
//结束
//匹配密码
String password1 = rs.getString("password");
if (password==null || !password.equals(password1))
System.out.println("密码不匹配");
System.out.println("登录成功");
rs.close();
statement.close();
connection.close();
运行结果1:
请输入用户:
123
请输入密码:
456
用户输入错误
运行结果2:
请输入用户:
123
请输入密码:
456
用户输入错误
运行结果3:
请输入用户:
root
请输入密码:
123456
登录成功
但是这种方法通过SQL注入 123’ or '1=1 是可以登录进去的(不安全)
JDBC用户登录2
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
public class login02
public static void main(String[] args) throws Exception
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://master:3306/shujia",
"root",
"123456"
);
String sql = "select * from user where username=?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1,username);
ResultSet rs = statement.executeQuery();
if (!rs.next())
System.out.println("用户输入错误");
//匹配密码
String password1 = rs.getString("password");
if (password==null || !password.equals(password1))
System.out.println("密码不匹配");
System.out.println("登录成功");
rs.close();
statement.close();
connection.close();
这种方式是安全的,以后开发都是使用该方法
MySQLUtil 工具类
如果说项目多了,每次都要启动JDBC的驱动,太啰嗦了为了减少工作量,我们自己定义一个MySQL JDBC工具类
import java.sql.*;
public class MysqUtil
static String DRIVER="com.mysql.jdbc.Driver";
static String URL="jdbc:mysql://master:3306/shujia?useUnicode=true&characterEncoding=utf8";
<以上是关于Java JDBC连接MySQL数据库,基础语法及自定义JDBC的MySQL工具类的主要内容,如果未能解决你的问题,请参考以下文章