1 新建数据库
1.1 新建数据库
1 启动mysql数据库
2 新建数据库
1.2 mysql数据库语法
1 选择数据库
use java_demo1
2 移除数据库
drop database java_web1
3 创建表
CREATE TABLE `user` (`id` int(11) PRIMARY KEY AUTO_INCREMENT,`name` varchar(255) NOT NULL,`age` int(11) );
4 移除表
drop table user;
5 创建表
CREATE TABLE `user` (`id` int(11) PRIMARY KEY AUTO_INCREMENT,`name` varchar(255),`password` varchar(255) NOT NULL,`age` int(11),`phone` varchar(255) NOT NULL );
6 添加全部字段
insert into user(password,name,age,phone)values("123456","tom","16","18483233516"); insert into user(password,name,age,phone)values("admin123","make","17","18563233516"); insert into user(password,name,age,phone)values("admin","root","16","18483233529"); insert into user(password,name,age,phone)values("root","root123","16","18483233654"); insert into user(password,name,age,phone)values("123456","admin456","16","18483233123"); insert into user(password,name,age,phone)values("123456","tom","17","18483233789"); insert into user(password,name,age,phone)values("1234567","tom","16","18483233516");
7 查询字段
查询全部字段 select * from user; 查询指定字段内容 select password,name from user; 查询条件成立字段 select password,name from user where id=1;
8 删除值
delete from user where id =1;
9 修改值
update user set name = "李四" where id = 2;
10 增加字段
alter table user add 'address' varchar(255);
11 模糊查询
select * from user where name like '%李%';
12 删除字段
alter table user drop adress;
13 分页显示
select * from user limit 5;
14 排序 降序 desc 升序 aec
select * from user order by age;
15 分组
select age,count(*) from user group by age;
2 java操作mysql的语法
现在文件下新建lib文件并导入mysql插件
选择lib右击添加为库
点击确定
现在成功搭建mysql库
2.1 链接数据库
package zzb.test; import java.sql.Connection; import java.sql.DriverManager; public class TestConntion {public static void main(String[] args) {/*** 配置连接*/String driver = "com.mysql.cj.jdbc.Driver";//驱动String url = "jdbc:mysql://localhost:3306/java_demo1";//数据库 端口号 地址String username = "root";String password ="root"; // try { // Class.forName(driver);//加载驱动 // Connection connection = DriverManager.getConnection(url,username,password); // } catch (Exception e) { // throw new RuntimeException(e); // } try {//加载驱动Class.forName(driver);//创建连接Connection connection = DriverManager.getConnection(url,username,password);System.out.println("数据库连接成功:"+connection);} catch (Exception e) {throw new RuntimeException(e);}} }
输出结构
2.2 操作数据语法
1 插入数据
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; /*** 插入*/ public class TestInsert { public static void main(String[] args) { // 定义一个字符串变量driver,存储MySQL JDBC驱动的全类名 String driver = "com.mysql.cj.jdbc.Driver"; // 定义一个字符串变量url,存储JDBC连接MySQL数据库的URL // 格式为:jdbc:mysql://主机名:端口号/数据库名 String url = "jdbc:mysql://localhost:3306/java_demo1"; // 定义字符串变量username,存储连接数据库的用户名 String username = "root"; // 定义字符串变量password,存储连接数据库的密码 String password = "root"; try { // 加载MySQL JDBC驱动 // Class.forName()方法用于动态加载类,这里加载的是MySQL JDBC驱动类 Class.forName(driver); // 2.加载驱动 // 使用DriverManager类的getConnection()方法获取数据库连接 // 需要传入三个参数:JDBC URL、用户名、密码 Connection connection = DriverManager.getConnection(url, username, password); // 创建连接 // 创建一个Statement对象,用于执行静态SQL语句 Statement statement = connection.createStatement(); // 创建statement 执行sql // 定义要执行的SQL语句,这里是一个插入语句 // 将数据插入到user表中,字段分别为password、name、age、phone String sql = "insert into user(password,name,age,phone) values('111111','李四6',18,'1234567')"; // 执行增加 // 使用Statement对象的executeUpdate()方法执行插入操作 // 该方法返回受影响的行数,如果插入成功,则返回1 int i = statement.executeUpdate(sql); // 输出受影响的行数 System.out.println(i); // 关闭资源(在实际应用中,还应该关闭Statement和Connection对象,这里为了简洁省略了) // statement.close(); // connection.close(); } catch (Exception e) { // 如果在try块中的代码出现异常,则捕获该异常 // 并将异常包装为RuntimeException重新抛出(通常不建议这样做,除非有特殊需求) throw new RuntimeException(e); }} }
2 更改数据
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class TestUpdate {public static void main(String[] args) {String driver = "com.mysql.cj.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/java_demo1";String username = "root";String password = "root";try {Class.forName(driver);Connection connection = DriverManager.getConnection(url,username,password);Statement statement = connection.createStatement();String sql = "update user set name='88888' where id = 19";int i = statement.executeUpdate(sql);System.out.println(i);} catch (Exception e) {throw new RuntimeException(e);}} }
3 删除数据
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class TestDelete {public static void main(String[] args) {String driver = "com.mysql.cj.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/java_demo1";String username = "root";String password = "root";try {Class.forName(driver);Connection connection = DriverManager.getConnection(url,username,password);Statement statement = connection.createStatement();String sql = "delete from user where id = 2";int i = statement.executeUpdate(sql);System.out.println(i);} catch (Exception e) {throw new RuntimeException(e);}} }
4 查询数据
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /*** 查询user表中所有记录 并且显示*/ public class TestSelect { public static void main(String[] args) { // 定义MySQL JDBC驱动的全类名 String driver = "com.mysql.cj.jdbc.Driver"; // 定义JDBC连接MySQL数据库的URL String url = "jdbc:mysql://localhost:3306/java_demo1"; // 定义连接数据库的用户名 String username = "root"; // 定义连接数据库的密码 String password = "root"; try { // 加载MySQL JDBC驱动 Class.forName(driver); // 使用DriverManager类的getConnection()方法获取数据库连接 // 需要传入三个参数:JDBC URL、用户名、密码 Connection connection = DriverManager.getConnection(url, username, password); // 创建数据库连接 // 使用连接对象创建Statement对象,用于执行SQL语句 Statement statement = connection.createStatement(); // 创建Statement对象 // 定义SQL查询语句,从user表中查询name、age、phone字段 String sql = "select name,age,phone from user"; // 执行查询语句,并返回结果集 ResultSet resultSet = statement.executeQuery(sql); // 遍历结果集,resultSet.next()方法用于将游标移动到下一行 // 如果下一行有数据,则返回true,否则返回false while (resultSet.next()){ // 遍历结果集 // 使用resultSet的getXxx(int columnIndex)方法获取对应列的值 // 这里的columnIndex是从1开始的,而不是从0开始 String name = resultSet.getString(1); // 获取第一列的值(name) int age = resultSet.getInt(2); // 获取第二列的值(age) String phone = resultSet.getString(3); // 获取第三列的值(phone) // 打印查询结果 System.out.println("name: " + name + " age: " + age + " phone: " + phone); } // 关闭资源(在实际应用中,应确保关闭ResultSet、Statement和Connection) // 这里为了简洁省略了关闭资源的代码 } catch (Exception e) { // 捕获异常,并将异常包装为RuntimeException重新抛出 // 通常不建议这样做,除非有特殊需求 throw new RuntimeException(e); } } }
输出结果
5 创建工具类
import java.sql.*; /*** 创建连接的工具类*/ public class ConnectionUtil {// 定义数据库驱动private static String driver = "com.mysql.cj.jdbc.Driver";// 定义数据库连接URLprivate static String url = "jdbc:mysql://localhost:3306/java_demo1";// 定义数据库用户名private static String username = "root";// 定义数据库密码private static String password = "root"; /*** 建立数据库连接的方法* @return 返回一个数据库连接对象*/public static Connection getConn() {Connection connection = null;try {// 加载数据库驱动Class.forName(driver);// 获取数据库连接connection = DriverManager.getConnection(url, username, password);} catch (Exception e) {// 如果出现异常,抛出运行时异常throw new RuntimeException(e);}return connection;} /*** 关闭资源的方法,包括关闭ResultSet、Statement和Connection* @param connection 数据库连接对象* @param statement Statement对象* @param resultSet ResultSet对象*/public static void close(Connection connection, Statement statement, ResultSet resultSet) {// 关闭ResultSetif (resultSet != null) {try {resultSet.close();} catch (SQLException e) {throw new RuntimeException(e);}} // 关闭Statementif (statement != null) {try {statement.close();} catch (SQLException e) {throw new RuntimeException(e);}} // 关闭Connectionif (connection != null) {try {connection.close();} catch (SQLException e) {throw new RuntimeException(e);}}} }
6 调用工具类了执行sql语句
import com.sun.corba.se.spi.monitoring.StatisticMonitoredAttribute; import com.zzb.util.ConnectionUtil; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test {public static void main(String[] args) { boolean flag = login("李四6","111111'");System.out.println(flag);} public static boolean login(String username,String password){String sql = "select name,age from user where name='"+username+"' and password ='"+password+"'";Connection connection = ConnectionUtil.getConn();//建连接Statement statement = null;ResultSet resultSet = null;try {statement = connection.createStatement();resultSet = statement.executeQuery(sql);if(resultSet.next()){System.out.println("成功");return true;}} catch (SQLException e) {throw new RuntimeException(e);}finally {ConnectionUtil.close(connection,statement,resultSet);}return false;} }
输出结果