数据库驱动包
Java提出的一套关于数据库操作的接口
各个数据库厂商要把自己的api对接到/适配到jdbc上
程序员只需要掌握一套api就可以操作不同的数据库了
数据库厂商提供的这个原生api适配到jdbc转换程序,称为“数据库驱动包”
1)创建数据源
//1,创建数据源
DataSource dataSource=new MysqlDataSource();
2)设置url
//设置url
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/ceshi?characterEncoding=utf8&useSSL=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("Guo20050521");
如果一切顺利,连接建立成功,此时就能够得到Connection对象
在getConnection很可能失败的(服务器没有接受连接)
失败的原因
原因有很多种,包括不限于:
1)数据库服务器没有正确启动
2)url写错了
3)用户名写错了
4)密码写错了
5)网络断开了(网线掉了)
利用数据库建立连接
//2,利用数据库建立连接
Connection connection=dataSource.getConnection();
字符串结构的sql,往往还需要构造一个“语句对象”,一个字符串sql发送到数据库服务器上,是要先对sql进行解析,进行各种校验(判断sql是否符合语法要求等)才能执行
insert,updata,delete统一都是executeUpdate,select是executQuery
执行这个方法,就会在内部,给数据库服务器发送请求,请求中就是包含了解析后的sql,等待数据库执行sql,过一会数据库执行完sql之后返回响应。
这个方法再获取到响应,并且把数据库返回的结果通过,返回值体现出来
//3,能够构造一个操作数据库的sql语句
System.out.println("请输入id");
int id=scanner.nextInt();
System.out.println("请输入姓名");
String name=scanner.next();
String sql="insert into test values("+ id + ",'"+name+"')";
//对象的形式内部会对sql进行校验
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4,执行sql,把刚才解析好的语句发给数据库服务器了
//返回值是一个int类型,表示这个操作影响了几行数据
int n=preparedStatement.executeUpdate();
//5,执行完毕,有收起操作,释放前面创建的各种资源
//主要是释放语句对象和连接对象.DataSourse是不必释放的
System.out.println("n = "+n);
preparedStatement.close();
connection.close();
进行资源释放
总结:
DataSource 数据源 (设置url,设置user,设置password,创造连接)
Connection 连接(prepareStatement创建语句对象)
PrepareStatement 语句对象(executeUpdate,executeQuery)