C2_jdbc
jdbc
少年西西
这个作者很懒,什么都没留下…
展开
-
jdbc中的行级锁(悲观锁)和乐观锁
1.行级锁(悲观锁)select ename, job, sal from emp where job = ‘Manager’ for update;在后面加了for update就产生了行级锁作用:将查询结果集在表中的对应的记录,开始锁住,在当前事务结束前,别的事务根本修改不了锁住的数据。2.乐观锁乐观锁会在数据后面添加一个隐藏的版本号,假设为version。只要事务读取到的版本号没有改变,事务就能对数据进行修改参考:https://blog.csdn.net/pipizhen_/art.转载 2020-12-20 21:37:13 · 334 阅读 · 0 评论 -
jdbc中考虑事务的通用增删改查
1.考虑到事务以后,实现的通用的增删改操作 // 通用的增删改操作---version 2.0 (考虑上事务) public int update(Connection conn,String sql, Object... args) {// sql中占位符的个数与可变形参的长度相同! PreparedStatement ps = null; try { // 1.预编译sql语句,返回PreparedStatement的实例原创 2020-12-20 17:50:13 · 150 阅读 · 0 评论 -
jdbc中PreparedStatment实现高效的批量插入
方式一:使用Statement实现 Connection conn = DBCUtils.getConnection(); Statement st = conn.createStatement(); for(int i = 1;i <= 20000;i++){ String sql = "insert into goods(name)values('name_" + i + "')"; st.execute(sql);}方式二:使用PreparedStatement/*原创 2020-12-20 16:41:00 · 495 阅读 · 0 评论 -
jdbc中PreparedStatment通用增删改查
1.DBUtilpackage loey.DBUtil;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.sql.*;import java.util.Properties;/** * JDBC工具类,简化JDBC编程 */public class DBUtil { /** * 工具类中的构造方法是私有的 * 因为工具类中的方法原创 2020-12-20 16:29:05 · 166 阅读 · 0 评论 -
jdbc中DBUtils提供的jar包(QueryRunner)实现CRUD操作
导入jar包:使用现成的jar中的QueryRunner测试增、删、改的操作://测试插入@Testpublic void testInsert() {Connection conn = null;try {QueryRunner runner = new QueryRunner();conn = JDBCUtils.getConnection3();String sql = “insert into customers(name,email,birth)values(?,?,?)”;i原创 2020-12-20 20:48:20 · 2114 阅读 · 2 评论 -
jdbc中的数据库连接池
1.传统连接的问题:2.如何解决传统开发中的数据库连接问题:使用数据库连接池3.使用数据库连接池的好处:或自己组织语言:1.提高程序的响应速度(减少了创建连接相应的时间)2.降低资源的消耗(可以重复使用已经提供好的连接)3.便于连接的管理4.实现的方式:...原创 2020-12-19 23:56:54 · 128 阅读 · 1 评论 -
jdbc中首次了解DAO及其子类
/*DAO: data(base) access object封装了针对于数据表的通用的操作*/public abstract class BaseDAO {private Class clazz = null;// public BaseDAO(){// // }{ //获取当前BaseDAO的子类继承的父类中的泛型 Type genericSuperclass = this.getClass().getGenericSuperclass(); Parameteri原创 2020-12-19 23:56:26 · 143 阅读 · 1 评论 -
JDBC中数据库的事务
1.事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。 > 一组逻辑操作单元:一个或多个DML操作。2.事务处理的原则:保证所事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。说明:1.数据一旦提交,就不可回滚*2.哪些操作会导致数据的自动提交? >DD原创 2020-12-19 23:55:44 · 125 阅读 · 1 评论 -
jdbc中PreparedStatement替换Statement实现CRUD与Blob类型的操作
1.PreparedStatement的理解:① PreparedStatement 是Statement的子接口② An object that represents a precompiled SQL statement.③ 可以解决Statement的sql注入问题,拼串问题package loey.java1;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatemen原创 2020-12-19 23:54:39 · 554 阅读 · 1 评论 -
jdbc中Statement接口实现CRUD操作(了解)
package loey.java1;import java.sql.*;import java.util.HashMap;import java.util.Map;import java.util.Scanner;/**实现功能:1、需求 模拟用户登录功能的实现2、业务描述 程序运行的时候,提供一个输入的入口,可以让用户输入用户名和密码 用户输入用户名和密码之后,提交信息,java程序收集用户信息 java程序连接数据库验证用户名和密码是否效原创 2020-12-19 23:53:17 · 191 阅读 · 1 评论 -
jdbc执行DQL(select)编程及遍历举例
遍历结果集:【总结】两种思想:面向接口编程的思想ORM编程思想:(object relational mapping)一个数据表对应一个java类表中的一条记录对应java类的一个对象表中的一个字段对应java类的一个属性两种技术:1.使用结果集的元数据:ResultSetMetaDatagetColumnCount():获取列数getColumnLabel():获取列的别名说明:如果sql中没给字段其别名,getColumnLabel()获取的就是列名反射的使用(①创建原创 2020-12-19 23:51:43 · 238 阅读 · 1 评论 -
jdbc执行DML(insert、update、delete)编程举例
aaa原创 2020-12-19 23:50:50 · 484 阅读 · 1 评论 -
jdbc的概念
1、JDBC是什么?Java DataBase Connectivity(Java语言连接数据库)2、JDBC的本质是什么JDBC是SUN公司制定的一套接口(interface)java.sql.*; (这个软件包下有很多接口。)接口都有调用者和实现者。面向接口调用、面向接口写实现类,这都属于面向接口编程。为什么要面向接口编程?解耦合:降低程序的耦合度,提高程序的扩展力。多态机制就是非常典型的:面向抽象编程。(不要面向具体编程)建议:Animal a = new Cat();Ani原创 2020-12-19 23:49:56 · 415 阅读 · 1 评论