java数据库连接

  1. 驱动处理,导入驱动jar包,注册
    //注册到java数据库驱动管理器,在加载过程
    Class.forName("com.mysql.jdbc.Driver");

     

  2. 获取数据连接
    String connstr="jdbc:mysql://127.0.0.1:3306/phone
            ?user=root&password=root&useUnicode=true&characterEncoding=utf-8";
    Connection conn=DriverManager.getConnection(connstr, "root", "123456");

     

  3. 创建命令对象
    //第一套
    //执行sql语句对象
    Statement st=conn.createStatement();
    
    st.addBatch(sql1);  
    st.addBatch(sql2); 
    st.addBatch(sql3); 
    int a[]=st.executeBatch();
    
    //第二套
    //预处理命令(先设置sql语句,在设置参数,在执行)
    //好处:避免sql字符串拼接,批量设置?值,将(blob等)特殊类型进行赋值
    PreparedStatement st=conn.prepareStatement("insert into  category(cat_name) value(?) ");
    st.setString(1, "my");
    st.executeUpdate();
    
    处理过程、函数:
    //数据库命令(处理数据库过程),能赋值参数,能获取out类型参数
    CallableStatement st=conn.prepareCall("call aa(?,?)");
    //aa(myid int , out myname varchar(64) )  过程参数
    st.setInt(1, 3);  //设置第一个参数为3,第二个参数不能设置(out)
    ResultSet rs=st.executeQuery();   //返回结果集,通过select
    while(rs.next())
        System.out.println(rs.getString(2)); 
    System.out.println(st.getString(2)); //获取参数 返回值  通过out指定-必须赋值
    rs.close();

     

  4. 执行查询
    ResultSet rs = st.executeQuery(sql);   //查询,得到结果集对象,游标方式读取
    int mark = st.executeUpdate(sql);    //增删改,得到修改变化的行数mark

     

  5. 处理结果
     	ResultSet rs = st.executeQuery("select * from goods");
    		while(rs.next()) {
    //		System.out.println(rs.getString(2));
    		    System.out.println(rs.getString("goods_name")+"  "+rs.getInt(3));
    		}
    rs.absolute(1); //移动游标到指定行
    		rs.close();

     

  6. mate数据
    //获取表结构  结果集结构(列名、表名、列数量、列类型,...)
    tatement st=conn.createStatement();			
    ResultSet rs = st.executeQuery("select * from category");
    ResultSetMetaData mate = rs.getMetaData();
    	for(int i=1;i<=mate.getColumnCount();i++) {
    		System.out.println(mate.getColumnLabel(i));
    	}
    rs.close();
    
    //数据库结构
    DatabaseMetaData m = conn.getMetaData();

     

  7. 系统变量
    @@autocommit  	//设置数据库自动事务
    set @@autocommit=1;
    
    @@identity		//最后一次新增的自动编号id       
    select  @@identity  //获取最后一次新增的自动编号id

     

  8. 数据库事务 :可优化增删改新能
    conn.setAutoCommit(false);     //更改提交方式
    try{
       ...                         //添加多条sql语句,可能出错
      conn.commit();             //无异常提交
    }catch(Exception e){
          conn.rollback();         //出现异常回滚
    }
    conn.setAutoCommit(true);      //还原设置

     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值