3.0JDBC学习——jdbc几种基本操作方式

JAVAWEB学习文章索引

首先说明的是不同数据库加载的驱动路径和url是不同的

这里暂时介绍mysql和sqlserver

数据库驱动路径url写法
mysqlcom.mysql.jdbc.Driverjdbc:mysql://localhost:3306/dbname
sqlservercom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://localhost:1433;DataBaseName=dbname
   
   

Statement:

例子:用Statement方式查询mysql数据库

1.获取数据库连接对象

import java.sql.*;

public class DBUtils {
	
	private static String url = "jdbc:mysql://localhost:3306/javabeantest";
	private static String name = "root";
	private static String password = "123456";
	private static Connection conn = null;
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");	
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	public static Connection getConnection() {
		try {
			conn = DriverManager.getConnection(url,name,password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
}

2.进行查询

package com.jdbc;
import java.sql.*;
import com.dbhelp.DBUtils;
public class StatementTest {
	public static void main(String[] args) {
		Connection conn = DBUtils.getConnection();
		try {
			Statement sttm = conn.createStatement();
			ResultSet rs = sttm.executeQuery("select * from person");
			while(rs.next()) {
				System.out.println(rs.getObject(1)+".."+rs.getObject(2)+".."+rs.getObject(3));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

3进行插入

public static int insert() {
		int r = 0;
		String sql = "insert into person(id,name,age) values(4,'李明',22)";
		Connection conn = DBUtils.getConnection();
		try {
			r = conn.createStatement().executeUpdate(sql);
			System.out.println(r);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return r;
	}

4进行修改

public static int update() {
		int r = 0;
		String sql = "update person set age=18 where id = 4";
		Connection conn = DBUtils.getConnection();
		try {
			r = conn.createStatement().executeUpdate(sql);
			System.out.println(r);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

5进行删除

public static int delete() {
		int r = 0;
		String sql = "delete from person where id = 4";
		Connection conn = DBUtils.getConnection();
		try {
			r = conn.createStatement().executeUpdate(sql);
			System.out.println(r);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return r;
	}

使用PreparedStatement

查询:

public static void sellectAll() {
		Connection conn = DBUtils.getConnection();
		String sql = "select * from person";
		try {
			ResultSet rs = conn.prepareStatement(sql).executeQuery();
			while(rs.next()) {
				System.out.println(rs.getObject(1)+".."+rs.getObject(2)+".."+rs.getObject(3));
			}
			rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

插入:

public static int insert() {
		int r = 0;
		String sql = "insert into person(id,name,age) values(?,?,?)";
		Connection conn = DBUtils.getConnection();
		try {
			PreparedStatement ppst = conn.prepareStatement(sql);
			ppst.setInt(1, 4);
			ppst.setString(2, "李明");
			ppst.setInt(3, 22);
			r = ppst.executeUpdate();
			System.out.println(r);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return r;
	}

更新:

public static int update() {
		int r = 0;
		String sql = "update person set age=? where id = ?";
		Connection conn = DBUtils.getConnection();
		try {
			PreparedStatement ppst = conn.prepareStatement(sql);
			ppst.setInt(1, 18);
			ppst.setInt(2, 4);
			r = ppst.executeUpdate();
			System.out.println(r);
			ppst.close();
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return r;
	}

删除:

public static int delete() {
		int r = 0;
		String sql = "delete from person where id = 4";
		Connection conn = DBUtils.getConnection();
		try {
			PreparedStatement ppst = conn.prepareStatement(sql);
			r = ppst.executeUpdate();
			System.out.println(r);
			ppst.close();
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return r;
	}

CallableStatement:

首先创建一个存储过程

delimiter//
	create procedure coun(out s int)
		begin
		select count(*) into s from person;
		end//
delimiter;

例子:

public static void main(String[] args) {
	
		CallableStatement cstmt = null;
		Connection conn = DBUtils.getConnection();
		String sql = "call coun(?)";
		try {
			//使用conn来创建一个CallableStatement对象
			cstmt = conn.prepareCall(sql);
			//注册第1个参数为int类型
			cstmt.registerOutParameter(1, Types.INTEGER);
			//执行语句
			cstmt.execute();
			System.out.println("结果为:"+cstmt.getInt(1));
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值