浅谈JDBC

大家都知道,JDBC全称Java Data Base Connectivity,数据库连接,是一套Java连接数据库行业标准的API,能与关系型数据库建立联系,并执行相关操作,现流行的主流数据库如:Oracle,SqlServer,Mysql等等,都支持Sun的JDBC接口。作为一名学生,我用的最多的还是开源的Mysql,这里我就用Mysql为例谈谈JDBC。

JDBC的API主要的java.sql和javax.sql这两个包内,其中前者是JDBC的核心API,属于J2SE部分,后者是拓展的API,属于J2EE部分。

首先谈一下一般连接数据库的步骤:

1:加载JDBC驱动程序,并获取连接。加载之前,需要导入mysql-connector-java-5.1.18-bin.jar的jar包。在我的程序中连接是在getConnection函数中,Class.forName加载驱动,加载时,驱动会自动向DriveManager完成注册,紧接着就是试图建立到给定数据库 URL 的连接,其实在这里加载驱动的Class.forName可以省略掉。JDBC URL的语法格式:jdbc:<protocol>//<databasename>,其中protocol是数据库连接协议,databasename是数据库连接地址,若建立好连接,返回信息存储在Connection对象中。

2:通过Connection连接对象创建Statement(PreparedStatement)对象,再通过Statement对象执行相关的数据库操作。操作数据库sql语句一般会有两种情况,一种是执行影响到数据库的记录,如insert,delete,update(数据库称这种为DML语句),即影响到数据库记录并执行数据库无返回的sql语句,一般用executeUpdate执行,另一种是

  1. 执行查询返回ResultSet对象的,一般是静态的select语句。

    1. 附上一个demo供大家学习。
    2. 在这个例子中,有insert插入函数,delete删除函数和query查询函数,每个函数执行前都要连接数据库,即getConnection函数,在mysql里面已经有一个名为crud的数据库,里面有张student的数据表,属性已经写好并已写入id为2,3的两行;
  2.  
    连接好数据库后,根据不同的sql语句执行Statement对象,每次执行完一次操作之后关闭连接,



import java.sql.*;

public class JDBC {
	static Connection con=null;
	static Statement stmt=null;
	public static void main(String args[])
	{
		insert();
		delete();
		query();
	}
	public static void query()
	{
		con=getconnection();
		try{
			String sql = "select * from student";
			stmt = (Statement)con.createStatement();//创建操作SQL 的语句对象
			ResultSet rs =stmt.executeQuery(sql);
			while(rs.next())
			{
				String id=rs.getString("id");
				String name=rs.getString("name");
				String classes=rs.getString("classes");
				String score=rs.getString("score");
				System.out.println(id+","+name+","+classes+","+score);
			}
		}catch(SQLException e)
		{
			System.out.println("查询失败");
		}
	}
	public static Connection getconnection()
	{
		try{
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/crud", "root", "admin");
		}
		catch(Exception e){
			System.out.print("数据库连接失败:"+e.getMessage());
		}
		return con;
	}
	public static void insert()
	{
		con=getconnection();
		try{
			String sql1 = "INSERT INTO student(id, name,classes,score) VALUES ('1','李四', '三年级', '100')";
			stmt = (Statement)con.createStatement();//创建执行SQL语句的Statement对象
			stmt.executeUpdate(sql1);
			con.close();
			
		}catch(SQLException e)
		{
			System.out.println("插入数据失败"+e.getMessage());
		}
		
	}
	public static void delete()
	{
		con=getconnection();
		try{
			String sql="delete from student where id='1'";
			stmt = (Statement)con.createStatement();
			stmt.executeUpdate(sql);
			con.close();
		}
		catch(SQLException e){
			System.out.println("删除数据出错"+e.getMessage());
		}
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值