目录
5、PreparedStatement和Statement的区别
1、是什么:JDBC即Java-DataBase-Connectivity,相当于桥梁的作作用,使用流读写数据库,JDBC是Java平台提供的一套统一的执行规范/标准(接口)。 作用:1.负责产生和数据库连接 2.发送SQL指令 ;3.处理响应信息,4.事务的处理
2、JDBC创建连接的步骤:
1.导包,导入jar包mysql-connector-java.jar
2.加载驱动类
3.获取连接, Connection conn = DriverManager.getConnection(url,user,password);
4.创建状态参数,Statement stat = conn.createStatement();
5.执行数据库操作,读executeQuery(sql);写 executeUpdate(sql);
6.关闭连接, close();
3、加载驱动的多种方式 :
1.通过反射加载
Class.forName("类全名");
2.通过DriverManager静态方法注册驱动
DriverManager.registerDriver(new Driver());
3.直接创建驱动对象
new Driver();
4.通过System类中设置属性值来加载
System.setProperty("jdbc.driver","com.mysql.cj.jdbc.Driver");
4、JDBC操作事务
JDBC默认事务是开启的,默认自动提交事务,但可设置手动提交事务,connection.setAutoCommit(); 默认true表示自动提交,false表示手动提交。可以设置事务的隔离级别,connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
事务提交和回滚:conn.commit();conn.rollback();
5、PreparedStatement和Statement的区别:
Statement:普通的状态,创建时不需要SQL,此时没有执行;执行sql语句并返回它所生成结果的对象;
PreparedStatement:是预处理状态参数,创建时就需要预先加载SQL语句,此时没有执行,但底层预先处理SQL需要查询的结果,用?代替数据类型和值,在数据库中第一个问好的位置为1,第二个问号的位置为2以此类推。
PreparedStatement statement =connection.prepareStatement(sql);
ResultSet result=statement.executeQuery();
PreparedStatement的优势:1.增强SQL可读性和代码可维护性 2.可以参数动态化 3.安全性好,防止SQL注入 4.多次需要执行的操作,执行性能更高。