第一题:使用PreparedStament对MySql的CRUD操作。 CREATE TABLE `edu_user` ( `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名', `user_age` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '用户年龄', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'; public class DataDemo { public static void main(String[] args) throws Exception { DB db = new DB(); db.InsertData(); db.DeleteData(); db.UpdateData(); db.SelectData(); } } import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DB { private Connection conn; public DB(){ try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/edu_index"; String username = "root"; String password = "jiangmin"; this.conn = DriverManager.getConnection(url, username, password); }catch(Exception e){ e.printStackTrace(); } } public void InsertData() throws Exception{ String sql = "insert into edu_user(user_id,user_name,user_age) values(?,?,?)" ; PreparedStatement ppst = conn.prepareStatement(sql); ppst.setInt(1, 1); ppst.setString(2, "tomas"); ppst.setInt(3, 10); ppst.execute(); } public void DeleteData() throws Exception{ String sql= "delete from edu_user where user_id = ?" ; PreparedStatement ppst = conn.prepareStatement(sql); ppst.setInt(1, 1); ppst.execute(); } public void UpdateData() throws Exception{ String sql= "update edu_user set user_age = ?,user_name = ? where user_id = ?" ; PreparedStatement ppst = conn.prepareStatement(sql); ppst.setInt(1, 100); ppst.setString(2, "aron"); ppst.setInt(3, 1); ppst.execute(); } public void SelectData() throws Exception{ String sql= "select user_id,user_name,user_age from edu_user where user_id = ?" ; PreparedStatement ppst = conn.prepareStatement(sql); ppst.setInt(1, 1); ppst.execute(); ResultSet rs = ppst.getResultSet(); while(rs.next()){ String user_id = rs.getString("user_id"); String user_name = rs.getString("user_name"); String user_age = rs.getString("user_age"); System.out.println("user_id = " + user_id + ",user_name = " + user_name + ",user_age = " + user_age); } } } 第三题:事务特点,ACID特点 1、原子性(atomicity):事务在执行时,要做到"要么不做,要么全做!",不允许事务部分执行。 2、一致性(consistency):在事务执行前后,数据库要一致,要么都变,要么都不变。 3、隔离性(isolation):事务并发执行,各个事务独立执行,一个事务的处理对另外一个事务的处理没有影响。 4、持久性(durability):一个成功执行的事务对数据库的作用是持久的,即使数据库出现故障,也应该能够恢复。 第四题: set autocommit = 0; 设置当前session会话不自动提交事务,只有执行commit或rollback才提交事务。如果set autocommit = 1;那么每一个update、insert、delete语句都是一个事务的操作。 start transaction; update edu_user set user_name = "daye" where user_id = 1; commit; rollback; 查询隔离级别 select @@session.tx_isolation; select @@global.tx_isolation; 设置隔离级别 set session transaction isolation level read uncommitted; set session transaction isolation level read committed; set session transaction isolation level repeatable read; set session transaction isolation level serializable; 1、脏读:读未提交内容;READ-UNCOMMITTED 2、不可重复读,读提交内容;READ-COMMITTED A设置read committed,start transaction; B start transaction; update edu_user set user_name = 'jiangmin' where user_id = 1; A 查询记录,是旧数据 B 提交事务,commit A 查询记录,是新数据,user_name 是jiangmin的值。 两次查询的结果不一致,不可重复读的结果。 4、可重复读; REPEATABLE-READ 8、串行化; SERIALIZABLE
大数据Java基础第二十一天作业
原创
©著作权归作者所有:来自51CTO博客作者森林敏的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:我的友情链接
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
第二十七节 搭建大数据平台CDH6.3.2
CDH集群6.3.2版本安装
centos cloudera mysql -
第二十节 Dockerfile的容器编排
dockerfile实例练习
nginx hadoop docker