mysql数据库字段的默认值设定注意事项

切记:设置完某个字段的默认值后,一定要设置该字段为not null。

只有当mysql,进行not null设置后,设置的默认值才能查询出来。

 

没有设置默认值的时候效果:null=null+1   affected  rows:  0; 不报任何错误;但是数据库没有更新;

设置了字段为默认后查出来就是:0;不设置字段默认值

设置默认值,并 设置not null后:0=0+1  affected rows:1;

 

 

####Statement和PreparedStatement - PreparedStatement预编译的SQL执行对象 1. 可以避免SQL注入 因为在编译的时候已经把SQL的逻辑固定,不会因为替换进去的内容改变逻辑 2. 如果SQL中涉及变量 相比Statement的字符串拼接的方式,代码可读性提高,并且不容易出错。 3. 如果涉及批量执行多条SQL时 使用PreparedStatement执行效率较高 - 如果SQL中没有变量用Statement 有变量用PreparedStatement ###批量操作 - Statement批量操作: statement.addBatch(sql1); statement.addBatch(sql2); statement.addBatch(sql3); //执行批量操作 statement.executeBatch(); - PreparedStatement批量操作: statement = connection.prepareStatement(sql); for (int i = 0; i < 100; i++) { statement.setString(1, "name"+i); statement.setString(2, "admin"+i); //添加到批量操作 statement.addBatch(); if(i ==0){ //执行批量操作 statement.executeBatch(); //清空执行过的SQL statement.clearBatch(); } } ####事务 1. 开启和关闭自动提交 connection.setAutoCommit(false/true); 2. 提交事务 connection.commit(); 3. 回滚 connection.rollback(); - 实现转账: 超人 500 蝙蝠侠 5000 蝙蝠侠给超人转2000 执行第一次成功 执行第二次成功 执行第三次失败 提示余额不足 并且回滚 create table jdbc_person(id int,name varchar(10),money int); insert into jdbc_person values(1,'超人',500),(2,'蝙蝠侠',5000); - 代码参见Demo08.java ###获取自增主键的值 create table team(id int primary key auto_increment,name varchar(10)); create table player(id int primary key auto_increment,name varchar(10),tid int); - 代码参见 Demo09.java ###元数据 - 元数据指 数据库和表的相关信息 - 代码参见 Demo10.java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值