请夏天吃饭
Java后端
·2022-02-13
jdbc 全称:Java DataBase Connectivity, 意思就是 java连接数据库用到的,用来操作不同数据库的。 jdbc 出现原因: 数据库可能有好多种,比如mysql,oracl,db2等数据库,java 需要操作不同数据库,需要不同的实现,就很乱,特别麻烦,不是很规范,为了解决这个问题,Java就开发了一种接口规范,让不同的数据库去实现,通过不同厂商的是实现产生很多实现类,java将这些类(jar包)导入就可以操作不同数据库。 jdbc编写入门:1.加载Driver 驱动 个人理解 (就是创建驱动实现类对象,调不同方法实现) 2.获取连接得到Connection 3.执行增删改查 -发送sql给mysql 执行sql语句返回结果 Statement 4.释放资源-关闭连接 (求解答 Java中什么样就算是一种资源链接,需要关闭,就是java去操作别的程序吗) ResultSet(结果集) sql查询语句返回结果 一行一行的形式返回 PreparedStatement 对sql语句预处理 ,防止sql注入(特殊手段(字符组合)破环数据库资源),是Statement子类,也是执行静态sql语句, 减少编译次数,效率高 (这里不懂) jdbc 事务(不懂先看 mysql 事务,资源) mysql事务默认是自动提交的 ,需要开启事务方法使用: 1.connect.setAutoCommit(false); 开启事务 2.connect.rollback(); 回滚 3.connect.commit(); 提交事务 批处理(将很多sql语句打包,一起发送到mysql 执行) 需求,我们向数据库添加数据inster 3000条数据,我们一条一条执行特别浪费网络资源,执行时间也长,这时候就需要批处理 使用方法: @Test public void noBath() throws Exception {    //JdbcUtils 这个是我自己封装的 ,无法导入其他资源包   Connection connection = JdbcUtils.getConnection();   PreparedStatement preparedStatement = connection.prepareStatement("insert into t_user (name) values (?)");   for (int i = 0; i < 5900; i ) {     preparedStatement.setString(1,"java" i);     //将很多sql语句存储起来     preparedStatement.addBatch();     if ((i 1)P0 == 0) {       //执行SQL语句       preparedStatement.executeBatch();       //清空batch       preparedStatement.clearBatch();     } ​   }   JdbcUtils.close(null,preparedStatement,connection); ​ ​ } 数据连接池: 出现原因:每次去连接connect 数据库时,直接去获取连接资源,比较慢,同时一个数据库同时支持1000个连接,Java同时2000个连接过去直接导致mysql数据库瘫痪,无法控制最大连接数,这时 连接池就出现了 比如c3p0 阿里 Druid连接池 连接池原例图:如何上传? 原理解释:就是连接池帮助我们创建好一定连接资源,我们直接从连接池拿取连接,用完再放回连接池,帮助我们管理数据库连接。 使用实现: @Test public void Druid() throws Exception {   //创建properties对象,读取配置文件   Properties properties = new Properties();   //这里加载的资源时druid配置好的连接规范   properties.load(new FileInputStream("src\\druid.properties"));   //创建一个指定数据源的连接池   DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);   //从连接池拿取资源   Connection connection = dataSource.getConnection();   System.out.println("连接成功");   //不是真正意义上关闭,而是放回连接池资源啊   connection.close(); } 有问题请大佬直接,评论留言,别误导星球小伙伴 ,相互分享,一起进步。。。。
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP