-
#1.create db create database imooc_db default character set utf8 collate utf8_general_ci; #2.create table account_info and trans_info create table account_info ( id int not null primary key auto_increment, account varchar(20) not null, amount double(18,2) not null default 0, create_at datetime not null default Now() ); create table dtrans_info ( id int not null primary key auto_increment, source_id int not null, source_account varchar(20) not null, destination_id int not null, destination_account varchar(20) not null, amount double(18,2) not null default 0, create_at datetime not null default now() ); #3.init date insert into account_info (account,amount) values ('market',0); insert into account_info (account,amount) values ('a',250);查看全部
-
1. Statement、PreparedStatement和CallableStatement都是接口(interface)。 2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自PreparedStatement。 3. Statement接口提供了执行语句和获取结果的基本方法; PreparedStatement接口添加了处理 IN 参数的方法; CallableStatement接口添加了处理 OUT 参数的方法。 4. a. Statement: 普通的不带参的查询SQL;支持批量更新,批量删除; b. PreparedStatement: 可变参数的SQL,编译一次,执行多次,效率高; 安全性好,有效防止Sql注入等问题; 支持批量更新,批量删除; c. CallableStatement: 继承自PreparedStatement,支持带参数的SQL操作; 支持调用存储过程,提供了对输出和输入/输出参数(INOUT)的支持; Statement每次执行sql语句,数据库都要执行sql语句的编译 ,最好用于仅执行一次查询并返回结果的情形时,效率高于PreparedStatement。 PreparedStatement是预编译的,使用PreparedStatement有几个好处 1. 在执行可变参数的一条SQL时,PreparedStatement比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率要高。 2. 安全性好,有效防止Sql注入等问题。 3. 对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch; 4. 代码的可读性和可维护性。查看全部
-
jdbc的事务管理
事务的特点
原子性:事务是一个完整的操作
一致性:当事务完成时,事务必须处于一致状态
隔离性:对数据的=进行修改的所有并发事务都是彼此隔离的,类似于java中的同步原理。
永久性:事务完成之后,对数据库的修改永久保持,一次性交易,概不退换。
查看全部 -
@JDBC---数据库连接池之dbcp
1.导入相关dbcp的jar包
commons-dpcp2-2.1.1.jar
commons-pool2-2.4.2.jar
commons-logging-1.2.jar2.在项目根目录下添加配置文件dbcp.properties
主要配置信息driverClassName="com.mysql.jdnc.Driver" url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8" username="root" password="root"
3.实现dbcp连接池
public class DBCPUtil{ //数据源,static private static DataSource DS; //配置文件位置 private static final String configFile = "/dbcp.properties"; //默认构造函数 public DBCPUtil(){ initDbcp(); } //初始化DS private static void initDbcp(){ Properties pops = new Properties(); try{ //以流形式读取配置文件 props.load(Object.class.getResourceAsStream(configFile)); //创建数据源 DS = BasicDataSourceFactory.createDataSource(pops); }catch(Exception e){ e.printStackTrace(); } } //连接数据库 public Connection getConn(){ Connection con=null; if(DS!=null){ try{ //获取连接 con=DS.getConnection(); }catch(Exception e){ e.printStackTrace(System.err); } try{ //设置成手动提交事务 con.setAutoCommit(false); }catch(SQLException e){ e.printStackTrace(System.err); } } return con; } }
查看全部 -
String a = null;的意思是让代码出错,导致数据写入不完整。如果没有进行事务处理,则会导致数据丢失或异常,如果进行了事务处理,则会对执行的操作进行回滚(还原撤销读写操作)。
事务处理的步骤:
一、关闭自动提交:conn.setAutoCommit(false);
二、手动提交事务:conn.commit();
三、进行事务回滚:conn.rollback;//放置在try-catch语句中查看全部 -
调用含OUT参数的存储过程 1.获取连接器Connection对象 2.根据Connection对象使用prepareCall("Call 过程名")获得CallsableStatement对象 3.如果该过程有OUT参数,使用registerOutParameter(位置,类型),指定哪个占位符是OUT类型,并标明它的类型 4.execute()方法执行 5.调用getXXX()方法获得OUT参数查看全部
-
JDBC之“对岸的女孩走过来”——MyBatis简介 III 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
JDBC之“对岸的女孩走过来”——通过代码实现事务管理 Ps:两个注意地方:1、把事务自动提交关闭;2、catch(){...}(自动回滚:rollback();)。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
JDBC之“对岸的女孩走过来”——事务的概念和特点 一、概念: Ps1:事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作。 Ps2:这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。 二、特点: Ps1:原子性:比如化学原子是最小不可分割的,事务同理。 Ps2:隔离性:比如A操作:+100¥;B操作(同时):+100¥;则A执行时,B等待... 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
课程大纲: 1.jdbc常用接口 api及存储过程的调用 2.jdbc的事务管理 3.jdbc连接池 dbcp c3p0 4.jdbc升级版 hibernate mybitas查看全部
-
dbcp和c3p0的相同点查看全部
-
jdbc调用带参存储过程查看全部
-
我的钱怎么能少了呢, 666666查看全部
-
好。查看全部
-
JDBC对事物管理的支持
1、我们通过提交commit()或是回退rollback()来管理事务的操作
2、事务操作默认是自动提交
3、可以通过调用setAutoCommit(false)来禁止自动提交
查看全部
举报
0/150
提交
取消