发表于: 2018-04-06 22:07:07
1 699
今日完成:
1.jdbc数据库操作语句学习
* 对数据库进行操作
* 1.适应connection对象创建Statement对象
* 2.使用statement对象执行SQL命令
* 3.从上一步骤返回的ResultSet对象中提取执行结果
*connection接口有三个方法可以用来创建向数据库发送SQL语句的对象
* createStatement,用于简单SQL语句
* Statement stmt = con.createStatement();
* prepareStatement,用于带有一个或多个参数的SQL语句,在语句执行 前,这些参数将被赋值
* prepareCall 用于调用数据库中储存过程
* Statement提供了三种执行语句的方法
* executeQuery(不会修改数据库的内容)
* 用于产生单个结果集,例如:SELECT语句
* ResultSet rs = stmt.executeQuery("Select*From person");
* executeUpdate(用于修改修改数据库的内容)
* 用于执行INSERT/UPDATE或DELETE语句,以及CREATE TABLE stmt.executeUpdate("DELETE FROM Person WHERE Name='李四'");
* 返回值是一个整数,用来表示受影响的行数,CREATE TABLE 返回值为0
* Execute
* 用于执行多个结果的返回集
*------提取执行结果
* 1.查询结果作为结果集(ResultSet)对象返回后,我们可以从ResultSet对象中提取结果
*使用next方法
* ResultSet对象中含有检索出来的行,其中有一个指示器,指向当前可操作行
* 方法next的功能是将指示器下移一行
*
import java.sql.*;
public class JDBCtest1 {
public static void main(String[] args) throws Exception {
String driverName = "com.mysql.jdbc.Driver";//数据库引擎
String dbURL = "jdbc:mysql://127.0.0.1:3306/db1";//数据源
String Name = "root";
String Pwd = "******";
Connection con = null; //连接connection和statement对象,准备好对象名,设置空值
Statement stmt = null;
ResultSet rs = null; //设置结果输出对象,设置空值
Class.forName(driverName); //启用数据库引擎
con = DriverManager.getConnection(dbURL, Name, Pwd); //连接数据库
stmt = con.createStatement(); //创建Statement对象
rs = stmt.executeQuery("SELECT *FROM Person"); //不会修改数据库内容
while (rs.next()) { //显示所有记录的ID和姓名
System.out.print(rs.getInt(("id") + ""));
System.out.print(rs.getString(("name") + "")); //从字段取值
}
stmt.executeUpdate("INSERT INTO Person VALUES(null,'周',13,2)"); //插入表格
rs = stmt.executeQuery("SELECT *FROM Person"); //SQL语句应严格符合SQL语法
while (rs.next()) { //显示所有记录的ID和姓名
System.out.print(rs.getInt(("id") + ""));
System.out.print(rs.getString(("name") + "")); //从字段取值
}
stmt.executeUpdate("DELETE FROM Person WHERE id=3"); //删除表格
rs = stmt.executeQuery("SELECT *FROM Person"); //SQL语句应严格符合SQL语法
while (rs.next()) { //显示所有记录的ID和姓名
System.out.print(rs.getInt(("id") + ""));
System.out.print(rs.getString(("name") + "")); //从字段取值
}
stmt.close(); //关闭语句
con.close(); //关闭连接
}
}
插入,查询,筛选操作成功修改表格
PrepareStatement参数化输入语句学习
preparestatement与statement最大区别就是与语法格式不同。
createstatement
- String sql = "select * from users where username= '"+username+"' and userpwd='"+userpwd+"'";
- stmt = conn.createStatement();
- rs = stmt.executeQuery(sql);
preparestatement
- String sql = "select * from users where username=? and userpwd=?";
- pstmt = conn.prepareStatement(sql);
- pstmt.setString(1, username);
- pstmt.setString(2, userpwd);
- rs = pstmt.executeQuery();
preparestatement把输入值从SQL语句中提取了出来,提高了数据录入的灵活性,同时避免直接修改数据库,保证安全性。
明日计划:
争取实现DAO连接jdbc
遇到困难:unll
收获:java语句对数据库操作
评论