第一次通过写博客,来总结知识......
来源:互联网 发布:变化中的中国网络零售 编辑:程序博客网 时间:2024/05/22 03:48
最近遇见一些问题,今天来总结一下
- 当数据库表中,主键字段需从1开始自增,其他字段手动输入时,如何用Java代码实现(下面附Student表图与其结构图)
//Student表图
//结构图
// 获取数据库连接的方法 public static Connection getConn() throws ClassNotFoundException, SQLException { // 将驱动程序加载到内存 Class.forName("com.mysql.jdbc.Driver"); // // 创建数据库连接 String url = "jdbc:mysql://localhost:3306/student"; String user = "root"; String password = "111111"; Connection conn = DriverManager.getConnection(url, user, password); return conn; }
// 保存学生信息 public static void save(Student stude) throws ClassNotFoundException, SQLException { // 获取连接 Connection conn = getConn(); String sql = "insert into student(name,sex,age,telephone)values(?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, stude.name);// name ps.setString(2, stude.sex);// sex ps.setInt(3, stude.age);// age ps.setString(4, stude.telephone);// telephone ps.executeUpdate(); ps.close(); conn.close(); }
2.根据name字段来删除学生,如果数据库中该name不存在,就提示:你输入的学生不存在;若存在则直接删除。
分析:我刚开始是这样想的,首先从数据库中查询Student表中是否存在这个name的值。用ResultSet对象来接收查询出来的结果,再用next()方法来判断其中是否有值,然后根据结果来判断是否执行delete语句。
代码如下:
// 删除学生信息 public static void delete(String stuname) throws ClassNotFoundException, SQLException, IOException { // 获取连接 Connection conn = getConn(); try { String sql2 = "select * from student where name = '" + stuname + "'"; PreparedStatement pst = conn.prepareStatement(sql2); // 结果集对象 查询数据 ResultSet rs = pst.executeQuery(); if (rs.next()) { String sql = "delete from student where name = '" + stuname + "'"; PreparedStatement ps = conn.prepareStatement(sql); ps.executeUpdate(sql); System.out.println("提示:"+stuname +"的学生信息已经删除!"); }else{ System.out.println("你输入的学生不存在。"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
//上面这个代码,是最基本的,但我感觉不够好,就找了优化的方法,果然被我找到了
其实PreparedStatement有个方法int executeUpdate(String sql); 它的返回值是可执行增,删,改,返回执行受到影响的行数。如果返回值为0,则证明该name不存在;返回值大于0,则存在可以直接删除,这样代码就简洁的多了.
//代码如下
// 删除学生信息 (优化后) public static void delete(String stuname) throws ClassNotFoundException, SQLException, IOException { try { // 获取连接 Connection conn = getConn(); String sql = "delete from student where name = '" + stuname + "'"; PreparedStatement ps = conn.prepareStatement(sql); int count = ps.executeUpdate(sql); if (count > 0) { System.out.println("提示:" + stuname + "的学生信息已经删除!"); } else { System.out.println("你输入的学生不存在。"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
阅读全文
0 0
- 第一次通过写博客,来总结知识......
- 第一次来写博客
- 第一次来写博客
- 今天第一次来写博客
- 第一次用客户端来写博客
- 第一次来写博客 求个人气
- 第一次写博客,先来试试水!
- 第一次来写博客,做一些学习中的总结,希望大家可以支持
- 来了CSDN这么久,第一次写博客
- 第一次来CSDN博客
- 第一次来博客
- 第一次写博客
- 第一次写博客
- 第一次写博客
- 第一次写博客
- 第一次写博客
- 我第一次写博客
- 第一次写博客
- caffe随记(十)---DeepLabV2安装过程
- java 之 泛型的通配符 和 泛型的限定
- 第五周 项目3
- androrid 蓝牙开发基础
- Ubuntu无法挂载Windows10 硬盘的解决办法
- 第一次通过写博客,来总结知识......
- 求两个数的最大公约数(c语言编写)
- GDI透明动画(多背景移动
- [51nod1792]Jabby's segment tree
- C++ PHP扩展
- 使用maven构建web项目
- CSRF中Referer的误解
- foreach 遍历
- 或许你不知道的10条SQL技巧