对数据库jdbc学习的总结
2021/12/17 19:56:33
本文主要是介绍对数据库jdbc学习的总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
初识jdbc中的内容
连接到数据库当中,第一步,然后自己书写增删改的操作以及查询
public void update(String sql, Object... args) { //1.获取数据库连接 Connection conn = null; PreparedStatement ps = null; try { conn = jdbcUtils.getConnection(); //2.预编译sql语句,返回PreparedStatement实例 ps = conn.prepareStatement(sql); //3.填充占位符 for (int i = 0; i < args.length; i++) { ps.setObject(i + 1, args[i]); } //4.执行操作 ps.execute(); // 如果执行的是查询操作,有返回结果,则此方法返回true // 如果执行的是增删改操作,没有发挥结果,则此方法返回的是false } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { //5.资源关闭 jdbcUtils.closeRescource(conn, ps); }
以级查询操作
public <T> T getInstance(Class<T> clazz,String sql,Object...args){ Connection conn= null; PreparedStatement ps = null; try { conn = jdbcUtils.getConnection(); // 预编译sql语句 ps = conn.prepareStatement(sql); // 填充占位符 for (int i = 0; i < args.length; i++) { ps.setObject(i+1,args[i]); } //4.执行操作 ResultSet rs = ps.executeQuery(); // 获取结果集的元数据: ResultSetMetaData ResultSetMetaData rsmd = rs.getMetaData(); // 通过 ResultSetMetaData来获取结果集中列数 int columnCount = rsmd.getColumnCount(); if(rs.next()){ T t = clazz.newInstance(); for (int i = 0; i < columnCount; i++) { // 获取每一列的列值 Object columnvalue = rs.getObject(i + 1); // 获取每个列的列名 String columnName = rsmd.getColumnName(i+1); // 给cust对象指定的columnName属性,赋值为columnValue,通过反射 Field field = clazz.getDeclaredField(columnName); field.setAccessible(true); field.set(t,columnvalue); } return t; } } catch (Exception e) { e.printStackTrace(); } finally { // 资源关闭 jdbcUtils.closeRescource(conn,ps); } return null; }
在学习完查询完,询问过别人,有没有必要去学东西源码,针对不同的方面去学习jdbc,但是我已经学完了,算了,就继续往下走吧。
学习完Dao类以及具体实现类之后,就去学习了数据库连接池,C3p0 Druid,等数据库连接池,数据库使用的jar包,等下上传到百度云盘,有兴趣的可以下载自己去玩。
举一个Druid的例子
public void getConnection() throws SQLException { DruidDataSource source=new DruidDataSource(); source.setDriverClassName("com.mysql.cj.jdbc.Driver"); source.setUrl("jdbc:mysql://localhost:3306/test"); source.setUsername("root"); source.setPassword("password"); DruidPooledConnection conn = source.getConnection(); System.out.println(conn); }
当然也可以去封装一个,然后再来使用。
最后使用apche封装的方法,再来进行使用,真实便捷,但是没关系,我以及学完了,源码学了,其他的也学了。
以后每天尽量都更新一下jdbc,大家都可以来支出错误。
这篇关于对数据库jdbc学习的总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding