Java整理4

1、JDBC使用步骤

(1)注册驱动
(2)获取连接
(3)创建发送sql语句对象
(4)发送sql语句并获取返回结果
(5)结果集解析
(6)资源关闭
eg:
(1)DriverManager.registerDriver(new Driver);
(2)DriverManager.getConnection(url,user,password)
	url格式:
		jdbc:数据库厂商名://ip地址:Port/数据库名
	Connection conn="jdbc:mysql://127.0.0.1:3306/atxxx";
(3)Statement sta=Connection.CreateStatement();
(4)String sql="sql语句"
	ResultSet resultset=sta.exqcuteQuery(sql);
(5)While(resultset.next()){
		resultSet.getInt("id').Variable  然后回车,快捷方式需要先安装tabnine插件
		=》
		int id=resultSetgetInt("id");
	}
(6)有内到外逐个关闭
	resultset.close();
	statement.close();
	connection.close();

2、SQL分类

DDL:容器创建、修改、删除
DML:插入、删除、修改
DQL:查询
DCL:权限控制
TPL:事务控制语句

3、Statement与PreparedStatement的区别

Statement:
	Statement sta=Connection.createStatement();
	String sql="          ";
	ResultSets resultset=sta.executeQuery(sql);
PreparedStatement:
	String sql="    ?      ";     ? 占位符
	PreparedStatement presta=Connection.createStatement(sql);
	presta.setObject(1,"aaa");    占位符赋值
	ResultSets resultset=presta.executeQuery();
PreparedStatement通过占位符能够有效消除sql注入的问题,提高数据与系统的安全。

4、MetaData

@Test  测试方法  需要添加 junit的测试包
 metaData:当前结果集列的信息对象,可以根据下标获取列的名称也可以获取列的数量。
 ResultSetMetaData  metadata=resultSet.getMetaData();
 int column_count=metadata.getColumnCount();
 for(int i=1;i<=column_count;i++){
	Object value=resultSet.getObject(i);
	String columnlable=metaData.getColumnLable(i);
	map.put(columnlable,value);
}
list.add(map)
Map map=new HashMap();
List<Map> list=new ArrayList<>();

getColumnLable与getColumnName的区别
	getColumnLable:可以根据下标获取对应列的名称或者别名
	getColumnName:只会获取列的名称

5、主键回显

创建Statement时告诉数据库自己需要主键的信息
PreparedStatement presta=Connection.preparedStatement(sql,Statement.RETURN_GENERATED_KEYS);
获取主键
ResultSet resultset=presta。getGenerateKeys();   一行一列的结果集
resultset.next();
int id = resultset.getInt(1);

6、批量插入

路径后面追加"?rewriteBatchedStatements=true",并且sql中value()改为values(),sql语句后不能添加“,”作为结束符,Statement.executeUpdate()改为Statement.addBatch(),全部执行完以后执行statement.executeBatch();
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值