JDBC
JDBC(Java Data Base Connectivity,java数据库连接)
JDBC需要连接驱动 驱动就是实现类
Java提供访问数据库规范称为JDBC,而生产厂商提供规范的实现类称为驱动。
应用程序就是我们自己写的类
JDBC开发步骤
- 注册驱动.
告知JVM使用的是哪一个数据库的驱动Connection获取
- 获得连接.
使用JDBC中的类,完成对MySQL数据库的连接
- 获得语句执行平台
通过连接对象获取对SQL语句的执行者对象
- 执行sql语句
使用执行者对象,向数据库执行SQL语句
获取到数据库的执行后的结果
- 处理结果
- 释放资源.
调用一堆close()方法
查询记录:select
为减少代码,可以封装成工具类
运用时如何导入工具包
增删改查只有查询的执行sql语句不同样
这是查询的语句,和上图对比
查询的时候需要返回返回值,所以简历一个ArrayList集合
并且用while循环查到每一个值
增
public static void main(String[] args) throws SQLException { add(); } //新增分类Sort public static void add() throws SQLException{ //1.获取连接对象 Connection conn=JDBCUtils.getConn(); //2.获取语句执行平台 String sql="insert into sort(sname) value(?)"; PreparedStatement pst=conn.prepareStatement(sql); //3.执行sql pst.setString(1, "打火机"); int row=pst.executeUpdate(); System.out.println(row); //4.释放资源 JDBCUtils.close(conn, pst); }
删
public static void main(String[] args) throws SQLException { shan(); } public static void shan() throws SQLException{ //1.获取连接对象 Connection shan=JDBCUtils.getConn(); //2.获取语句执行平台 String sc="delete from sort where sid=6"; PreparedStatement pst=shan.prepareStatement(sc); //3.执行sql int row=pst.executeUpdate(); System.out.println(row); //4.释放资源 JDBCUtils.close(shan, pst); }
改
public static void main(String[] args) throws SQLException { gai(); } public static void gai() throws SQLException{ //1.获取连接对象 Connection gai=JDBCUtils.getConn(); //2.获取语句执行平台 String ga="update sort set sname='修改口红' where sid=5"; PreparedStatement pst=gai.prepareStatement(ga); //3.执行sql int a=pst.executeUpdate(); System.out.println(a); //4.释放资源 JDBCUtils.close(gai, pst); }
查
public static void main(String[] args) throws SQLException { chan(); } public static void chan() throws SQLException{ Connection cha=JDBCUtils.getConn(); String sql="select * from sort"; PreparedStatement pst=cha.prepareStatement(sql); ResultSet a=pst.executeQuery(); ArrayList<Sort> arr=new ArrayList<Sort>(); while(a.next()){ Sort sort=new Sort(); sort.setSid(a.getInt("sid")); sort.setSname(a.getString("sname")); arr.add(sort); } System.out.println(arr); JDBCUtils.close(cha, pst); }
Sort是查询方式调用的另一个工具包
定义一个ArrayList命名为arr,用while循环调用next()方法循环a,在while循环方法体里定义一个名为sort(这是一个方法名)这不是工具包这个s是小写的s,调用小s里的sid方法,里面填写循环a获取到的int类型的sid,存进去。Sname同上。最后存入sort进ArrayList命名为arr的集合里。
注释:Connection cha=JDBCUtils.getConn();获取的是写好的工具包,减少大部分的代码