Java使用Jdbc连接mysql数据库
什么是jdbc:
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 使用maven配置MySQL包
jdbc连接步骤:
前提: 数据库的驱动 步骤: 1、加载/注册驱动 Class.forName("驱动类") DriverManager.registerDriver(驱动对象) 2、获得数据库连接对象 java.sql.Connection Connection conn = DriverManager.getConnection( url, //连接字符串 username, //登录数据库的用户名 password //登录数据库的密码 ); 3、创建执行体(Statement对象) Statement //执行不带参数的SQL语句 PrepareStatement //执行带参数的SQL语句 CallableStatement //执行存储过程 Statement stat = conn.createStatement(); PrepareStatement pstat = conn.preparedStatement(sql); CallableStatement cstat = DBOperate.getConnection().prepareCall(sql); 4、调用Statement对象当中的executeXXX()方法,将SQL语句发送到指定的数据库,由数据库执行SQL语句,然后返回执行的结果。 executeQuery(); //执行查询 executeUpdate(); //执行更新操作 execute(); 可以执行任何的SQL,这个方法的返回值是一个boolean类型的值。这个返回值并不是SQL语句是否执行成功,而是表示执行结果当中是否有结果集,如果有结果集就是true,否则就是false。如果是true,那么就使用Statement对象中的getResultSet()来获得结果集。如果是false,就使用Statement对象中的getUpdateCount()方法,获得结果。 5、获取并处理返回的结果 6、关闭数据库连接 conn.close();
数据库驱动配置:
private static final String diver = "com.mysql.cj.jdbc.Driver"; private static final String url="jdbc:mysql://localhost:3306/javademo?serverTimezone=Asia/Shanghai"; private static final String usernaem="root"; private static final String possword="123456"; private static Connection connection = null;
加载驱动类、获得数据库连接对象
public class DBOperate { // 数据库连接对象的连接属性 private static final String diver = "com.mysql.cj.jdbc.Driver"; private static final String url="jdbc:mysql://localhost:3306/javademo?serverTimezone=Asia/Shanghai"; private static final String usernaem="root"; private static final String possword="123456"; private static Connection connection = null; // 使用一个静态块初始化连接对象 static { try { //加载驱动类 Class.forName(diver); //2.获得数据库连接对象 connection = DriverManager.getConnection(url,usernaem,possword); } catch (Exception e){ e.printStackTrace(); } } public static Connection getConnection(){ return connection; } }
创建能执行带参数的SQL语句的Statement
//sql语句 String sql = "insert into tbl_goods(gname,production) values(?,?)"; //PreparedStatement 执行有参数的SQL语句 PreparedStatement pstat = DBOperate.getConnection().prepareStatement(sql); pstat.setString(1,goods.getGname()); pstat.setDate(2,new Date(goods.getProduction().getTime())); // 执行 int rows=pstat.executeUpdate(); return rows;
添加数据:
Goods goods = new Goods(); goods.setGname("华为Mete2021"); goods.setProduction(new Date()); //业务逻辑添加 GoodsService service=new GoodsService(); int rows= service.insert(goods); System.out.println("操作完成"+rows);