Jdbc是一种Java连接数据库技术(Java database connectity), 它是 Java 提供的一些接口,这些接口大部分是数据库厂商提供的(jar包),我们要做的,是连接数据库以后,如何使用Java代码从数据库中存取数据!
jdbc连接MySQL
步骤:
第一步,加载驱动程序
第二步,获取连接对象connection
第三步,利用连接对象获取sql语句执行对象
第四步,执行sql语句,处理结果集
第五步,关闭流,释放资源
1.加载驱动(我用的是mysql 8.0 + 。mysql 5.0+ 驱动程序Class.forName("com.mysql.jdbc.Driver");)
Class.forName("com.mysql.cj.jdbc.Driver");
2.获取连接(DriverManager在java.sql这个包里面,管理一组 JDBC 驱动程序的基本服务)
String url ="jdbc:mysql://127.0.0.1:3306/usertable?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false";
//url格式:jdbc:mysql://数据库所在IP地址:数据库端口/数据库的名字
String user="root";//连接数据库用户名
String password ="19950525";//密码
Connection con = DriverManager.getConnection(url, user, password);
3.获得执行sql语句的对象(PreparedStatement接口继承了Statement,
Statement(固定),和 PreparedStatement(可变参数) 是SQL语句的两种执行方式)
Statement sta = con.createStatement();//获取sql执行语句对象
//executeQuery执行查询操作,返回的是ResultSet结果集。
//executeUpdate执行增删改操作,返回的是int型,表明受影响的行数
ResultSet qu = sta.executeQuery("select * from user");
sta.executeUpdate("delete from user where id=1");
采用预编译PreparedStatement执行sql语句(预编译不能编译数据表名,字段名)
PreparedStatement prst = con.prepareStatement("delete from user where id=?");
prst.setObject(1, 1);//第一个参数表示在sql语句里第几个问号。第二个表示需要替换的值
ResultSet resultset = prst.executeQuery();
prst.executeUpdate();
4.处理结果集
while(resultset.next())
Object o = resultset.getObject(1);//获取第1列的参数,注意要和.next()方法连用
获取结果集的总列数以及字段名
ResultSetMetaData ramd =resultset.getMetaData();//获取数据表结构
int sum = rsmd.getColumnCount();//获取总列数
String name = rsmd.getColumnName(column);//获取第column列的字段名
5.关闭流,释放资源