PreparedStatement实现CRUD操作

一个数据库连接就是Socket连接
CallableStatement用于存储过程,框架时候在学习


PreparedStatement是Statement的子接口,由于Statement接口弊端过多,PreparedStatement接口已经完全代替了Statement接口。 弊端: ①对于crud操作,往往需要改变子串内容,拼串过于繁琐
String sql = "SELECT user,password FROM user_table WHERE USER = '" + userName + "' AND PASSWORD = '" + password
				+ "'";

②由于sql语句是拼串后再处理,往往可以改变sql本身的含义,sql注入导致难以预料的后果
③对于批量插入,要经历多次访问数据库,过于繁琐,浪费资源
PreparedStatement只用一次预编译,以后访问数据库不用再次编译sql命令,节省资源;其次不用担心拼串和sql注入问题
首先获取连接,得到相应数据库厂商的Connection实现类对象。
+preparenStatement(sql:String) : PreparedStatement 预编译sql,数据类型可以使用占位符【?】

+setObject(int column,Object obj) :填充占位符

+execute():执行sql语句 true:查询操作;false:增、删、改操作

+executeUpdate():增,删,改操作,并返回影响到的行数

+executeQuery(): 返回一个ResultSet对象

对ResultSet对象的操作:

next():判断是否还用下一条记录,并返回bool值;如果有记录的话指针下移,初值指针再第一条记录之上
getObject(int col):返回当前记录的col列的字段值
getMetaData():返回ResultSetMetaData对象

元数据对象的操作:
getColumnName(int):元数据的指定列数的列名,从1开始
getColumnCount():返回列数
getColumnLabel(int):返回列别名,用来和java对象的成员变量形成映射关系,便于使用反射机制

总结:一般来说,导入jar包->导入java.sql包->将连接的url信息,用户名信息,密码信息,要加载的来自Driver的实现类信息写入配置文件中->使用输入流获取这四类信息->加载驱动【反射】->获取连接->获取PrepareStatement实现类->执行sql语句->填充占位符【可能没有】->其他相应操作

上一篇:Build a CRUD App with SQLAlchemy - Implementing Reads: The “R“ in CRUD


下一篇:Vue_10_Spa_项目4次-CRUD+表单验证