jdbc进行简单的增删查改(statement)

jdbc(Java DataBase Connectivity,java数据库连接),是一门基础的持久层技术….下面我用jdbc实现对数据的增删查改

(这里是statement版本的,statement主要是使用字符串拼接的方式拼凑出sql语句,然后将sql字符串作为参数传入statement中执行,这样做比较危险,因为十分容易被sql注入….,preparedstatement会对sql语句进行预处理,相对而言比较安全….点击这里,查看preparedstatement进行增删查改操作..

题外话不多说了,进入正题…

首先我们要引入jdbc的驱动包…就是这个…
jdbc驱动包
如果读者没有的话可以去http://download.csdn.net/download/luciferms/10046549进行下载….

下面是源代码(封装了增删查改四个方法):

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import Pojo.User;

public class JDBCTest {

    //数据库驱动
    private static String JDBC_DRIVER= "com.mysql.jdbc.Driver";
    //数据库用户名
    private static String MYSQL_USERNAME = "root";
    //数据库密码
    private static String MYSQL_PASSWORD = "scott";
    //数据库连接地址
    private static String MYSQL_URL= "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true";
    //预先定义一个数据库连接器,在后面的静态代码块进行赋值
    private static Connection conn = null;
    //预先定义一个Java与数据库的会话,在后面的静态代码块进行赋值
    private static Statement sm = null;


    //静态代码块,当类被抛进虚拟机的时候会优先执行静态代码块,并且只会执行一次...
    //在这里我用来加载驱动和给conn和sm赋值
    static{
        try {
            //加载驱动,是将com.mysql.jdbc.Driver抛进java虚拟机,生成字节码...
            Class.forName(JDBC_DRIVER);
            conn = DriverManager.getConnection(mysql_URL,MYSQL_USERNAME,MYSQL_PASSWORD);
            sm = conn.createStatement();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //往数据库里添加一个User对象...
    public void add(User u){
        try {
             //通过字符串拼接的方式生成sql语句
             //值得一提的是,在mysql语句中,char和varchar类型的字段都是用''单引号括起来的....
             //就是说拼接的时候生成的字符串应该是
             //INSERT INTO USER(ID,USERNAME,PASSSWORD) VALUES(1,'LuciferMS','123456')
             //请读者格外注意拼接的这个细节...
                String sql = "INSERT INTO USER(ID,USERNAME,PASSWORD)  VALUES(" + u.getId() + ",'" + u.getUsername()+ "','"+u.getPassword() +"')";
                sm.executeUpdate(sql);
                System.out.println("添加成功.....");
            } catch (Exception e) {
                e.printStackTrace();
            }
    }

    //通过id删除一条user记录
    public void delete(int id){
            try {
                String sql = "DELETE FROM USER WHERE ID = " + id;
                sm.executeUpdate(sql);
                System.out.println("删除成功....");
            } catch (Exception e) {
                e.printStackTrace();
            }
    }

    //查出所有的user记录
    public void select(){
           try {
                String sql = "SELECT * FROM USER " ;
                ResultSet rs = sm.executeQuery(sql);
                while(rs.next()){
                    int id = rs.getInt("ID");
                    String username = rs.getString("USERNAME");
                    String password = rs.getString("PASSWORD");
                    User u = new User(id,username,password);
                    System.out.println(u);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    }

    //通过id修改user记录
    public void update(int id,String username,String password){
         try {
                //这里也要注意字符串拼接问题,用''单引号括住字段......
                String sql = "UPDATE  USER SET USERNAME='" + username  + "',PASSWORD = '" +  password  + "' WHERE ID = " + id;
                sm.executeUpdate(sql);
                System.out.println("更新成功....");
            } catch (Exception e) {
                e.printStackTrace();
            }
    }
}

下面是测试环节:
1.首先测试的是增加:

public static void main(String[] args) {
        JDBCTest jt = new JDBCTest();
        System.out.println("------增加前-------");
        jt.select();
        User u =  new User(4,"faker","123456");
        jt.add(u);
        System.out.println("------增加后-------");
        jt.select();

        }

测试结果:
add测试

2.对删除的测试

public static void main(String[] args) {
        JDBCTest jt = new JDBCTest();
        System.out.println("------删除前-------");
        jt.select();
        jt.delete(2);
        System.out.println("------删除后-------");
        jt.select();

        }

测试结果:
delete测试结果

3.对修改的测试:

public static void main(String[] args) {
        JDBCTest jt = new JDBCTest();
        System.out.println("------修改前-------");
        jt.select();
        jt.update(3, "Elliot", "456789");
        System.out.println("------修改后-------");
        jt.select();

        }

测试结果:
update测试结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值