jdbc03.使用Statement 接口实现增/删/改操作
2016-04-22 23:13
253 查看
快捷键:Ctrl+Shift+f,将长句自动分段
- Statement 接口
作用:用于执行静态SQL 语句并返回它所生成结果的对象。
int executeUpdate(String sql) 执行给定SQL 语句,该语句可能为INSERT、UPDATE 或DELETE 语句,或者不返回任何内容的SQL 语句(如SQL DDL 语句)。
void close() 立即释放此Statement 对象的数据库和JDBC 资源,而不是等待该对象自动关闭时发生此操作
实例化Statement 接口 使用接口 Statement页面的另外参见Connection.createStatement(), 如下图
添加数据
输出:操作了1条数据
数据库如下图
数据类型如下
封装上面添加数据的方法,功能一样
更新数据
删除
- Statement 接口
作用:用于执行静态SQL 语句并返回它所生成结果的对象。
int executeUpdate(String sql) 执行给定SQL 语句,该语句可能为INSERT、UPDATE 或DELETE 语句,或者不返回任何内容的SQL 语句(如SQL DDL 语句)。
void close() 立即释放此Statement 对象的数据库和JDBC 资源,而不是等待该对象自动关闭时发生此操作
实例化Statement 接口 使用接口 Statement页面的另外参见Connection.createStatement(), 如下图
public class Demo1 { public static void main(String[] args) throws Exception { String sql = "insert into t_student values(null, 'bob', '23', '男','六年级')";//此处用''t_student 为db_book里的表,null表示插在后面 DbUtil dbUtil = new DbUtil(); Connection con = dbUtil.getCon();//获取数据库连接 Statement stat = con.createStatement(); int result = stat.executeUpdate(sql);//返回更新的数据条数 stat.close();//关闭Statement con.close();//关闭连接//先打开的后关闭 System.out.println("操作了:"+ result +"条数据"); } }
添加数据
/** * 用于封装数据库连接的一些方法 * @author Gavin * */ public class DbUtil { private static String jdbcName = "com.mysql.jdbc.Driver";//驱动名字,不能随便改 private static String dbUrl = "jdbc:mysql://localhost:3306/db_book";//mysql的数据库地址 public static String dbUserName = "root";//数据库用户名 public static String dbPassWord = "123456";//密码 /** * 获取数据库连接 * @return * @throws Exception */ public Connection getCon() throws Exception { Class.forName(jdbcName); Connection con = DriverManager.getConnection(dbUrl, dbUserName, dbPassWord); return con; } /** * 关闭连接 * @param con * @throws Exception */ public void closeCon(Statement stat,Connection con) throws Exception { if(stat!=null){ stat.close(); if (con!=null){ con.close(); } } } }
输出:操作了1条数据
数据库如下图
数据类型如下
封装上面添加数据的方法,功能一样
/** * 用来将student对象封装 * @author Gavin * */ public class Student ba58 { //alt+S生成构造函数 public Student(String stuName, double age, String sex, String gradeName) { super(); this.stuName = stuName; this.age = age; this.sex = sex; this.gradeName = gradeName; } private String stuName; private double age; private String sex; private String gradeName; public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getGradeName() { return gradeName; } public void setGradeName(String gradeName) { this.gradeName = gradeName; } }
public static DbUtil dbUtil = new DbUtil(); private static int addStudent2(Student student) throws Exception { String sql = "insert into t_student values(null, '"+student.getStuName()+"', '"+student.getAge()+"', '"+student.getSex()+"', '"+student.getGradeName()+"')"; Connection con = dbUtil.getCon(); Statement stat = con.createStatement(); int result = stat.executeUpdate(sql); dbUtil.closeCon(stat, con); if (result == 1){ System.out.println("添加成功"); } return result; } public static void main(String[] args) throws Exception { /*addStudent("张三", 12, "男", "大二");*/ Student student = new Student("张三", 12, "男", "大san"); addStudent2(student); } }
更新数据
import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import com.jdbc03.model.Student; import com.jdbc03.util.DbUtil; public class Demo3 { private static DbUtil dbUtil = new DbUtil(); private static int updateStudent(Student student) throws Exception { String sql = "update t_student set stuName = '" + student.getStuName() + "', age = " + student.getAge() + ", sex = '" + student.getSex() + "', gradeName = '" + student.getGradeName() + "' where id = " + student.getId(); //注意此处写法stuName,age,gradeName等为数据库表中的项目,Ctrl+Shift+F:将长句子分段 Connection con = dbUtil.getCon(); Statement stat = con.createStatement(); int result = stat.executeUpdate(sql); dbUtil.closeCon(stat, con); return result; } public static void main(String[] args) throws Exception { Student student = new Student(6, "we", 22, "女", "233"); int result = updateStudent(student); if(result == 1){ System.out.println("成功"); } } }
/** * 用来将student对象封装 * @author Gavin * */ public class Student { private int id; private String stuName; private double age; private String sex; private String gradeName; //alt+S生成构造函数 public Student(String stuName, double age, String sex, String gradeName) { super(); this.stuName = stuName; this.age = age; this.sex = sex; this.gradeName = gradeName; } //由于更改需要用到id,所以需要重载构造函数 alt+S public Student(int id, String stuName, double age, String sex, String gradeName) { super(); this.id = id; this.stuName = stuName; this.age = age; this.sex = sex; this.gradeName = gradeName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getGradeName() { return gradeName; } public void setGradeName(String gradeName) { this.gradeName = gradeName; } }
删除
import java.sql.Connection; import java.sql.Statement; import com.jdbc03.model.Student; import com.jdbc03.util.DbUtil; public class Demo4 { private static DbUtil dbUtil = new DbUtil(); private static int delectStu(int id) throws Exception { Connection con = dbUtil.getCon(); String sql = "delete from t_student where id = " +id;//此处用'' Statement stat = con.createStatement();//创建Statement int result = stat.executeUpdate(sql); dbUtil.closeCon(stat, con); return result; } public static void main(String[] args) throws Exception { int result = delectStu(3); if(result == 1){ System.out.println("删除成功"); } } }
相关文章推荐
- Android--WindowManager.LayoutParams(上)
- 链表插入、链表相加、链表相乘、链表排序、链表合并等操作的java实现
- hdoj 1009 FatMouse' Trade
- c#与Java跨语言socket传输float
- HDOJ(HDU) 1994 利息计算(简单题目)
- HDOJ(HDU) 1994 利息计算(简单题目)
- 三、函数的额定义与调用
- Java位移运算符
- POJ_2456_Agressive_cows_(二分,最大化最小值)
- Jekyll + Github page 搭建自己免费的博客网站
- UVA - 494 Kindergarten Counting Game
- 20145325张梓靖 实验三 "敏捷开发与XP实践"
- LeetCode - Reverse String
- 2016年3月16日作业
- Stopping ADB server failed(code -1)
- Azure Redis Cache (3) 在Windows 环境下使用Redis Benchmark
- django使用html模板减少代码
- 爆打团队 2016.04.22 站立会议
- css在线参考手册
- 【Android UI】音频条形图