JDBC 笔记3 通过PreparedStatement 对数据库进行增删改查 (转载)

  之前MVC时一直用它,学了框架后就没怎么用了。这里转载一位同学的博客,以后可能也会用到的。

  转自:https://www.cnblogs.com/zilong882008/archive/2011/11/13/2247065.html

1 插入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public boolean ChaRu3(User user){
        boolean flag=true;
        Connection conn=null;
        PreparedStatement ps=null;    //创建PreparedStatement 对象
        String sql= "insert into user (name,pwd) values(?,?)"//sql语句不再采用拼接方式,应用占位符问号的方式写sql语句。
        conn=DBConnUtil.getConn();
        try {
            ps=conn.prepareStatement(sql);
            ps.setString(1, user.getName()); //对占位符设置值,占位符顺序从1开始,第一个参数是占位符的位置,第二个参数是占位符的值。
            ps.setString(2, user.getPwd());
            int i=ps.executeUpdate();
            if(i==0){
                flag=false;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(null, ps, conn);
        }
        return flag;
         
    }

  2.修改数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public boolean XiuGai3(User user){
        boolean flag=true;
        Connection conn=null;
        PreparedStatement ps=null;
        String sql="update user set pwd=? where name=?";
        conn=DBConnUtil.getConn();
        try {
            ps=conn.prepareStatement(sql);
            ps.setString(1, user.getPwd());
            ps.setString(2, user.getName());
            int i= ps.executeUpdate();
            if(i==0){
                flag=false;
            }
             
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(null, ps, conn);
        }
        return flag;
    }

  3.删除数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public boolean ShanChu3(int id){
        boolean flag=true;
        Connection conn=null;
        PreparedStatement ps=null;
        String sql="delete from user where id=?";
        conn=DBConnUtil.getConn();
        try {
            ps=conn.prepareStatement(sql);
            ps.setInt(1, id);
            int i=ps.executeUpdate();
            if(i==0){
                flag=false;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(null, ps, conn);
        }
         
        return flag;
    }

  4.查看数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public List<User> ChaKan3(){
         List<User> list= new ArrayList<User>();
         Connection conn=null;
         PreparedStatement ps=null;
         ResultSet rs=null;
         String sql="select * from user";
         conn=DBConnUtil.getConn();
         try {
               ps=conn.prepareStatement(sql);
             rs=ps.executeQuery();
             while(rs.next()){
                User user= new User();
                user.setName(rs.getString("name"));
                list.add(user);
             }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(rs, ps, conn);
        }
         
         return list;
     }

  

 

posted @   Java民工陆小凤  阅读(386)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示