java操作数据库语法
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"; // 定义数据库连接URL private 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) { // 关闭ResultSet if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { throw new RuntimeException(e); } } // 关闭Statement if (statement != null) { try { statement.close(); } catch (SQLException e) { throw new RuntimeException(e); } } // 关闭Connection if (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; } }
输出结果