JDBC这块相当重要,不仅JAVASE里面用到,JSP里面更是重中之重。所以把JDBC这一块单独整理出来。
1、连接数据库
通过JDBC连接数据库步骤
1、导包(驱动)mysql-connector-java-5.1.28-bin.jar放到项目下,然后右键点击Build Path
2、加载驱动 Class.forName("com.mysql.jdbc.Driver")
Class.forName()含义:加载参数指定的类,并且初始化它
3、参数
数据库地址:jdbc:mysql://127.0.0.1[localhost]:3306/数据库名
用户名:root
密码:root
4、Connection con = DriverManager.getConnection(数据库地址,用户名,密码);
ClassNotFoundException:
1、没有导jar包
2、驱动名字写错了
一字不差的记住com.mysql.jdbc.Driver!!!
SQLException:
1、mysql是否启动
2、url\账户\密码参数是否正确
3、URL:数据库名、ip地址、端口号是否正确
JDBC原理:
公用接口 协议标准 JDBC
各个数据库厂商遵循这个规范 实现这个接口 JDBC驱动
(
注意:将来项目中由于客户的数据库与我们开发中使用的不同,通常会把用户名、密码,数据库地址单独放在一个db.properties文件里,文件内容类似这样
driver=com.mysql.jdbc.Driver
userName=root
userPwd=root
url=jdbc:mysql://localhost:3306/bank?useUnicode=true&characterEncoding=UTF8
然后JAVA里面这么写
Properties pps =new Properties();
pps.load(id);
Class.forName(pps.getProperty("driver"));
DriverManager.getConnection(pps.getProperty("url"), pps.getProperty("userName"), pps.getProperty("userPwd"));
)
增删改
1、创建发送器:
通过Connection对象 创建Statement对象(发送器)
Statement st = con.createStatement();
2、通过Statement 的一个方法, executeUpdate(String sql)
如果在sql语句中要添加变量的话,应通过connection对象创建prepareStatement对象,代码如下
Double fee =100.00;
PreparedStatement ps = con.preparedStatement("update bank set money=?");//问号表示待添加字符
ps.setDouble(1, fee);//输入一个double型变量fee在第一个?位置。
ps.executeUpdate();
3、返回受影响行数,int 类型。
注意:sql后面不需要额外加分号,程序自动加。只能写一条,不可以写多条语句。
查
1、创建发送器 Statement st = con.createStatement();
2、通过Statement的executeQuery(String sql);
同样要在查询语句中添加变量,夜莺创建prepareStatement对象,代码如下
Double fee =100.00;
PreparedStatement ps = con.preparedStatement("select * from where money=?");
ps.setDouble(1, fee);
Resultset rs=ps.executeQuery;
3、返回结果集Resultset
解析ResultSet,提供了getXxxx()
getInt(1),getString("s_name"),getObject(1);
getInt(当前列数),getString("字段名称")
关闭资源
倒着关闭
JDBC操作数据库步骤:
1、导jar包
2、注册驱动
3、创建发送器
4、发送sql语句(执行)
5、处理执行结果
6、释放资源te
Statement类
int executeUpdate(String sql) 增删改、三剑客
ResultSet executeQuery(String sql) 查询
boolean execute(String sql) 全部sql
boolean 值指的是有没有结果集
执行查询有结果集则需要调用getResultSet()获取结果集
没有结果集则调用getUpdateCount()获取更新条数