JDBC之数据库的增,删,改,查, 搜, 批量执行,获取表结构,获取某一用户下所有的表,滚轴操作的封装

/**
 * 
 */
package com.HUXU.action;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

/**
 * @author HU-XU
 *把数据库的增,删,改,查, 搜,
 *批量执行,获取表结构,获取某一用户下所有的表,滚轴操作的封装。
 */
public class JdbcDButil {
	
	//增
	public void insertDate(String name,String classes,int score) throws Exception{
		Connection cn=ToolDButil.getConnection();
		String sqlstr="INSERT stuinfo(name,classes,score)VALUES(?,?,?)";//增数据库
		PreparedStatement ps=cn.prepareStatement(sqlstr);
		ps.setString(1, "Tom");//增加
		ps.setString(2, "one");
		ps.setInt(3, 100);
		ps.executeUpdate();
		ToolDButil.free02(ps, cn);
		this.readDate();
	}
	
	//删
	public void deleDate() throws Exception{
		Connection cn=ToolDButil.getConnection();
		String sqlstr="DELETE FROM stuinfo WHERE score=?";//删除数据
		PreparedStatement ps=cn.prepareStatement(sqlstr);
		ps.setInt(1, 100);//删除
		ps.executeUpdate();
		ToolDButil.free02(ps, cn);
		this.readDate();
	}
	
	//改
	public void updateDate()throws Exception{
		Connection cn=ToolDButil.getConnection();
		String sqlstr="UPDATE stuinfo SET name=? WHERE score=?";//增数据库
		PreparedStatement ps=cn.prepareStatement(sqlstr);
		ps.setString(1, "Tom");//修改
		ps.setInt(2, 99);
		ps.executeUpdate();
		ToolDButil.free02(ps, cn);
		this.readDate();
	}
	

	//查
	public void readDate() throws Exception{
		Connection cn=ToolDButil.getConnection();
		Statement st=cn.createStatement();
		String sqlstr="SELECT * FROM stuinfo";//查数据库
		ResultSet rs=st.executeQuery(sqlstr);
		while(rs.next()){//遍历结果
			System.out.println(rs.getObject(1));
		}
		ToolDButil.free01(cn, st, rs);
	}
	
	//搜
	public void searchDate() throws Exception{
		Connection cn=ToolDButil.getConnection();
		String sqlstr="SELECT * FROM stuinfo WHERE name LIKE ?";//搜索数据
		PreparedStatement ps=cn.prepareStatement(sqlstr);
		ps.setString(1, "%T%");//搜索
		ResultSet rs=ps.executeQuery();
		while(rs.next()){//遍历结果
			System.out.println(rs.getObject(1));
		}
		ToolDButil.free02(ps, cn);
		this.readDate();
	}
	
	//批量执行
	public void batchDate()throws Exception{
		Connection cn=ToolDButil.getConnection();
		Statement st=cn.createStatement();
		String sqlstr="CREATE TABLE YWGAME (ID NUMBER PRIMARY KEY,GAMENAME VARCHAR2(50) NOT NULL)";
		st.addBatch(sqlstr);
		st.addBatch("INSERT INTO YWGAME VALUES(1,'热血传奇')");
		st.addBatch("INSERT INTO YWGAME VALUES(2,'梦幻西游')");
		st.executeBatch();
		ToolDButil.free01(cn, st, null);
	}
	
	//获取表结构
	public void structureDate()throws Exception{
		Connection cn=ToolDButil.getConnection();
		Statement st=cn.createStatement();
		String sqlstr="SELECT * FROM stuinfo";//查询的表
		ResultSet rs = st.executeQuery(sqlstr);
		ResultSetMetaData rsmd = rs.getMetaData(); //获取元数据
		int numberOfColumns = rsmd.getColumnCount();//列数
		for(int i=1;i<=numberOfColumns;i++){
			System.out.print(rsmd.getColumnName(i)+"\t");
		}
		while(rs.next()){
			System.out.println();
			for(int i=1;i<=numberOfColumns;i++){
				System.out.print(rs.getObject(i)+"\t");//getObject()能够智能匹配字段类型
			}
		}
		ToolDButil.free01(cn, st, null);
	}
	
	//获取某一用户下所有的表
	public void tablesDate()throws Exception{
		Connection cn=ToolDButil.getConnection();
		DatabaseMetaData dbm=cn.getMetaData();
		ResultSet rs=dbm.getTables(null,"SCOTT",null,new String[]{"TABLE","VIEW"});		
		
		ResultSetMetaData rsmd = rs.getMetaData(); //获取元数据
		int numberOfColumns = rsmd.getColumnCount();//列数
		for(int i=1;i<=numberOfColumns;i++){
			System.out.print(rsmd.getColumnName(i)+"\t");
		}
		while(rs.next()){
			System.out.println();
			for(int i=1;i<=numberOfColumns;i++){
				System.out.print(rs.getObject(i)+"\t");//getObject()能够智能匹配字段类型
			}
		}
		ToolDButil.free02(null, cn);
	}
	
	//滚轴的数据修改方式
	public void rollerDate()throws Exception{
		Connection cn=ToolDButil.getConnection();
		Statement st=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
		String sqlstr="SELECT name,classes,score FROM stuinfo";//表的字段名是否可以用一个数字代替如“1”?
		ResultSet rs=st.executeQuery(sqlstr);

		rs.absolute(3);//第三个
		System.out.println(rs.getObject(2));
		rs.last();//最后一行
		System.out.println(rs.getObject(2));
		rs.first();//第一个
		System.out.println(rs.getObject(2));
		rs.updateString("score", "99");//修改此行
		rs.updateRow();//已经修改了记录
		rs.next();//下一行
		rs.deleteRow();//删除行
		
		ToolDButil.free01(cn, st, rs);
	}
}

JDBC技术学习 https://www.itkc8.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值