JDBC连接数据库

1、Connection接口

   Connection接口代表特定的数据库的连接,在连接上下文中执行sql语句并返回结果。

2、Statement接口

     Statement接口用于在已经建立连接基础上向数据库发送sql语句。

3、PreparedStatement接口

     PreparedStatement接口用来动态的执行sql语句。

4、DriverManger类

    DriverManger类用来管理数据库中所有的驱动程序。

5、ResultSet接口

       ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。

通过jdbc连接数据库的操作如下:(需要jdbc包)

package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import jdbc1.School;

public class IDUS {
	public void insert(School school) throws Exception{
	
	Class.forName("com.mysql.jdbc.Driver");//加载驱动
	Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/jd?useUnicode=true&characterEncoding=utf-8","root","123456");
	//url包含了数据库的主机地址,数据库名称,以及一些额外参数信息
	//数据库用户名
	//jdbc协议:数据库子协议://数据库主机地址:数据库端口/数据库名称?
	System.out.println(connection);
	//向数据库中新增信息
	//创建预编译查询对象
	//创建预编译查询对象时在sql语句中使用?对数据进行占位
	PreparedStatement ps=connection.prepareStatement("insert into school(schoolname,address) values(?,?)");
	ps.setString(1,school.getName());
	ps.setString(2,school.getAddress());
	//通过查询对象执行sql语句
	//excute()excuteUpdate() excuteQueery()
	//excute()excuteUpdate() 可以执行增删改的sql语句
	//excute()执行之后返回一个boolean表示这次的sql执行的状态(成功或不成功)
	//excuteUpdate()执行之后返回的是一个整数表示的是这一次增删改操作影响了多少行数据
	//excuteQueery()执行查询的sql语句
	int rows=ps.executeUpdate();
	if(rows>0)
	{
		System.out.println("新增学校成功");
		
	}
	//关闭数据库资源
	ps.close();
	connection.close();
	}
	public void delete(String name) throws Exception{
		Class.forName("com.mysql.jdbc.Driver");//加载驱动
		Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/jd?useUnicode=true&characterEncoding=utf-8","root","123456");
		//创建预编译查询对象
		PreparedStatement ps=connection.prepareStatement("delete from school where schoolname=?");
		//给?参数赋值
		ps.setString(1, name);
		int rows=ps.executeUpdate();
		if(rows>0) {
			System.out.println("删除信息成功");
		}
		ps.close();
		connection.close();
	}
	//修改信息
	public void update(School school) throws Exception{
		Class.forName("com.mysql.jdbc.Driver");//加载驱动
		Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/jd?useUnicode=true&characterEncoding=utf-8","root","123456");
		//创建预编译查询对象
		PreparedStatement ps=connection.prepareStatement("update school set address=? where schoolname=?");
		ps.setString(1, school.getAddress());
		ps.setString(2, school.getName());
		int rows=ps.executeUpdate();
		if(rows>0)
		{
			System.out.println("更新学校信息成功");
		}
		ps.close();
		connection.close();
	}
	public List<School> select() throws Exception{
		Class.forName("com.mysql.jdbc.Driver");//加载驱动
		Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/jd?useUnicode=true&characterEncoding=utf-8","root","123456");
		//创建预编译查询对象
		PreparedStatement ps=connection.prepareStatement("select * from school");
		//执行查询结果,查询的结果保存在result中
		ResultSet rs=ps.executeQuery();
				List<School> list = new ArrayList<School>();
				//rs是个结果集包含查询出的数据
				//rs.Next()可以判断下一行是否有数据
				while(rs.next()) {
					//创建school对象
					School school=new School();
					//取出的列保存到对应的实体属性中
					school.setId(rs.getInt("schoolid"));
					school.setName(rs.getString("schoolname"));
					school.setAddress(rs.getString("address"));
					//将school对象保存到集合中
					list.add(school);
					
					
					
				}
		
		
		return list;
	}
	
}

下面程序是一个用户创建一个数据库连接的类:

public class BaseDao {
	
	public Connection openConnection() throws Exception{
		Class.forName("com.mysql.jdbc.Driver");
		Connection connection = DriverManager
				.getConnection(
						"jdbc:mysql://localhost/oasystem?useUnicode=true&characterEncoding=utf-8",
						"root", "123456");
		return connection;
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值